關于無限循環語句
第一個當n超出最大正數時就變成負數了,變成n 追問: do。
while是不是先執行再循環啊,答案怎么說是執行一次就出來了 追答: 映像中正確的語句應該是:n++,而不是++n 追問: 如果是先執行do里面的語句的話,n++和++n的效果不是一樣的嗎 追答: 肯定是先執行do 但++n好像是別的意思,我記不清了,手頭也沒有編譯器。好像是n的地址+1,你可以單步走,看看地址有沒有變化 評論0 0 0。
以下語句中無限循環語句是 Awhile(1,2,3);B while('\0');C for(;2&5;);
A,是無限循環,考察的是C語言中的逗號表達式
B,'\0'是c/c++語言中的字符串結束符,在ASCII字符集中對應數字0。
C,2&5=010 & 101 = 000,不是無限循環
D,同B
所以答案選:A
補充:逗號表達式
C語言提供一種特殊的運算符——逗號運算符。用它將兩個表達式連接起來。如:
3+5,6+8
稱為逗號表達式,又稱為“順序求值運算符”。逗號表達式的一般形式為
表達式1,表達式2
逗號表達式的求解過程是:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。例如,上面的逗號表達式“3+5,6+8”的值為14。
參考:http://**hnrainll/archive/2011/08/03/*
求解析~~~~~~~~~~(22)以下不構成無限循環的語句或者語句組是A)
A答案中,++n會優先while執行,所以while中n起始值實際是1,所以1B答案中,while條件是int型的1,不存在判斷,所以無論n怎么變化,不影響while,所以不會自動break;C答案同B,雖然while條件是變量,但是依然是int型,不存在boolean的判斷,所以結果和B一樣.D答案,for里面,第二個是判斷循環條件的,由于第二個條件為空,所以結果同B和C,不存在boolean判斷,所以無論變量如何變化也不會影響循環判斷,所以會無限循環.還有疑問可以補充.。