求解释A选项为什么错了呀,什么叫固定执行8次呀,还有B选项输出的结果是, 答案是D
2个回答
展开全部
#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); 表示结束程序运行。
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 循环的次数
如果在 for 内部执行了 break,会提前结束整个 for 循环。
但本例中的 break 不属于这种情况,因为本例中的 break 是作用于 switch 的。
如果在 for 内部执行了 exit(0),会提前结束整个程序。
本例中的 exit(0) 可以提前结束整个程序,for 循环当前也会被提前结束。
如果在 for 循环过程中,改变了循环变量 i 的值,将会改变 for 的循环次数。
本例中,循环变量 i 的值没有被修改。
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
2015-03-12
展开全部
A最多执行8次。
B当n为5的倍数时,结束执行。
B当n为5的倍数时,结束执行。
更多追问追答
追问
n为5的倍数时,那它是怎样退出for循环的呀
追答
case (0):exit(0);退出程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询