以下程式的輸出結果是mainint a 21,b 11 printfd na bb a求解,萬分感謝

2021-04-11 15:47:16 字數 898 閱讀 3960

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...