求教一道二级C语言的问题!

在教材上看到的一个题:有以下程序段:intx=3;do{printf("%3d",x-=2);}while(!(--x));程序段的输出结果是A)1B)30C)1-2D)... 在教材上看到的一个题:
有以下程序段:
int x = 3;
do
{ printf("%3d",x-=2);
}
while(!(--x));
程序段的输出结果是
A)1 B)3 0 C)1 -2 D)死循环

我没有搞明白那个while语句括号内的东西,能帮我解释一下这个内容以及程序的运作过程么?谢谢!
展开
 我来答
百问谁度
2013-01-24 · TA获得超过1043个赞
知道小有建树答主
回答量:623
采纳率:50%
帮助的人:241万
展开全部
while(!(--x));就是判断里面的(!(--x))是真是假
假的话就结束
一开始x=3,然后到printf里的x-=2;x就变成=1
然后去到while里进行判断为真
就继续循环一次~然后x再变成-2
再while里判断~就为假~就结束循环~
所以选C
考试派丨美洽教育
2024-05-28 广告
作为世界经济的发动机,中国对于国际化的会计师是供不应求的。为了帮助中国培养更多的国际化的会计师团体,国际会计师公会AIA本着对CICPA专业考试的认可和尊重,为取得CICPA并且工作满三年的学员专门设计三门课程(其中一门免考),通过考试后即... 点击进入详情页
本回答由考试派丨美洽教育提供
90后小白110
2013-01-24 · 超过25用户采纳过TA的回答
知道答主
回答量:194
采纳率:0%
帮助的人:59.3万
展开全部
do是先执行再循环
先执行循环体内的i=3-2=1
输出1
接着下面的while一次--i
1-1=0;外面有个!0接着循环一次
1-2=-1;再一次--i=-2
这一次!运算为0终止整个程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式