有以下程序: #include main() { int c=0,k; for(k=1;k<3;k++) switch(k) {default:c+=k; case 2:c++;break; case 4:c+=2;break; } printf("%d

admin2019-01-11  39

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

选项 A、7
B、5
C、3
D、9

答案C

解析 向switch语句块传送参数后,编译器会先寻找匹配的case语句块,找到后就执行该语句块,遇到break跳出;如果没有匹配的语句块,则执行default语句块。case与default没有顺序之分。所以第一次循环k的值为1,执行c+=k,c的值为1,再执行case 2后的语句c++,c的值为2,遇到break语句跳出循环;第二次循环k的值为2,执行case 2后面的语句c++,c的值为3,跳出循环。
转载请注明原文地址:https://kaotiyun.com/show/bdxp777K
0

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