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被賦值...