有以下程序: main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1;k--;break; default:n=0;k--; case2: case4

admin2011-06-13  16

问题 有以下程序:    main()    {int k=5,n=0;    do    {switch(k)    {case1:    case3:n+=1;k--;break;    default:n=0;k--;    case2:    case4:n+=2;k--;break;    }    printf("%d",n);    }while(k>0&&n<5);    }    程序运行后的输出结果是(       )。

选项 A、235
B、235
C、2356
D、2356

答案A

解析 do-while语句的特点是先执行循环体,然后再判断循环条件是否成立,当循环条件的值为0时循环结束。本题中执行switch语句,寻找与5匹配的case 5分支,没有寻找到则执行default后的语句,n=0,k的值变为4,继续执行switch语句,寻找与4匹配的case 4分支,找到后开始执行其后的语句“n+=2;k--;”,n的值为2,k的值变为3,遇到break语句跳出该switch语句体。执行print语句输出2;此时n=2,k=3依旧满足do-while循环条件,将用同样的方式再次执行switch语句,直到n=5时不再满足do-while循环条件退出所有的循环。
转载请注明原文地址:https://kaotiyun.com/show/mjPp777K
0

随机试题
最新回复(0)