单选题
有以下程序段
#include <stdio.h>
main()
{
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch(n)
{ case 1:
case 3: printf("%d/n",n); break;
case 2:
case 4: printf("%d/n",n); continue;
case 0: exit(0);
}
printf("%d/n",n);
}
}
以下关于程序段执行情况的叙述,正确的是______。
【正确答案】
A
【答案解析】[解析] case常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从该case子句执行下去,不再进行判断,直到碰到break或函数结束为止。简单地说,break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时要执行打印操作。C选项中当产生的随机数为1和2时分别执行case 3与case 4后面语句的内容。由于存在break语句,因此for循环不是固定执行8次,执行次数与产生的随机数n有关系。故本题答案为A。