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

admin2013-02-23  26

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

答案8

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

最新回复(0)