问题
单项选择题
有以下程序
main ( )
int k=5,n=0;
while (k>0)
switch (k)
default : break;
case 1 : n+=k;
case 2 :
case 3 : n+=k;
k--;
printf ("%d\n",n);
程序运行后的输出结果是
A) 0 B) 4 C) 6 D) 7
答案
参考答案:D
解析: 本题考查的是switch语句。switch语句中的case或default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入switch语句中时,如果没碰到 break语句,将一直执行到switch语句的结尾。题目中使用了一个while循环使k从5递减到1,当k=5或4的时候从default标号进入switch,碰到break;语句立即跳出,没有改变n:当k=3时,执行了一次 n+=k;;k=2时,也执行了一次n+=k;k=1时,执行了两次n+=k;所以最终n的值为3+2+1+1=7。故应该选择D。