下面的程式執行後,a的值為多少,執行下面程式中的輸出語句後,a的值是20,為什麼

2022-12-26 07:36:07 字數 2063 閱讀 2699

1樓:

第一次b=1,b%3==1成立 b+=3以後b%3==1還是成立的,直到b>=20才退出迴圈。比20大的最小模3為1的數字是22,這樣總共要迴圈7次,也就a++了7次,所以a==8

2樓:暴雁菱

因為第一次時b=1,b%3=1,所以會b+=3,然後continue所以每次b%3=1都為true,也就是:

a=1 b=1

a=2 b=4

a=3 b=7

...a=8 b=22

3樓:匿名使用者

第一次迴圈:a=1,b=1,進入if(b%3==1)後,b+=3,這時b=4,continue後不執行b-=5,直接迴圈下一次,a++,a=2。

第二次迴圈,又進入if(b%3==1),後,b=7,再直接迴圈下一次,a++,a=3。

第三次迴圈,又進入if(b%3==1),後,b=10,,再直接迴圈下一次,a++,a=4。

第四次迴圈,又進入if(b%3==1),後,b=13,,再直接迴圈下一次,a++,a=5。

第五次迴圈,又進入if(b%3==1),後,b=16,,再直接迴圈下一次,a++,a=6。

第六次迴圈,又進入if(b%3==1),後,b=19,,再直接迴圈下一次,a++,a=7。

第七次迴圈,又進入if(b%3==1),後,b=22,,再直接迴圈下一次,a++,a=8。

第八次迴圈,由於b=22,進入if(b>=20),break跳入迴圈,則最後a只等於8。

也就是,程式b-=5沒被執行到。

執行下面程式中的輸出語句後,a的值是20,為什麼

4樓:小小不服

#include

int main ()

int a=1 ;

printf("%d %d %d\n",(a=3*5,a*4,a+5),a,30);

看看這個 吧

試試這個 你就會知道 首先第一個%d 對應的是,之後的 第一個 表示式的 值 是吧 ?而不是a的值

這點要知道  那麼 得出的結果 是不是20  記住 第一個%d 對應的是整個表示式的值 (不然你看看第三個%d 對應的是哪個 ?對應的是30

輸出結果為

20 1 30

這個 答案是在編譯器下進行的 非我亂說

我的這個式子是給a賦值了的 所以是1

你的那個程式沒賦值 所以 是初始化之前的 值  不確定是多少

各個編譯器不同 吧  我報上我的編譯器

c-free   dev-c++ 兩個編譯結果都是我所述說的

對於其他的 我不敢保證  至於你有怎麼想法 拿起自己的編譯器 寫個程式 好過在這裡問

學c語言 沒有個編譯器 ?

我只能說兩個字  呵呵

5樓:

輸出的是逗號表示式,結果為最後一個表示式的結果,3*5+5=20

6樓:匿名使用者

首先a=5;

執行a=3*5

得a=15,且a=15的表示式值為15

原表示式變為

(15,a*4),a+5

計算a*4,但沒有影響a的值

整個表示式值為第二個表示式的值

原表示式變為

60,a+5

計算a+5,得20

原表示式變為

60,20

逗號表示式的值為最後一個表示式的值

整個表示式的值為20

7樓:匿名使用者

前面就是給a賦值 然後把這個值給到了最後 所以就是20了

8樓:手機使用者

是15以下程式執行結果為:

20a=15

main ()

9樓:月庭竹影

樓上貌似有對的,樓主多在編譯器上試試就知道了

10樓:匿名使用者

是15.

你自己確定是15就是15撒,相信自己的。樓主不夠果斷不夠自信啊。

你自己都察覺到了題目問的是a的值而不是輸出的值。難道還不能確定麼?

執行以下程式後,輸出的結果是mainint y 10 do ywhileyprintfd n ,y

選ddo while語句 先執行do裡面的迴圈體,再去判斷while條件是否成立,如果成立,一直執行下去,直到不成立終止迴圈 選d.c語言書上寫有,do 語句 while 表示式 其中語句是迴圈體,先執行後判斷,先執行一次指定的迴圈體語句,然後判別表示式,當表示式的值為非零 真 時,返回重新執行迴圈...

C語言,執行以下程式段後,s的值為statici

你好 抄 答案選a 17。因為在for迴圈襲中,k為0 2 4 6 8,而 a k 是在陣列a內按地址取第k個元素,和變數s進行累加,k 0 2 4 6時,a相應的陣列值為5 7 1 4,而在k 8時,超出了陣列的邊界,所以為0.所以s相加起來為17.希望我的回答能幫助到你 a 17 5 7 1 4...

15寫出下面程式的執行結果include

15.輸出表列有三項,格式控制字元只有一項,對應表示式a a 1 2,所以輸出2 1.a b c 所以表示式值為非零,為真,執行printf n 2.自增運算子字尾,所以先引用,後自增,m為2,m 2為假,然後m自增一值為3,執行else部分,m 2 5 7.注意是x 2 是 賦值號,也就是x被賦值...