问题 单项选择题

有以下程序: 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.0235

C.02356

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循环条件退出所有的循环。

选择题
单项选择题