解析中的C选项的解释看不懂,不是应该是碰到exit0所以for循环才不一定是执行8次么?

有以下程序段:
#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选项的解释看不懂】C)选项中当产生的随机数为1和2时分别执行case3与case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。

吃鸡游戏
浏览 158回答 3
3回答

潇湘沐

首先要理解switch语句的执行流程:首先判断n值,然后在case语句中找与n值相同的来执行。switch语句中的case语句是顺序执行的,也就是说执行完case&nbsp;1,就执行case 2,知道全部执行完毕。当case语句中存在break等时,就会结束跳出,不执行下面的语句。语言组织的不是太好,凑合看吧,亲,不懂可以继续提问!

catspeake

exit(0):正常运行程序并退出程序。exit(1):非正常运行导致退出程序;return():返回函数,若在主函数中,则会退出函数并返回一值。拓展知识:1. return返回函数值,是关键字; exit 是一个函数。2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。3. return是函数的退出(返回);exit是进程的退出。4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS(操作系统),这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。&nbsp;

森栏

exit ( 0);是结束程序的意思,所以执行这句后整个程序就结束了,自然不用再执行for语句了;而break则只是跳出for循环,执行这个语句后,后面的语句代码还是有执行的。
打开App,查看更多内容
随时随地看视频慕课网APP