c语言题目~求解!!

#include“stdio.h”main(){inta=3;do{printf("%d,",a-=2);}while(!(--a));printf("\n");}程序运... #include“stdio.h”
main()
{ int a = 3;
do { printf("%d,", a-=2 ); }
while( ! (--a) );
printf("\n");
} 程序运行后的输出结果是
A.1, -2, B.1, C.3,0, D.1,0
求具体步骤,A是怎么来的?
展开
 我来答
会点技术的小子
2014-03-25 · TA获得超过528个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:277万
展开全部
#include"stdio.h"
void main()
{ int a = 3;
do{
printf("%d,", a-=2 ); //一开始初始化a=3; 故a=3-2; a=1;然后判断while(!(--a))此时a=0故 !0=1 为真while循环继续循环 此时a=0,a=0-2;故得a=-2;判断while(!(--a)),此时!(-3)=0 while循环结束。
}
while( ! (--a) );
printf("\n");
}
xoaxa
2014-03-25 · TA获得超过8603个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3354万
展开全部
执行printf("%d,", a-=2 );后,输出1,且a = 3 - 2 = 1

(--a)后,a = 0,!0 = 1,继续while循环。

执行printf("%d,", a-=2 );后,输出-2,且a = -2 - 2 = -4

(--a)后,a = -5,!-5 = 0,结束while循环。
最后执行printf("\n");故代码输出为

1,-2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小楼微醉
2014-03-25 · TA获得超过296个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:157万
展开全部
第一次 :printf(a=3-2) :1,
然后 a==1;

while(!(--1)) 即 a=--1;a=0; 所以 !a为真
然后 a==0;

第二次:printf(a=0-2) :-2
然后 a==-2;

while(!-3)为假 循环退出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
765101340
2014-03-25
知道答主
回答量:13
采纳率:0%
帮助的人:9.1万
展开全部
printf("%d,", a-=2 );

中输出a的值将a-2了 即为1
while( ! (--a) )中是--a是先进行判断再减 即while(!(1)); 继续循环

该语句结束后发生--a; a为0
然后再进行循环
a-=2 输出-2
至于如何退出循环 表示不理解

看看--a和a--的区别吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
挥手叹服
2014-03-25
知道答主
回答量:18
采纳率:0%
帮助的人:9.1万
展开全部

过程:

  1. a=3;

2.执行a-=2,之后a=1·,并输出1;

3.之后,执行--a,之后a=0

4.继续do之中的语句,a=-2并输出

5.while条件不成立。结束。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孔子有云
2014-03-25 · 超过35用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:86.1万
展开全部
a-=2的意思是a=a-2,do while 循环,先进行运算,再判断,所以先输出a-=2的值为1,while(!(--a))意思是a先自减1,然后a=0;因为!(--a)
所以while中条件不为零,然后,继续循环,此时a=0,然后a-=2,为a=0-2=-2,所以结果为1,-2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式