-
第乙個是無限迴圈,第二個是有限迴圈。
為什麼? 分析如下:
do{}while() 使用 while 括號中的語句作為判斷來判斷是否繼續執行 {} 中的語句。
第乙個括號中的 k>0 是乙個無限迴圈,因為賦值是 32764 並且執行了 k++,因此 k>32764>0 是乙個無限迴圈。
第二個括號裡左邊的 s++%2 是第乙個 %2 值是 0,右邊的 s%2 是 32764%2 結果是 16382,餘數是 0,所以值也是 0,左邊的 0 和右邊的 0 做或運算,結果是 0,所以跳出迴圈。
-
第二個是無限迴圈。
第乙個程式中的k會在某個點溢位,當它溢位時,k的值會變為負數,k>0不會成立,所以它不是無限迴圈。
在第二個程式中,即使 s 溢位,它仍然會得到滿足"s 和 s+1 中的乙個不能被 2 整除"條件,所以它將永遠持續下去。
你的書已經準備好扔掉了! 你可以閱讀這本書,並根據每個人的演講來判斷它! 第乙個絕對不是無限迴圈。
-
第乙個 k 一直 ++ 會溢位整形範圍,k 變成負數,所以它不是無限迴圈。
第二個while的條件是k是偶數或奇數,因為無論溢位如何,k都是偶數或奇數,所以它是乙個無限迴圈。
-
第乙個。 因為 k 分配給 32764
判斷是 k>0 作為 k++ k++ 執行,所以 k 總是大於 0,所以它是乙個無限迴圈!
-
第二個,因為第二個將有乙個情況,即 %2 無論如何都不是 0,所以迴圈繼續。
第乙個將使 k 為負數,因為它越過了邊界,然後“0”無效並退出。
-
好吧,第二個不是無限迴圈的原因是因為 post++ 在語句執行後總是會自增,所以它只是確定什麼時候可以被 2 整除。
-
兩者都是無限迴圈。
-
for 的語法為:
for(迴圈初始化語句(可省略); 判斷迴圈終止條件語句(可省略); 在迴圈的每一輪結束時執行的語句(可以省略)。
while的語法:
while(判斷迴圈終止條件語句(不能省略))。
讓我們來看看這個話題:
a. for(; x=0)
這是 for 語句。 “迴圈初始化語句”,並被省略"判斷迴圈終止條件語句",每個迴圈末尾的執行語句為:x=0
因為省略了"判斷迴圈終止條件語句",因此是乙個無休止的迴圈。
b. while(x=1)
這是 while 語句,“確定迴圈結束的語句”是:x=1。 語句是賦值語句,而不是邏輯條件 (x==1) 語句。
此賦值語句的值(即變數 x 的值)始終等於 1。 不為 0 的值在 C 中是相同的"真",因此迴圈將繼續執行。
x=1;x>=++y;x++)
這是 for 語句。
迴圈初始化語句“為:y=2,x=1
判斷迴圈終止條件語句"是:x>=++y
在每個迴圈結束時,執行語句為:x++
我看看"判斷迴圈終止條件語句"是:x>=++y
在第乙個迴圈中,x=1,+y = y+1 = 3。 因此,x=++y 值>邏輯判斷語句為“false”。
此迴圈不會執行一次。 這不是乙個無休止的迴圈。
x=1;++y);
這是 for 語句。
迴圈初始化語句“為:y=0
判斷迴圈終止條件語句"是:x=1
在每個迴圈結束時,執行語句“為:+y”。
我們可以看到,變數 x 的值無論迴圈多少次都不會改變,並且 x 始終等於 1。
每次迴圈時,只有 y 的值遞增 1。
因此"判斷迴圈終止條件語句"is: x=1 是常數。 這是乙個無休止的迴圈。
-
這包含乙個簡單的判斷,即 c 的條件不滿足,所以它是 c
-
應該選擇 C,並且開頭不滿足 x>=++y 的條件,所以 for 迴圈語句在開頭跳出來。
-
a)for(k=-1;-10 個錯誤,k=-1 應該是小寫的 k 而不是無限迴圈,k <-10 後 -10,退出。
b)for(i=1,j=10;i-j;i++,j--)是乙個無限迴圈,i-j只有在i-j=0時才能退出,當i=5時,j=6,下乙個迴圈i=6,j=5,i-j永遠不為0
c)for(k=1;k=10;k++)
是乙個無限迴圈,k=10 是賦值表示式,並且始終為 true。
d)for(k=1;k>0;k++)
是乙個無限迴圈,k 從 1 遞增,所以 k>0 始終為真。
-
答案是 b,其中 a 的 0<=i<=5,當 i 為 0 到 5 時,i<=5 的值為 1,當 i 大於 5 時,i<=5 的值為 0,也就是說 0<=0 或 0<=1 始終為真,迴圈以無線方式進行;
其中 C,當 I 增加到 2 時,i%2 為 false,即 i 始終為 2,判斷始終為 false,i 不執行自增量運算,迴圈無線進行;
再看b,當i為1時,2的餘數為1,1=1為真,迴圈為一次,當i增至2時,2到2的餘數為0,1! =0,迴圈停止。
所以 b 是乙個非無限迴圈。
-
答案是b
要回答這個問題,我們首先要澄清幾個知識點:
語句的執行過程。
2.表示式的值是如何生成的。
我們先談談for語句的執行過程,使其形成for(a; b;c) 例如:
在開始迴圈之前,執行 a;
每次迴圈前,檢查b表示式的值是否為0,如果為0則退出;
在每個迴圈結束時,執行 c
說到表示式的值是如何產生的,有三種表示式,自增量表示式、模表示式和比較表示式。 對於像 i++ 這樣的自動遞增表示式,該值是 i 自遞增之前的值,而對於像 ++i 這樣的自遞增表示式,該值是自遞增後 i 的值。 模的表達值是它的結果; 比較表示式如 0<=i<=5 可以按照大多數 C 編譯器的順序(從右到左)等價於 0<=(i<=5),每個比較表示式的值為 0 或非 0(一般 C 編譯器為 0 或 1),則計算過程變為:
0<=i<=5 => 0<=(0 或 1) => 1 我們回到選項,如上所述,a 中的條件語句值始終為 1,所以對 b 不屬實,i 自增量,然後取 2 的模值為 0,即退出迴圈。
c、同樣的自增量後,迴圈過程中不滿足自增量條件,因此無法退出迴圈。
是的,你需要先把它變成乙個分數。
無限迴圈十進位數屬於有理數,可以用分數的形式表示,分數可以直接加減法,所以無限迴圈小數可以直接加減法。 >>>More
由於小數位數是無限的,顯然不可能寫......十分之一、百分之一、千分之一的數字。 事實上,迴圈小數的難點在於小數位數的無限多。 因此,我將從這裡開始,找到一種方法來“切斷”無限迴圈小數的“大尾巴”。 >>>More