单选题
有以下程序:
#include
main()
{ int k=5,n=0;
do
{ switch(k)
{ ease 1:case 3:n+=1;k一一;break;
default:n=0;k一一;
case 2:ease 4:n+=2;k一一;break;
}
printf(“%d”,n);
}while(k>0&&n<5);
}
程序运行后的输出结果是( )。
【正确答案】
C
【答案解析】解析:k的值为5,逐个对case语句进行匹配,均不匹配,执行default下的语句n=0;k一一。再执行ca9e2:case4;后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k>0&&n<5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1;k一一;。再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:后面的语句n+=2;k一}一;。执行break语句跳出循环体,打印n的值5。此时n不满足条件k>0&&n<5,所以结束循环。整个程序的打印结果为235。