永发信息网

两个循环的填空题目 求详解

答案:1  悬赏:50  手机版
解决时间 2021-05-10 18:40
  • 提问者网友:温旧梦泪无声
  • 2021-05-10 01:21

第一题:

main ()

{int x=2;

while(x--);

printf("%d\n",x)}

结果为什么是-1,我求出是1,应该到1时,WHILE里为0了就退出才是啊

X--是表达式啊,当X为2时 X--为1 当X为1时 X--为0 不是就是1么 。。。

 

第2题:

int K,N,M;

N=10;M=1;K=1;

while (K++<=N)M*=2

printf("%d\n",M)

为什么是1024,我算出来时512,一共只有九项啊。

有人告诉我 要先执行K<=N再执行K++

我也不明白为什么

最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-05-10 02:34

第一题:

main ()

{int x=2;

while(x--);

printf("%d\n",x)}

这个当然为-1,你想想,当x=1时,就执行打印出1,遇到}x=0,返回到while,此时进入括号部分进行判断,条件不满足,所以跳到}后面,同时x还要去掉1,不就是-1;注意:如果++在后,一定是执行该语句完成后才进行+运算。++在前,是先进行+运算,再进入实体(语句)。

第二题就不用解答了。你还觉得是运行9次?记着第一次k=1,运行了m*=2之后,k才为2;所以应执行10次,2的10次方不就是1024。

你满意否?

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯