爱问知识人 爱问教育 医院库

请帮我讲下3道C语言题目,急

首页

请帮我讲下3道C语言题目,急

都是和自加自减有关的,怎么算都和答案不对。

int k,n,m;
n=10;m=1;k=1;
while(k++<=n)m*=2;
printf("%d\n",m);

我算出来是2的9次方,答案是2的10次方?


#include <stdio.h>
main()
{ int x=2;
  while(x--);
  printf("%d\n",x);
}
答案是-1。 我觉得第一步输出来怎么都是1啊?



int i=0,sum1;
do{sum+=i++;} while(i<5);
printf("%d\n",sum);

答案是11。我的疑问是do里面的语句 然后我算出来是10 能帮我详细描述下过程吗? 


谢谢,马上要2级考试了,真的很急,分今天都用了,只剩这么多了,希望能帮下,谢谢

提交回答
好评回答
  • 2010-08-21 08:58:40
      第一道题
    k先和n比较 然后再加加
    所以结果是2的10次方
    第二道题
    和第一道原理一样,是x先做判读,然后再减减操作
    当x = 0时退出循环之前 要做一次减减操作  
    所以x = -1
    第三道题
    和前两道题原理一样
    sum = 1; 初始化值
    然后循环体里面的过程
    sum = sum + 0;
    i = i + 1;
    sum = sum + 1;
    i = i + 1;
    sum = sum + 2;
    i = i + 1;
    sum = sum + 3;
    i = i + 1;
    sum = sum + 4;
    i = i + 1;
    退出循环
    所以sum最后的结果为1 + 0 + 1 + 2 + 3 + 4 = 11
    从所有题目来看,你并没有把i++ 和++i搞清楚怎么运算的。
       对于i++来说 i先给前面赋值,然后自身增加1 例如:i = 1;n = i++; 结果:n = 1; i = 2; 对于++i来说,i先自身增加1,然后再做其他操作。例如:i = 1; n = ++i; 结果: n = 2;i = 2; 减减操作和加加操作相同。
      

    独***

    2010-08-21 08:58:40

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):