在下列选项中,没有构成死循环的是( )。
A.int i=100;
while(1)
i=i%100+1;
if(i>100)break;
B.for(;;);
C.int k=10000;
dok++;while(k>10000);
D.int s=36;
while(s) --s;
参考答案:D
解析: 选项A) 的循环表达式条件永久为1,由于小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会被执行,所以是死循环;选项B) 的括号内没有能使循环终止的条件,是死循环;选项C) 中先执行k++,使k=10001,陷入死循环;选项D) 中的s从36开始,每循环一次就减小1,直到s为0,循环结束,不会构成死循环。