1樓:匿名使用者
輸出結果:30
原理:1.c語言的執行順序大多都是自右向左(但是少數c語言編譯軟體內的輸出結容果為31,它的執行順序是自左向右,這裡以vc++ 6.0為例說明輸出30的原因)。
2.先執行--b+a,根據運算順序知道相當於(--b)+a,b先自減,即b=10,此表示式--b+a的值為31.
3.然後執行- -a+b,相當於(--a)+b,a先自減,即a=20,此表示式- -a+b的值20+10=30。
4.printf("%d\n",- -a+b,- -b+a); 輸出第一個表示式的值,(printf函式輸出順序是自左向右)。
2樓:匿名使用者
printf 為什麼引數裡bai只有一個%d ??後面卻有兩du個變數??
如果zhi
是printf("%d\n%d",- -a+b,- -b+a)的話dao輸出應該是
3031
系統先執行了 --b+a的,版所以--b+a=31;
然後權再執行 --a+b,那時候b已經被減1了,所以--a+b=30。
3樓:
先生bai 為什麼引數列表有兩個du
而你的佔位符
zhi只有一個dao %d
如果你手誤的話那麼有兩個專佔屬位符 答案是 3031
4樓:樂樂等待花開
- -a+b即為(--a)先計算得20,然後接著計算(--a)+b為20+11+31;
--b+a即為(--b)先計算得10,然後接著計算(--b)+a為10+20=30;
5樓:匿名使用者
錯誤,沒有結果,warning: operation on 『a』,'b' may be undefined
以下程式執行後的輸出結果是maindouble a int b b a 10 4 printfd,f n」,b,a
10 4得到的是整數2,將2賦給a,在輸出a是顯示2.000000 如果要得到2.500000,需要10.0 4或10 4.0 這是因為10和4都是整數,兩個整數的商仍是一個整數,所以10 4是等於2而不是2.5 因為10和4都是整.所以結果也是整.你把10或是4其中一個加一個.0結果就會有小數了....
C語言38 填空題以下程式的輸出結果是includestdio h
int fac sum int n 累加到加入bain t n s s f 儲存最近的計算階乘的n值,以及累加n return s 該程式的作用是求3!5!2!6 120 2 128,所以,執行的答案是 sum 128 有等待這點時間,輸入電腦跑一遍就知道。結果是sum 128 c語言中,c語言試題...
以下程式的執行結果是mainint a 31,2,3int num 3intp,i for i 0 i3 inum
應該是輸出1。程式是這樣的,先定義 了一個陣列a,並賦值。然後定義了一個指標陣列sum。在for迴圈中,使用了 num i a i 語句,也就是,指標陣列的每個元素分別指向了陣列a的每個元素。前面定義的p,是指向指標的指標,也就是p指向了一個地址,而這個地址又執行了另外一個地址。執行p num後,p...