有以下程序 main() { int i=0,s=0; for(;;) { if(i==3‖i==5) continue; if(i==6) break; i++; s+=i }; pr

admin2009-01-15  18

问题 有以下程序    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、21
D、程序进入死循环

答案8

解析 本题考核的知识点是for循环,continue语句和break语句的运用。程序中 for循环中省略了判断退出循环的表达式,for循环将由里面的break语句控制是否结束循环,第一次循环,第一条if语句后面括号里的表达式的值为假,所以该if语句不被执行,执行下面的第二条语句,此时该if语句表达式的值为假,所以该if语句也不执行,执行下面的语句,i++、s+=i,执行完毕后i的值为1,s的值为1,如此循环,直到第三次之后 i,s的值都为3,继续第四次循环,显然这时满足第一条if语句的,执行后面的continue;该次循环结束从头开始下次循环,而i的值为3一直没有改变,所以第一条语句始终要执行,因此for循环将一直循环下去,所以,4个选项中选项D符合题意。
转载请注明原文地址:https://kaotiyun.com/show/B6Xp777K
0

相关试题推荐
最新回复(0)