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

admin2019-08-18  17

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

答案B

解析 因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,“n=0,k=4”,没有break语句,因此执行case 2分支语句,n为2,k为3,程序进行第2次循环,执行“case 3:n=3,k=2”,输出n值为3,程序进行第3次循环,执行case 3这个分支,结果是“n=5,k=1”,打印出5;这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束。
转载请注明原文地址:https://kaotiyun.com/show/C4Rp777K
0

最新回复(0)