有以下程序段 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: ca

admin2020-07-28  25

问题 有以下程序段
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

解析 当产生的随机数为4时,对5取余结果为4,执行case4后面语句,见到continue结束本次循环,而非结束程序运行,所以B选项错误,当产生的随机数为1时,执行case1后面的所有语句,直到遇到break语句跳出switch结构;当随机数为2时,执行case2后面的所有语句,直到遇到continue语句跳出本次循环,所以C选项错误,由于循环体中含有exit(0)语句,该语句的功能是终止程序的执行,所以不是固定执行8次,A选项错误。
转载请注明原文地址:https://jikaoti.com/ti/fOD0FFFM
0

最新回复(0)