问题 单项选择题

有以下程序:
main()
int k=5, n=0;
do
switch(k)
case 1:case 3:n+=1; k--; break;
default:n=0; k--;
case 2:case 4:n+=2; k--; break;

printf("%d", n);
while(k>0&&n<5);

程序运行后的输出结果是( )。

A) 235
B) 0235
C) 02356
D) 2356

答案

参考答案:A

解析: 因为变量的初始值分别为“k=5, n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行“case 4”这个分支,结果是“n=2, k=3”,打印出2;程序然后进行第二次循环,这时“n=2, k=3”,执行“case 3”这个分支,结果是“n=3, k=2”,打印出3;程序进行第三次循环,这时“n=3, k=2”,执行“case 2:case 4:”这两个分支,结果是“n=5, k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

解答题
单项选择题