我剛學程式設計,問幾個問題,我剛學C語言,這是一個C語言的簡單程式設計問題,請問哪裡出現錯誤了?

時間 2021-08-11 17:53:26

1樓:

1.這題考的是合法的識別符號有什麼規定,參見書本,“_”沒有任何意思,只是說這個識別符號以它開頭,合不合法,按照規定應該是合法的。

2.這個數佔記憶體2個位元組,也就是16個bit位。前面零顯示它所有的位數,告訴你它可以表示的最大數為2的16次方。

3.4.這個數在記憶體中二進位制碼為111111...

32位全1。int型把它定義成-1,unsign型把它定義成65535,等等,完全是規定。因為它能表示的數是有限的,而你只能定義它所表示的範圍。

int的範圍是-32768~32767,unsign是0~65535

而o好像應該是8進位制吧,自己換算一下就行了。

5.你被騙了,括號內不是邏輯表示式,而是賦值給a,a=b+c,a就變為0了。賦值成功返回1,因此才有題中結果。

6.又被騙了,應該分開看,因為if後面沒有括號

if(b=i)m=1; //迴圈到此已經結束!!

n++; //n當然等於1了!

14.沒有任何意思,就是列印一個空格,將陣列中各個數列印時分開,便於檢視

呼--,累死我了!

2樓:匿名使用者

1、下劃線。c變數只能由字母、數字、下劃線組成

2、記憶體中所佔位數。運算時的變數在記憶體中佔多少位由編譯器確定,所以不用寫那麼多0.寫了也沒用

3、4、這個數在記憶體中表示為0xffff,第一個a是十進位制有符號數,正常輸出-1。%u是無符號數,所以輸出65535.%o是八進位制輸出

5、if(a=b+c)這裡的是賦值符號,不是比較。正確的應該是if(a==b+c)。這也是程式設計中容易常犯的錯誤啊

6、首先你要注意,if(..)後邊沒有大括號,就是說如果條件成立才執行t=a以及t=b,而另幾個賦值語句無論條件是否成立都是執行的。

main()

7、switch 實在匹配某個case後執行其後語句,直到遇到break。第一次迴圈匹配了0,執行其後的輸出,由於沒有break,那麼繼續執行,雖然不匹配2,但是也執行其相應輸出,所以有三個0。第二次迴圈沒有匹配項,所以執行default的輸出,所以有一個1。

第三次迴圈匹配2,執行2與default的輸出,所以有兩個2.然後迴圈退出。

8、第七題如果懂了,那麼這個題其實是一樣的。for中的switch每次都有匹配項,所以每次都會執行到i = 3;那麼v[i]++就變成v[3]++了,一共執行了八次,那麼v[3]就是8了,其它的仍然是0,所以輸出0008

9、只有當!(--x)不等於0的時候才執行迴圈體,也就相當於(--x)等於0的時候,而--x等於2,所以整個條件不成立,所以不執行迴圈體

10、不太明白,你輸入的是什麼啊?輸入不同輸出也不同。輸入中包含一個0,兩個0,兩個相同的非0,兩個不同的非0,結果都不太一樣。

如果你輸入任意兩個不同的自然數,那麼結果就是1,為什麼是1,這個是數學問題,跟c語言沒啥關係,哈哈

11、這個我也不明白。我覺得應該是10 109 1 (因為沒有換行符)。第一次迴圈時y=++i並不執行,迴圈一次後才執行

12、這個就不一定了,不是必須填那兩個的。不過那兩個答案也是對的。第一次迴圈i=0,而奇數和c要從1開始,所以c+=i+1。

但是這樣的話,最後一次迴圈還加了一個11.估計這道題是要計算10以內的數,所以減去11

13、這個我覺得答案應該是1 2。if是第二層迴圈中的語句,而n++是第一層迴圈中的語句,所以第一此外迴圈列印1,第二次列印2

14、do那個迴圈要迴圈5次,y分別為18,9,4,2,1,每次y對2求餘的結果賦給a[i],分別是0 1 0 0 1。從while迴圈出來時,i=5,所以for中j=i-1,而且是從後向前列印,即a[4].....a[0],所以結果應該是 1 0 0 1 0

3樓:匿名使用者

1._表示下劃線,就是一個識別符號.和a,b,c沒區別.

2.整數在32位機中佔四位.所以是2的4次方.一共16,高位補零.

3.應該是合法的,可能是因為沒加分號吧.

4.-1在十進位制中表示-1.而在其他的進位制中則表示最大沒表示的數減1.65535是2的16次方.

5.按照程式應該輸出$$$$$$.

6.第一個if不成立,但a=c和c=t還是做了.因為if只到t=a就結束了.a=c和c=t是必做的.

7.case後面沒有break,一直做下去.0和2都做了兩次.

8.和7一樣,每次i都為3.所以只有v[3]加一.

9.--x為2,真.只有當假時才執行迴圈.

10.只有當輸入不同時才為1.不同時因為減的結果一定為正,所以不斷變小隻到為1.

11.我的答案是101091

12.c+=i+1,得到c等於1,從1開始.多加了11次1嘛,所以要減去.

13.n是區域性變數,跳出迴圈後又變為0了.

14.a[0]=0;i=1;y=9;

a[1]=1;i=2;y=4;

a[2]=0;i=3;y=2;

a[3]=0;i=4;y=1;

4樓:

1 選b no.1 c語言識別符號 可以用數字 字母 下劃線 那個_沒意思的

2 c語言中數字是以16位2進位制儲存的

34第一個是整數就是-1 第二個是8進位制數 第三個是無符號整數5

5樓:憶芷苓

已經有很多人回答了,但我看到沒有一個人把第一題回答對.

在c語言中,變數的命名是以下劃線或者英文字母開頭,後接一個或多個下劃線,字母,數字組成.如下面的變數:

合法的:_a35b_ , abb, bci.a 等等非法的: 6a (它以數字開頭) ,a$(它有$這個符號)

6樓:謇黎

第一題選b c語言的識別符號是由下劃線、字母、和數字組成,其中不能以數字開頭。

2、c語言中5是以整型輸入要用2個位元組也就是16位

3、b 語句肯定是以“;”結束 a也不對,c語言中賦值左邊是變數右邊是值,沒有那樣賦值的。

4、你要知道的是負值在記憶體中是以補碼形式輸出的,其它自己換算一下就可以了。

5、括號內不是邏輯表示式,而是賦值給a,a=b+c,a就變為0了。

6、真受不了,你看看你的%d之間有沒有“,”沒有“,”它肯定不會在輸出值之間打“,”的嗎 它輸出的是4 5 99。

不好意思了情況 現在我也是剛剛學習c語言 就知道這些了,剩下的找高手幫忙吧。

我剛學c語言,這是一個c語言的簡單程式設計問題,請問**出現錯誤了?

7樓:it圈新鮮事

輸入不要加逗號,就好了。

scanf("%d %f", &numbers, &price);

8樓:gta小雞

你輸入的逗號是中文的,改為英文輸入法輸入。

我是一個學程式設計的學生,在學習的過程,遇到很多的問題,應該怎麼樣解決呢?

9樓:

一把而言使用除錯功能逐條執行察看程式中變數的值與自己預期的值作比較,發現不一樣的就找到了癥結之所在也可以在程式中設print 之類,這樣程式除錯更快慢慢積累,注意容易範錯的位置!

10樓:匿名使用者

在網上搜一搜有沒有類似的。

學習別人的精華,給自己靈感,找自己的問題。

或者,貼出來大家一起看。

11樓:第2個彥巨集

什麼語言的 詳細談談

輸入整數,要求按由小到大順序輸出我剛學c語言,就是對於

if是可以沒有else的,這樣的情況下如果if的條件符合,則執行if語句,否則不執行,直接到下一個if。也就是說,如果a不大於b,也就是a小於b,那麼就像剛剛說的,不執行這個if就是了,計算機會往下閱讀程式,也就是去判斷下一個if,記住一句話 if條件不符合就不執行 else只是相當於if不符合的話...

我想學程式設計,先學c語言,還是先學C 好

他們不是一回事,c 也有入門的教程啊 網上一大把 搜去吧 不過現在社會 學c 好了 c好像用的人很少了 c和c 還是有共同點。c是c 的老爸。當然學新的啦 c與c 是完全不同的語言. 麥子亂飛 c語言好 給c 打基礎 慢慢來吧 我想學修真,再想想,還是洗洗睡了 初學者學c語言好還是c 好 專業人士請...

我喜歡吉他,現在準備學,希望這幾個問題能夠得到解答

1,不超過300 你還是不要學了。琴越爛越學不好而且很吃力。最少買把800以上的結他 800都爛 2教材就不推薦了,初學最好找個老師學。這樣可以入門。3,你必須多看,多練,多學。4.你的想法是正確的。5,民謠可以的。你可以學tommy風格的作品。6,沒什麼好說的。沒有充足的時間,沒有雄厚的資金勸你別...