求大家幫忙一下這道C語言題目要選哪個順便告訴我原因謝謝

2021-04-08 12:06:05 字數 2582 閱讀 5558

1樓:倒霉熊

我看著選d啊

printf輸出的時候,是從後面往前計算的。

一開始n=1,然後自加1變成2了

然後 --n是先減1,在使用 所以輸出為1 ,n變成1了n++是先使用,在自增1,所以輸出為1 n變成2了n直接輸出2

所以是 2 1 1

2樓:天之血淚

在c語言中,printf()是的計算從右向左的,顯示是從左向右的,這道題,先算--n, n++, n;

1) n=1;n++;n=2;

2) n=2;--n;n=1; 第三個是1;

3) n=1;n++;第二個顯示1,n=24) n=2,第乙個顯示2

選d你自己編譯一下唄

3樓:匿名使用者

最好的辦法是在機器上執行一遍!很奇怪,我在vs2012上執行的結果是212,在vc6裡執行的結果是111,所以同意樓下的觀點,結果在乎於編譯器的實現!出題的人的確只是紙上談兵!

在vs2012下的執行結果!

在vc6下的執行結果!

4樓:目頭小子

2,2,2

註解n++ = 1;

int n=1;

n++;                                        n=1,n++ =2

printf("%d%d%d",

n,                                             n=2

n++,                                      n=2,++n =3

――n                                           n=3,--n=2

分類: c/c++

#include

void main()

我的最初想法,引數從左到右依次計算,也就是等同於:

printf("%d",i++);

printf("%d",i--);

printf("%d",--i);

printf("%d",++i);

printf("%d%",i);

先i++,所以輸出i的值1後再i=i+1,此時輸出為1,i=2

再i--,同樣先輸出i的值2後再i=i-1,此時輸出為1 2,i=1

然後--i,先計算i=i-1=0,再輸出i,此時輸出為1 2 0,i=0

同樣的++i,先計算i=i+1=1,再輸出i,此時輸出為1 2 0 1,i=1

最後輸出i,所以最終輸出是1 2 0 1 1

但是實際的執行結果並不是我想像的這樣,這估計是因為c++的printf函式採用的是cdecl方式傳遞引數的關係,即引數入棧順序是從右向左,自然執行的順序也是自右向左啦,所以正確的順序是:

先算最後的輸出1

其次++i,輸出1 2,i=2

再次--i,輸出1 2 1,i=1

接著i--,輸出1 2 1 1,i=1

最後i++,輸出1 2 1 1 1

這就和我彙編檢視執行的結果一致了:

1入棧2入棧

1入棧1入棧

1入棧從這裡,我們又可以看出這個順序又和printf的輸出順序一致了,我猜測printf函式就直接根據這個順序進行輸出了

另外關於前面標記的「重點」

#include

void main()

{int i=1;

printf("%d%d%d%d%d",i--,i--,--i,++i,i);

cout<

5樓:

這個結果沒有乙個是對的,答案應該是111。因為printf函式是對變數列表從右向左計算的,先--n使=1,再n++因是後++值不變還是1;等三個1全輸出了再執行n++使n=2。出題的人只是紙上談兵!

6樓:聖經守恆定律

a, 視乎編譯器的實現, 結果可能會有多種

答案沒有a? 我推測是a 是 因為函式是從在往右計算,併入棧, 函式內部彈出棧時就顯得是從右往左, 實則顯示是從左往右, 但是引數計算順序是完全由編譯器計算方式實現的,所以是不定的,如gcc與vc的實現可能就不同,所以實際開發過程中不要寫這樣的nc式語句,會給移植造成很大的問題

7樓:匿名使用者

選b 首先n=1;經過n++後n=2;所以printf("%d%d%d",n,n++,――n);輸出的第乙個數是2;然後n++,是先用後加,即在這裡會先輸出然後n才自增,所以輸出2,;現在n=3;然後――n是先減後用,即在這裡先自減然後才輸出,所以任然是2,;由以上理由的選b(注:狀同n++,n--,這兩種情況在用算時是先用後自增(減),狀同++n,--n是先自增(減)然後再用)

8樓:尋夢知

答案是a沒錯,因為n的初值是1,進行一次n++變為2

求大神幫忙解決一下c語言的幾道題,順便解釋一下。謝謝啦!!!!! 10

9樓:絮沫兒

c a b d a d c a b d b

b c a d

c語言的小題目求大神幫忙看一下,C語言的乙個小題目,求大神幫忙看一下

浮點數輸出的時候 預設都是四捨五入的 準確的說 有的編譯器是四捨五入 有的編譯器是四捨六入無成雙 求大神幫忙看一下一道c語言的題 定義了void printx 裡面又有乙個 printx c 16 不說邏輯問題,首先引數就不對 然後寫了這個函式 主函式裡根本沒有用到 求大神幫忙看一下這段c語言 哪有...

大家幫忙蒐集一下網路語言,請大家幫忙蒐集一下類似實現與現實,罪犯與犯罪等倒過來也可以說的詞語,感激不盡

pk就是單挑 粉絲 就是fans 追星族 看不懂不叫看不懂,叫 暈 請大家幫忙蒐集一下類似實現與現實,罪犯與犯罪等倒過來也可以說的詞語,感激不盡 乙個詞語倒過來念還是乙個詞語,你能說出多少個這樣的詞語?例如 實現 現實 講演 e69da5e887aa62616964757a686964616f313...

請大家幫忙解答一下,這道題,謝謝

最後得數是 正方形面積減去最小的乙個三角形的面積 正方形邊長為1 所以最後得數是 1 1 2的n次方 解 原式 1 1 2n 2n 1 2n 請大家幫忙解答一下這道數學題,謝謝!設寬為a,高為b,那麼 來陰影部分顯自然是個正方bai形,且邊長為 a b 所以陰影du部分的 面積s 3 a b 看zh...