单选题 有以下程序: #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。