1樓:
輸出結果:32
函式註釋:void main()
int i=0,a=0; /定義i為0,a為0
while(i<20) /迴圈1,在i<20時迴圈。
for(;;迴圈2
if((i%10)==0)break; /如果i餘10為0,即i是10的倍數時結束迴圈2,即i不變。
else i--;否則i自減,即如果i不是10的倍數,i自減。
迴圈2為以上3行,功能是判斷i是否是10的倍數,是i的值不變,不是則i自減。
i+=11; /i=i+11
a+=i; /a=a+i
printf("%d",a); 整數形式輸出a
分析:初值i=0,a=0,i<20滿足迴圈1條件,且是10的倍數,i不變,迴圈後i=11,a=11
i=11滿足迴圈1條件,且i不是10的倍數,則i自減,i=10+11=21,a=11+21=32
i=21不滿足迴圈1條件,迴圈結束,則a=32
2樓:網友
a=0;進入 for(;;
if((i%10)==0)break;
else i--:
符合if條件。
執行 i+=11;
a+=i;得a=11
i=11由於while的迴圈 回到 for(;;
if((i%10)==0)break;
else i--:
執行 i--
繼續 i+=11;
a+=i;得 i=21
a=32 接下來跳出迴圈輸出32
ps:for的那個迴圈應為for(;;
只有兩個分號⊙0⊙
c語言習題迴圈求解
3樓:
理論上這個迴圈是無限的,但是由於int型資料是4個位元組的,它所能表示的最大資料範圍是。
2^31~~+2^31-1,所以當k的值不斷累加超過2^31-1時,它的最高位變為1,int型是有符號的,當最高位為1就被當做是負數來處理了,這樣就退出了迴圈,你可以改動一下程式進行驗證:
int k=0;
dowhile(k>=0);
printf("%d",k);//輸出退出迴圈時k的值。
程式的輸出結果為:-2147483648
迴圈條件3<=x<=4不能這樣表示,這樣表示等價於(3<=x)<=4,無論x為任何數,3<=x要麼是1要麼為0,但不論1還是0都是小於4的,所以這個迴圈條件始終為真,就是死迴圈了,條件應該改成(3<=x &&x<=4)
只看最後一次for迴圈i=5,b=1,先判斷迴圈條件b(此時b的值為1)>=0為真再將b的值減1,b=0,由於條件為真執行k++,進入下一次while迴圈,先判斷b(此時b的值為0)>=0為真再將b的值減1,b=-1,由於條件為真執行k++,再進入下一次的while迴圈,先判斷b(此時b的值為-1)>=0為假再將b的值減1,b=-2,由於條件為假退出while迴圈。因此b的值為-2
也就是說,迴圈條件b-->=0是等價於b>=0,b--,再判斷完一次b>=0?然後就將b的值減在表示式中是先用b的值進行表示式計算,然後再將b的值減1
c語言迴圈語句求助
4樓:匿名使用者
簡單說:
a、5帶進去,意味著第乙個if前i=3,那麼i++%5 !=0; 不能執行到列印語句,所以不對。
b、24帶進去,意味著第乙個if前i=22,則i++%=0; 不能執行到列印語句,所以不對。
c、32帶進去,意味著第乙個if前i=30,則i++%==0;執行第乙個if後,i=31,第二個if執行,先自加了1,再模8,所以等於是32%8 = 0;所以c是對的。
簡單說:在1~40內,只有32能滿足 x%5=0,並且(x+2)%8=0。
5樓:沒有妳我怎庅辦
當i=30的時候,除以5的餘數為0;在i++,i=31,在++i,i=32
c語言迴圈
6樓:網友
迴圈從i = 1,迴圈到了i = 100,總共迴圈了100次。當迴圈到100次時,i++後,i變成了101,無法通過while(i<=100)。迴圈結束。
最終結果為:i = 101, sum = 5050。
不過要注意while(i <= 100)後面;不能被省略掉,否則程式會出錯。
7樓:網友
結果,sum=5050,如果輸出i,則i的值是101
8樓:爽朗的陌
不是do while麼,當i=100時還是要執行,然後i++,i=101了,所以輸出i=101
9樓:網友
101另外。
while語句後少了乙個分號。
否則編譯不過的。
求c語言中迴圈的具體用法
10樓:匿名使用者
while語句的一般格式:
while(表示式)
若干語句。while語句由關鍵字while、括號中的乙個求值為boolean型資料的表示式和乙個複合語句組成,其中的複合語句稱作迴圈體,迴圈體只有一條語句時,大括號「{}可以省略,但最好不要省略,以便增加程式的可讀性。表示式稱作迴圈條件。
while語句的執行規則是:
1)計算表示式的值,如果該值是true時,就進行(2),否則進行(3)。
2)執行迴圈體,再進行(1)
3)結束while語句的執行。
do-while迴圈。
一般格式:do
若干語句。while(表示式);
do-while迴圈和while迴圈的區別是:do-while的迴圈體至少被執行一次,for迴圈。for語句的一般格式:
for (表示式1;表示式2;表示式3)
若干語句。for語句由關鍵字for、括號中用分號分割的3個表示式,以及乙個鍵坦空複合語句組成,其中的「表示式2」必須是乙個求值為boolean型資料的表示式,而複合語句稱作稿瞎迴圈體。
for語句的執行規則是:
1)計算「表示式1」,完成必要的初始化工作。
2)判斷「表示式2」的值,若「表示式2」的值為true,則進行(3),否則進行(4)。
3)執行迴圈體,然後計算「表示式3」,以便改變迴圈條件,進行(2)。
4)結束for語句的執行信陸。
11樓:網友
第一種迴圈:while()
例子: i = 1;
while(i <=12)
i++;第二種迴圈:for()
例子:for(i = 1; i <=12; i++)//對比1和2,你可以發現2是1的整合檔兆形式。
第三種迴圈:do{}while
i = 1;
doi++;
while(i <=12) /這種表示,無論i一開始是否<= 12,它都將通過一次迴圈,然後在結尾時再考枝吵慮是否進行下次迴圈(因為通過條件在尾端猛蠢侍)
跟c語言迴圈有關的問題~~~大俠指教~
12樓:網友
1,在c語言中分號代表乙個語句的結束,這裡while語句後面直接就加分號,表示迴圈體為空,只是不停地在進行自加。所以當滿足條件的時候,即k=11的時候,就跳出迴圈了。這裡還要注意k++與++k的區別哦。
2,這裡的迴圈次數應該是3次。原因:首先b的初始值為0,而在整個for迴圈中,沒有對b 進行任何操作,所以b!
3恆成立。只要考慮a<3?所以這題與這個for(a=0,b=0;a<3;a++)等價了。
這個就簡單了吧。另外這裡要注意for迴圈後面直接跟了個分號,所以迴圈體為空哦。
3,首先你要理解for 迴圈的具體意義。括號裡面的第2個語句應該是做判斷用的。如上題的a<3,可是,裡面是空的話,就說明沒有任何條件,這裡我們預設它恆成立。
所以它應該一直在迴圈,是個死迴圈。而且這樣的**不能放在機器上去執行哦。可能會造成機子宕機的哦。
建議你在去書上好好看看for迴圈的相關語法知識,這一塊很重要的,對於學c 語言。希望你能弄懂這個問題哦。
還有不懂的可以追問哦。
13樓:
1:int k=1;while(k++<10);//迴圈結束後,k的值為:11。
while後面的分號表示迴圈體為空。
2:for(a=0,b=0;a<3&&b!=3;a++)
迴圈次數為:3
a=0,1,2時執行空的迴圈體。
3:for(;;
等價於。while(1)
14樓:網友
1.分號代表空語句,就是什麼都不敢,只是做迴圈判斷,跳出迴圈的時候k為11,k++是先使用k的值然後再自加。++k則是k先自加再使用k的值。
2.分號代表空語句,就是什麼都不敢,只是做迴圈判斷,迴圈次數3,這裡b永遠不等於3,所以b!=3條件永遠未真,只需要判斷a<3即可。
3.代表乙個死迴圈,一般在迴圈體內跳出迴圈。
建議樓主去看看for迴圈的語法。
15樓:
第一題相當於:
int k=1;
while(k<10)
第二題迴圈次數是3
第三題for 可以理解成while(1)
16樓:網友
其實還有goto(),迴圈的鼻祖。
c語言選擇題,詳解,C語言選擇題,求詳解
6 5 下面定義了一個日期結構date 結構變數date1和date2 struct datedate1 date2 對結構變數date2正確操作的語句是 a date2 date1 b strcpy date2,date1 c date2 d date2 你的回答 c 參 a 7 下面定義了一個日...
關於一道c語言題,求詳解,急求,關於一道C語言題,求詳解,急求
在主函式裡 是先執行fx 這個函式的,而執行這個函式得到的值x 15,而後x x a 15 5 20.a 5 所以輸出是 20 和 5 主函式的x帶的是全域性變數的值是fx函式得到的x的值15,而不是定義全域性變數的初始值,也不是fx函式裡x的初值 在這個程式裡用全域性變數無非是想說明全域性變數x在...
麻煩解釋下這段C語言迴圈。最好能一句一句解釋。謝謝
void sort int array,int n 2 12 這個程式當第一次迴圈的時候k 0,array k array 0 然後進入第二個for迴圈,如果array j 簡單的說,第一次迴圈將array 0 替換為陣列中最小值。第二次迴圈將array 1 替換成array 1 後面的陣列元素中的...