假定a和b為int型變數,則執行以下語句後b的值是 a 1 b 10 do b a awhile b

2021-04-18 02:19:44 字數 1461 閱讀 4610

1樓:匿名使用者

額 一開始我被糊弄抄到了 後來用printf一輸出才發現原來錯得糊弄離譜啊

b=10 a=1 b-=a 等價於b=b-a 所以b=9 a++ 所以a=2 重頭戲來啦

while(b--<0) 嘿嘿 注意是《號哦 b--<0 是先用b的值與0比較大小 再b自減1 也就是說9<0 當然是假啦 所以就退出迴圈 又b要自減1 所以最後b=8呵呵

2樓:鐵書包

這是正常的,因為迴圈只執行了一遍!

do....while()的用法是執行一遍之後判斷是否符合條件!

對應本題就是執行一遍之後,檢查b--是否小於0,若果小於0則繼續執行,不小於0則退出!

3樓:逆筆回鋒

在do執行完後,b變成9

在while語句中,先判斷b<0==false再進行b--;

所以b==8;

又例a[3]=;

a=1;

那麼a[++a]==2;a[a++]==1;但無回論是哪乙個答a都變成了2

4樓:匿名使用者

不是8能是什麼?

一開始, a=1, b=10

b-=a; 這時b=9了

a++; 這時a=2了,b還是9

while(b--<0) ; 這時b為8了,所以條件不成立,跳出迴圈。

所以,最後b=8.

5樓:美麗的華

首先b-=a,這時b=10,a=1,執行後b=9,a=2

然後while(b--<0),b--了一次,b=8

6樓:匿名使用者

其實,來你應該是記錯了,do-while語句自裡面while(表示式)必須在判斷表示式為真,才可以繼續進行下一輪的迴圈,這裡說的是b--<0,是假的,所以停止迴圈,退出語句。b--使用過後,自減,得出來b值為8.

int a=1;b=10; do {b-=a; a++;} while (b--<0); printf("%d",b )

7樓:墨汁諾

結果是8

首先b-=a;b變為9;然後判斷b<0?否,迴圈結束,此時b再自減,變為8,輸出為8

或:do{}while() 迴圈的執行過程是:先執行 {} 裡面du的語句,然後再進行條件判斷 。

所以,上面的**是先執行

b-=a ; // b = 9 ;

a++ ; // a = 2 ;

然後再執行判斷while(b--<0)

這句話執行完後,b = 8 ;

8樓:匿名使用者

輸出結果是8

p.s這種風格不好……

9樓:

首先不知道你要問神馬?其次,b--<0,不能造成迴圈啊!兄弟!剛開始b是大於0的。

c語言設a,b,c為int型變數,且a3,b4,c

d,因為最後的 1 括號內或1,肯定為真,括號外有非,非真即為假。這個沒什麼原因。你搞清楚涉及到的操作符的優先順序就可以了。其他沒什麼花樣 d a1 內c 0a容1 1 0 1 1 a0 a a b 97 98 1 b a b 3 4 1 c a b c b c 3 9 1 3 1 1 d a1 z...

19若x和a均是int型變數,則計算表示式1後的x值

12 4 第乙個逗號表示式 第二個賦值表示式 若x和a均是int型變數,則計算表示式 1 後的x值為 計算表示式 2 後的x 值為 兩個逗號表示式 第一題 x 的內容是12,由最後乙個表示式的計算結果確專定第二題中 x a 4 是第乙個表達屬式,計算結果 x 的內容是4第一題,x 記錄的是乙個逗號表...

若a是int型變數,則表示式(a 4 5,a 2 ,a 6的

26。結合次bai序為從左至右,先執行 大du括號 執行a 4 5後,zhia的值dao變為20。因為逗號的運算優先順序最低版,所以執行a 2,但權不會改變a的值。再執行大括號 接著執行a 6,得到a的值變為26。先級從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的...