永发信息网

C语言do....while语句问题,帮帮忙,谢谢啦

答案:4  悬赏:70  手机版
解决时间 2021-04-11 01:42

int x=3;
do
{  printf("%3d",x-=2); }
while(!(- -x));

以上语句是怎样执行的?说详细点哦

最佳答案

步骤:x=3; --> 执行printf("%3d",x-=2);-->此时的x的值为1,打印出1,因为x-=2等价于x=x-2。-->判断


while()的表达式是否为真,因为“--”运算符优先级大于“!”逻辑非运算符,所以x先自减,这时候的x=0,进行逻辑非运算后,!0的值为1,所以条件为真再次执行printf("%3d",x-=2),上一次的运算可以得知x的值已经为0既x=0;所以这次打印出-2,然后进行条件判断,!(-2)的值为0,条件不成立,退出循环。


do{ 循环体 }while( 条件判断 ) 循环简单的说就是先执行循环体,再进行条件判断,条件成立则继续执行循环体,不成立则退出循环;


它与while( 条件判断 ){ 循环体 }相反,while(条件判断) 是先进行条件判断,再执行循环体


两者的差别是不管条件成不成立,do{...}while()的循环体最少也执行了一次,而while()里的循环体则不一定了。

全部回答

1,先执行int x=3,

2,执行printf(“%3d”,x-=2)

3,因为第一次执行时x=1,又因为如果!(--x)=0就又执行printf(“%3d”,x-=2)

直到!(--x)=1就不做而结束循环。

int x=3; do {  printf("%3d",x-=2); } while(!(- -x));

先执行输入语句输入x自减2之后的值1

在执行x自减判断是否为真,为真则继续执行,否则推出循环

反复执行,知道--x为假

1、执行int x=3; 2、执行printf("%3d",x-=2) //用三位位置显示x,x=x-2

3、判断(!(- -x)) //如果--x不等于0

4、如果成立则回到2,否则结束循环

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奓山路/联富路(路口)在哪里啊,我有事要去这
德国的AlMg1材料相当于中国标准的什么材料?
世界上真的有吃人的蛇吗?
怎么讲音速的名字竖的打?
天下贰修为是怎么计算的?
网速和宽胎有关系吗
怎么才知道自己是喜欢一个人还是爱一个人呢?
有些地方把特有的传统文化活动与现代城市流行
喝醉酒后吃柿子可以解酒吗?
召唤师刚转职的加点
模拟人生2嘿咻补丁
澳服lol怎么充值
公主岭市畜牧兽医局地址在什么地方,想过去办
孤独与寂寞有什么分别?
游戏人生怎么打开
推荐资讯
下面句子的横线处,应选填的一组句子,最恰当
天龙八部63级MJ穿什么装备好
3.5m3=________dm38.03dm3=________L2L=_____
修罗技能修改补丁?
第II卷第一节对话填空(共10小题;每小题1分
河西居民区窦氏中医门诊在哪里啊,我有事要去
广东省信宜市粤西葡萄糖有限公司怎么去啊,有
通货膨胀背景下高校可否提高学费?
barrel2u充值油卡一直在处理中?应该怎么办?
请问一下,为什么我的QQ农场开不了
DNF多版本启动器是怎么回事
qq农场仓库果实没了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?