C语言选择题 求高手指教

下面程序的运行结果是()#include<stdio.h>main(){inti;b;k=0;for(i=1;i<=5;i++){b=i%2;while(b-->=0)k... 下面程序的运行结果是 ()
#include<stdio.h>
main()
{ int i;b;k=0;
for(i=1;i<=5;i++)
{ b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
}

A)3,-1 B)8,-1 C)3,0 D)8,-2

答案选的是D 可我认为运行结果是5,0 请高手帮忙讲解下为什么选D吗 是如何得到的运行结果 ?
展开
 我来答
低调黑马
2010-11-15 · 超过28用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
什么?声明就有很多问题, int i;b;k=0中i和b后的应该用逗号,不是分号。
另外,你的问题原因是while 也是一个循环。当i为1,3,5时余数即b为1时,k自增一次,b是先使用后自减,减了之后为0,还是瞒住条件,k又自增一次,i为5时,当b减到-1时k不自增,但注意,b是先使用,后自减,虽然b为-1是k不进行自增了,但b还是会在自减一次。即为-2。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式