求解释A选项为什么错了呀,什么叫固定执行8次呀,还有B选项输出的结果是, 答案是D

 我来答
bfdnyj
2015-03-12 · TA获得超过469个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:131万
展开全部
#include<stdio.h>
int i, n;
for(i=0; i<8; i++)
{
n=rand() % 5;
switch(n)
{
case 1:
case 3: print("%d\n", n); break;
case 2:
case 4: printf("%d\n", n); continue;
case 0: exit(0);
}
printf("%d\n", n);
}

A) for 循环语句固定执行 8 次。
“固定执行8次”就是说这个循环肯定会循环8次的意思。
这是不对的,因为执行 n=rand() % 5; 后 n 的值的范围是 0 - 4,
如果某次循环过程中, n 为 0 时,
case 0: exit(0); 就会执行,程序会结束运行。
所以 for 循环未必能运行 8 次。
B) 当产生的随机数 n 为 4 时结束循环操作。
这是不对的,因为当 n 为 4 时,
case 4: printf("%d\n", n); continue; 会被执行。
其中的 continue; 表示立即进行下一个循环。
所以循环不会因此结束。
C) 当产生的随机数 n 为 1 和 2 时不做任何操作。
这是不对的,因为当 n 为 1 和 2 时,
程序会分别进入 case 1: 和 case 2: 分支运行,
虽然这他个分支没有内容,但由于这两个分支没有 break; 语句,
所以程序会进行它们下面的 case 3: 和 case 4: 分支运行。
D) 当产生的随机数 n 为 0 时结束程序运行。
这是对的,因为当 n 为 0 时,
程序会进入 case 0: exit(0); 分支运行,
其中的 exit(0); 表示结束程序运行。
更多追问追答
追问
for语句不是不管内部是什么,for自己不是从i=0开始一直执行到i=8结束吗?那不是执行8次吗?
追答

有三种特殊情况可以改变 for 循环的次数


  1. 如果在 for 内部执行了 break,会提前结束整个 for 循环。

    但本例中的 break 不属于这种情况,因为本例中的 break 是作用于 switch 的。

  2. 如果在 for 内部执行了 exit(0),会提前结束整个程序。

    本例中的 exit(0) 可以提前结束整个程序,for 循环当前也会被提前结束。

  3. 如果在 for 循环过程中,改变了循环变量 i 的值,将会改变 for 的循环次数。

    本例中,循环变量 i 的值没有被修改。

中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
匿名用户
2015-03-12
展开全部
A最多执行8次。
B当n为5的倍数时,结束执行。
更多追问追答
追问
n为5的倍数时,那它是怎样退出for循环的呀
追答
case (0):exit(0);退出程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式