问题 单项选择题

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

A.for循环语句固定执行8次

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.当产生的随机数n为0时结束程序运行

答案

参考答案:D

解析: case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case-子句执行下去,不再进行判断,直到碰到break或函数结束为止。简单地说,break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时,要执行打印操作。C选项中当产生的随机数为1和2时,分别执行case 3与case 4后面语句的内容。由于存在break语句,所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。

名词解释
单项选择题