有以下程序段: #include<stdio.h> 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: cas

admin2022-06-24  24

问题 有以下程序段:
#include<stdio.h>
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:print/("%d\n",n);continue
case 0:exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是(          )。

选项 A、for循环语句固定执行9次
B、当产生的随机数n为1和2时不做任何操作
C、当产生的随机数n为0时结束程序运行
D、当产生的随机数n为4时结束循环操作

答案C

解析 case常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行SWitch语句时,根据switch的表达式,找到与之匹配的case语句。就从此case子句执行下去,不再进行判断,直到碰到break或函数结束为止。简单地说break是结束整个循环体,而continue是结束单次循环、而当产生的随机数n为4时,要执行打印操作。当产生的随机数为1和2时,分别执行case3与case4后面语句的内容。由于存在break语句,所以for循环不是固定执行9次,执行次数与产生的随机数n有关系。
转载请注明原文地址:https://kaotiyun.com/show/7Ukp777K
0

最新回复(0)