问题 单项选择题

下列程序的运行结果是( )。
#include<stdio.h>
void main()
int s=0, k;
for(k=7; k>1; k--)
switch(k)
case 1:
case 4:
case 7:
s++;
break;
case 2:
case 3:
case 6: break;
case 0:
case 5:
s+=2:
break;

printf("s=%d", s);

A.s=3

B.s=4

C.s=5

D.无输出结果

答案

参考答案:B

解析: 运行程序,当k=7时switch(7)执行case: 7,s++后s=1,break跳出。k--,k=7继续循环switch(6),执行case 6: 直接跳出循环,k--变成5继续循环switch(5)执行case 5后面的语句s+=2也相当于s=s+2,此时s为3,break跳出,k变为4继续循环,执行case 4为空,继续执行case 7: s++为4跳出循环k--变为3,继续循环执行case 3,空语句往下执行case 6跳出。k--为2,继续循环执行case 2:空语句往下执行case 3,空语句再执行case 7跳出循环k--为1不符合循环退出,此时s=4。

选择题
单项选择题