一道簡單的判斷C語言中是否是死迴圈。我只判斷出了B是那ACD呢

2021-03-29 13:01:32 字數 1445 閱讀 2239

1樓:何處可人生

a:while(1)c語言中1代表結果為真,雖然while裡面有break,但是i=i%100+1使i不可能為100,所以死迴圈,

c:k=0,但是do語句中是先執行一次迴圈內容再進行判斷,所以死迴圈。

d:for(;;)for語句中第一個分號後面的是判斷退出條件,這點與while不同,如果while裡面沒有東西會報錯的,for語句如果沒有就是沒有停止條件,不會停止,所以死迴圈

希望能幫助到你

2樓:

答案是c麼?我覺得a非死迴圈。

a %是取餘數的意思,第一次迴圈的時候i=100,在迴圈體內i=100%100+1=1.不滿足if條件,第二次迴圈,i=1%100+1=2,第三次迴圈i=3....當第一百次迴圈,i=99%100+1=100,滿足if條件,break跳出迴圈體。

c while()中的括號內為真時迴圈,++s%2+s%當s為10(偶數)時,++s為11%2,餘數為1,s%2為0.所以while(1),s++(11為奇數),++s為12%2,餘數為0,s%2為1.所以while(1),依次類推,while括號內恆為1,即為死迴圈。

d for語句沒有判斷條件,就跳不出迴圈,自然是死迴圈。

以上完全是個人意見,僅供參考

3樓:風簫雨音

a的while(1)與i無關,因為while總是為真所以是一個死迴圈;

c因為k本身就大於0,而do裡面的++k,使k一直增加,這樣k就永遠大於0,無法結束迴圈;

d中for語句裡沒有判斷迴圈結束的條件(for(i=0;i<10;i++)這裡i<10就是一個判斷條件。)。

4樓:匿名使用者

ture,迴圈,false,退出迴圈

ture!=0,false==0;

a 1!=0,永遠成立;

c ++s%2+s%2中第二個s的值為++s的值,所以當++s是偶數時,退出迴圈;

d 沒有判斷語句,死迴圈

for語句中沒有判斷條件是不是就會死迴圈

5樓:匿名使用者

c語言中,for( 表達

式1; 表示式2; 表示式3);

表示式1是初始條件, 表示式2是終止條件,表示式3是變數變化方式。

表示式2即(終止條件)為空,確實是無法退出的。

更簡化(極端)的做法是,三個表示式全空,即:

for( ; ; ),也可達到同樣的效果。

6樓:匿名使用者

這種說法不完全正確,因為不僅有break跳出迴圈,函式中還可以有return跳出函式,還有goto可以任意跳轉,或者exit()函式直接退出程式。

7樓:匿名使用者

for(;;) while(1)

c語言中什麼叫死迴圈?怎麼避免?

一道簡單的c語言,一道c語言程式設計?

m是計算執行的次數,二重迴圈的迴圈次數就是外迴圈次數 內迴圈次數。外迴圈 1,5,9,13 內迴圈 3,7,11,15,19 4 5 20次,所以m 20 功能是輸出兩層巢狀迴圈執行的次數。用外迴圈執行次數 內迴圈執行次數。外迴圈變數的值變化 共4次。內迴圈變數的值變化 共5次。所以m的值為20 4...

一道簡單的c語言題,一道簡單的C語言題

這個程式的目的是將你輸入的字串中的a,a互換大小寫.但程式寫錯了.首先scanf遇到空格就停止了,所以s只接收到了ahama.其次,還是同樣的問題,scanf是遇到空格停止的,所以s中並沒有 n 因此while迴圈並不是如你想象到的ahama就結束了,而是會繼續下去,導致s i 訪問無效資料.再次,...

c語言 acm一道 很簡單的,c語言 ACM一道 很簡單的

樓上的回答不太好,有點篡改樓主的意思!我的回答也是樓主的迴圈條件 有問題,不過改法是這樣的 while scanf d d a,b 2 在兩個 d之間刪除那個多餘的空格。scanf在掃描的時候,字串裡面多的空格它也是需要進行匹配的。所以樓主只要連續碼兩個 d d 就可以了。實際從鍵盤向程式輸入時,由...