C语言题目,不明白为什么选B吖,能详细地解说一遍吗?谢谢。

 我来答
tianyuwuse
2014-01-04 · TA获得超过1117个赞
知道小有建树答主
回答量:494
采纳率:100%
帮助的人:236万
展开全部
1、--b结果为9,a--表达式的值为10,输出后a的值变为9。因此第一行输出10,9
2、b=++k,因此b=1,此时a=9所以大于8,因此继续循环,--b此时为0,而a--的值为9,输出后a变为8;
3、b=++k,此时b变为2,但是由于a为8而不大于8,所以循环结束。

严格的说,你的选项中任何一个都不对,因为忽视了输出换行符。所以结果应该为:
10,9,
9,0,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沣润茗茶c2
2014-01-04 · 超过23用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:24.5万
展开全部
其实这个打印语句执行了两次。隐含的条件是a--;
第一次,a>8成立执行,打印语句,a--的意思是,先使用a的值,然后再将a的值减减,所以先打印了10,而b- -的意思是,先将b执行减减操作,然后打印b的值,即打印9
第二次,第一次执行完成后,a = 9,b = 1(由b = ++k这个语句得到),所以再执行一次打印 9 ,0
你可以这么看这段代码
int a =10,b = 10,k;
for(k =0; a>8; a--)
{
printf("%d,%d\n",a--,--b);
b=++k;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e4e3997
2014-01-04
知道答主
回答量:28
采纳率:0%
帮助的人:11.7万
展开全部
在输出语句中,a--实际上看可以看成是a,只是在执行完那条语句后a再自减。而--b是在自减后再取其值输出。
追问
这个我明白吖,第一次循环可以得到:a=10,b=0;第二次循环可以得到:a=9,b=1。所以a的输出结果是10和9,排除了选项ACD。但是我不明白答案b的输出结果是9和0?
追答
b的第一次输出是在吧经过一次自减后的输出,所以为9.
后一次是经过b=++kf赋值后,值变为1后再经过自减一次的输出结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式