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

時間 2022-03-28 10:15:13

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

為什麼引數裡只有乙個%d

??後面卻有兩個變數??

如果是printf("%d\n%d",-

-a+b,-

-b+a)的話輸出應該是

3031

系統先執行了

--b+a的,所以--b+a=31;

然後再執行

--a+b,那時候b已經被減1了,所以--a+b=30。

3樓:

選a、30

現場編譯得出的答案

c語言是一門科學,要注重實驗;

會得出30

的原因是printf函式中,輸出表示式的運算順序是由右到左的,先計算後面的(--b+a),此時,b的值自減1,變為10,再計算前面的(--a+b).對於--a和a--的區別應該不用我說了吧。所以最後結果是30.

而編譯程式只是在檢查printf中的格式化引數後才確定有幾個輸出項,並按次序輸出,所以最後輸出的是(--a+b)的值

以下程式的輸出結果是 main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } 求解,萬分感謝

4樓:匿名使用者

輸出結果: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函式輸出順序是自左向右)。

5樓:匿名使用者

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。

6樓:

先生bai 為什麼引數列表有兩個du

而你的佔位符

zhi只有乙個dao %d

如果你手誤的話那麼有兩個專占屬位符 答案是 3031

7樓:樂樂等待花開

- -a+b即為(--a)先計算得20,然後接著計算(--a)+b為20+11+31;

--b+a即為(--b)先計算得10,然後接著計算(--b)+a為10+20=30;

8樓:匿名使用者

錯誤,沒有結果,warning: operation on 『a』,'b' may be undefined

求輸出結果?main() int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(「%d,%d\n」,a,b);

9樓:匿名使用者

a=a+b=1+2=3

b=a-b=3-2=1

a=a-b=3-1=2

這三條語句就是把ab值互換,所以輸出結果是2,1

10樓:紫色星晨

2,1;a=a+b,a變為3,;b=a-b,b變為1;a=a-b,a變為2;輸出a為2,b為1

以下程式的輸出結果是,以下程式的輸出結果是( )?

if a 10 ok1 a 10,所以 a 10 不成立,btw,這個地方 if else 之間 什麼都沒有,至少應該有個分號 else if ok2 x 10 ok2 0,所以 不成立 else x 1 最後結果 x 1 小章33學姐 if後面邏輯值為真時執行,if a 10 false else...

以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

c語言函式引數都是單向傳遞的,直接傳值是不可能改變原來的數值的。此題答案30,20 你的printf好像有點問題 include void fun int p1,int p2,int p3 main 按lz所寫 輸出為30,20,因為函式的引數為所宣告變數的副本,這樣不會改變原有的變數。如果想改變原...

c語言以下程式的輸出結果是a為什麼

輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...