永发信息网

你好,可以请问你一个C语言问题吗

答案:5  悬赏:30  手机版
解决时间 2021-03-29 11:31
  • 提问者网友:富士山上尢
  • 2021-03-28 18:24
你好,可以请问你一个C语言问题吗
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-03-28 18:37
x初始值为4.
第一次循环, 输出x--, 先取值, 输出4, x自减为3.
然后执行循环判断. x-=3, x值为0. !x=1, 继续循环.
第二次循环, 一样先取值, 输出0, x自减为-1.
执行循环判断, x-=3, x=-4 !x=0, 退出循环.
输出为4 0
选 D追问!x 是什么意思呢追答逻辑非运算来自:求助得到的回答
全部回答
  • 1楼网友:洒脱疯子
  • 2021-03-28 21:53


x--的意思是先使用x,然后x=x-1。放在这道题中就是printf("%d ", x);
x--;
所以输出了一个4,然后x自减为3。
程序运行到了 while(!(x-=3)); 这一行。循环条件中的 x-=3 即 x=x-3 即 x=0 ,该表达式变成 while(!0),所以循环继续。
第二次循环,输出0,x自减为-1,同上述步骤进入循环条件 while(!(-4)) ,非任何非零值均为0,所以 while(0),循环终止。
  • 2楼网友:鸠书
  • 2021-03-28 20:13
D
do
{ printf("%d ", x-- );
}while(!(x-=3));
x=4;
printf("%d ", x-- )----->>x=4-------printf(4)
x-- ------------------->>x=4-1=3----------x=3;
while(!(x-=3));--------->>x-=3------>x=0---->while(!0)---->while(true)
printf("%d ", x-- )----->>x=0-------printf(0);
x-- ------------------->>x=0-1=-1;
while(!(x-=3));--------->>x-=3------>x=-4---->while(!-4)---->while(false)
  • 3楼网友:毛毛
  • 2021-03-28 19:50
D、4 0
0 为假,非0(无论正,负,只要不是0)为真。
int x=4;
do { printf("%d ", x-- ); }while(!(x-=3));
后缀减,可写成: do { printf("%d ", x ); x=x-1; } while(!(x-=3));
第一次打印 4; x 变 3; while 里,x-=3 得0,!0 为真继续,
第二次打印 0; x 变 -1; while 里,x-=3 得-4, -4为真, !(真) 为假, 结束循环。
  • 4楼网友:孤独的牧羊人
  • 2021-03-28 19:39
答案是D吧。
do...while会保证至少一次循环。第一次循环里,x--是后操作符,在打印时x还是4 。在打印完之后才会执行--,到while的条件时,x为3 。x-=3有小括号提高了优先级会先进行计算,结果为x=0了。此时为false,然后对false进行了取反操作成了true,进入第二次循环,打印出0。然后x变为-1,再在while条件里x变为了-4,此时取反后为false。循环终止。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯