有以下程序 #include 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;

admin2019-08-10  30

问题 有以下程序
#include
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、02356
B、0235
C、235
D、2356

答案C

解析 k的值为5,逐个对case语句进行匹配,均不匹配,执行default下的语句n=0;k- -;在执行case2:后面的空语句,与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--,跳出循环体?打印n的值5?此时n不小于5了条件k>0 && n<5不成立了,所以结束循环?整个程序的打印结果为235。
转载请注明原文地址:https://kaotiyun.com/show/kSRp777K
0

最新回复(0)