下列程序段不是死循环的是( )。 并

下列程序段不是死循环的是()。并解释A.inti=100;while(1) {i=i%100+1; if(i>100)break; }... 下列程序段不是死循环的是( )。

并解释

A.

int i=100;

while(1)  

{ i=i%100+1;

 if(i>100)break;

 }

B.

int k=0;

do{++k;} while(k>=0);

C.

for( ; ;);

D.

int s=36;

while(s) ––s;
展开
 我来答
one_in_zero
推荐于2017-05-27 · TA获得超过1020个赞
知道小有建树答主
回答量:383
采纳率:60%
帮助的人:156万
展开全部
答案: BD
分析:
A、由于i是对100取余后加1赋值给i,所以i的最大值只能是99+1 = 100,而退出循环的条件是i>100,因此是死循环;
B、int类型如果累加溢出就会变成负数,会退出循环,因此不是死循环

C、for语句的三个条件都为空,且循环体也为空, 就是死循环;
D、执行到第36次循环后,s的值为0,不满足循环的条件,会跳出循环,因此不是死循环。
_叶岚歌
2017-12-07
知道答主
回答量:2
采纳率:0%
帮助的人:1.5万
展开全部
其实题主的问题是写错了的才会有两个答案,选项D应该是:int s=36;while(s);—s。C答案各位大佬都解释了,D里面while后面有个;所以根本不会执行到—s,所以D也是死循环。这是资料上面的题目,我主要是来看C的,没想到差点让我以为资料上的D也不是死循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
libra10cn
2014-12-02 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:72万
展开全部
B和D都不是死循环。题B中int类型如果累加溢出就会变成负数,会出循环。题D中,C语言0可以表示false,当S减少到0时就会出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
X君233
2014-12-02 · 超过30用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:49.5万
展开全部
选BD 解释下B吧,当++k超过int的上限的时候就会溢出,变成负数。D看不懂就呵呵了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式