有以下程序: #include void main() {int i=5,s=0; do {switch(i) {case 1:case 3:s+=1;i--;break; default:s=0;i一一; case 2:case 4:s+=2;i一一;b

admin2021-04-28  24

问题 有以下程序:
#include
void main()
{int i=5,s=0;
do
{switch(i)
{case 1:case 3:s+=1;i--;break;
default:s=0;i一一;
case 2:case 4:s+=2;i一一;break;
}
printf(’’%d’’,s);
}while(i>0&&s<5);
}
程序运行后的输出结果是(  )。

选项 A、235
B、2350
C、0235
D、2356

答案A

解析 注意两点。一是case分支语句后面若没有break则会执行其后的所有语句,直到有break跳出或switch()语句结束,do一while循环第1次执行时,i=5,在switch中执行default分支,但其后没有break,所以后面的分支也会被执行,执行完后s=2,i=3;第2次执行do一while循环时,会执行case 3后面的语句,直到有break跳出,执行完后s=3,i=2;第3次执行后s=5,i=1,此时注意while中的条件是s<5,所以循环结束,打印的结果是235。
转载请注明原文地址:https://kaotiyun.com/show/aFtp777K
0

最新回复(0)