有以下程序: #include main() {int s=5,i; for(i=1;i<3;i++) switch(i) {default:s+=i; case 2:s++;break; case 4:s+=2;break; } printf(’’%d\

admin2020-06-16  22

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

选项 A、7
B、8
C、9
D、10

答案B

解析 在switch语句中一般会将default语句放在最后,作为最后一个分支,所以通常后面不会跟break语句,但本题中将default放在了最前面,所以其后要跟break才不会出现误操作,但本题中没有break,所以要仔细分析。for循环只执行2次,第1次i=1,此时执行switch语句中的default语句。但因为后面没有break语句,所以会继续执行case 2语句,并在碰到其后的break语句后跳出switch语句,此时s=7;当执行第2次for循环是。i=2,此时只执行s++一句,所以结果是s=8。
转载请注明原文地址:https://jikaoti.com/ti/bsG0FFFM
0

最新回复(0)