//第一个
main()
{
int i;
int a[10];
for(i=0;i<=10;i++)a[i]=0;
}
//第二个
main()
{
int i=0;
while(i<=10);
i++;
}
//第三个
main()
{
int i=0;
while(i>=0)i++;
}
//第四个
main()
{
int i=0;
for(;;)if(i=0)break;
}
C++题,下面4个程序中,哪三个是死循环程序?哪个不是死循环程序?为什么?
答案:4 悬赏:60
解决时间 2021-03-12 08:21
- 提问者网友:生亦何欢
- 2021-03-11 10:18
最佳答案
- 二级知识专家网友:茫然不知崩溃
- 2021-03-11 11:12
1.不是死循环。循环结束条件i=11的时候,判读
i<=10表达式为false,跳出循环。i++,总会到11.
2.是死循环,有分号,i永远i<=10。
3.死循环。因为它循环结束的条件必须是i>=0表达式为false,也就是i<0.然而i=0,以后每次都i++,这样i肯定大于0.结束条件肯定不成立。
4.死循环。for(;;)它没有循环结束条件。
但是循环体有个跳出循环的条件。就是i=0。因为i=0是个赋值表达式,它的值为0,所以一直为
false.所以条件不满足,一直执行不了break.
所以就一直跳不出循环。是死循环。
i<=10表达式为false,跳出循环。i++,总会到11.
2.是死循环,有分号,i永远i<=10。
3.死循环。因为它循环结束的条件必须是i>=0表达式为false,也就是i<0.然而i=0,以后每次都i++,这样i肯定大于0.结束条件肯定不成立。
4.死循环。for(;;)它没有循环结束条件。
但是循环体有个跳出循环的条件。就是i=0。因为i=0是个赋值表达式,它的值为0,所以一直为
false.所以条件不满足,一直执行不了break.
所以就一直跳不出循环。是死循环。
全部回答
- 1楼网友:气场征服一切
- 2021-03-11 15:17
int num_date[4] = { 1 , 2 ,3 ,4};//定义并初始化一个整形数组
for(int i = 0; i < sizeof(num_date)/4 ; i++) {//循环输出数组num_date里面的值 cout << num_date[i] << endl; }
- 2楼网友:不羁的心
- 2021-03-11 13:42
1.不是
int i;
for(i=0;i<=10;i++)a[i]=0; //i在此初始化为0,自增到11 for自然退出
2.是死循环
int i=0; //i在此初始化
while(i<=10); //这个while的循环体中就一条空语句;中没有对i的值进行任何改变,条件恒成立,所以死循环
i++; //这个要在while退出后才会执行,对while的条件没有任何影响
3.不是
int i=0; //注意int的确切类型是signed int 有符号整型
while(i>=0)i++; //i在从0自增到 0第一个:没问题,是初始化数组的基本方法之一。
第二个:死在while(i<=10);中,因为该句后面有个分号,它相当于执行无数次循环后才进行i++,所以是死的。
第三个:死在while(i>=0)i++中,因为i始终是非负数,因此无法不满足i>=0条件,故死;
第四个:if(i=0)就是错误的,应改写成“if(i==0)”。
- 3楼网友:劳资的心禁止访问
- 2021-03-11 12:38
第一个不是,但有数组越界
第二个是, while(i<=10);注意分号,i总是等于0
第三个不是,因为有符号整数是有范围的,正的超过范围就成了负的
第四个是,if中将i赋值为0,则if条件为假,不执行break,故不退出此类for死循环
补充:while、do while、for死循环是可由break或return(函数调用时)退出的,而死循环也不是简单的看待的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯