问题
单项选择题
有以下程序 main() { int i=0,s=0;for(;;) {if(i==3‖i==5) continue;if(i==6) break;i++;s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是
A.10
B.13
C.24
D.程序进入死循环
答案
参考答案:D
解析:程序中for循环中省略了判断退出循环的表达式,for循环将由里面的break语句控制是否结束循环,第一次循环,第一条if语句后面括号里的表达式的值为假,所以该if语句不被执行,执行下面的第二条语句,此时该if语句表达式的值为假,所以该if语句也不执行,执行下面的语句,i++、s+=i,执行完毕后i的值为1,s的值为1,如此循环,直到第三次之后i,s的值都为3,继续第四次循环,显然这时满足第一条if语句的,执行后面的continue该次循环结束从头开始下次循环,而i的值为3一直没有改变,所以第一条语句始终要执行,因此for循环将一直循环下去。