梁一鑫吧 关注:17贴子:348
  • 2回复贴,共1

梁老师,帮我分析几道c语言题好吗??

收藏回复

  • 113.141.28.*
1. 输入 12345#后,写出下列程序的输出结果。
 void main()
 {
  char c;
  for(c=getchar();getchar()!='#';c=getchar())
  putchar©;
 }
2.  若输入 -6+15*3/5=<回车>,则下列程序的输出结果是:
 #include <stdio.h>
 void main()
 {
   int m=0,sum=0;
   char c,oldc='+';
   do{
      c=getchar();
      if(c<='9'&&c>='0')  m=10*m+c-'0';
      else{
           if(oldc=='+')  sum+=m;
           else sum-=m;
                m=0;
                oldc=c;
                printf("%d",sum); 
           } 
   }     while(c!='=');
 }
 
 



1楼2009-07-03 21:54回复
    第一道
    13
    因为,开始输入1赋值给c,然后再次调用getchar()!=‘#’这时候2已经被输入了。然后输出c,而c此时为1.接着c=getchar(),这样3赋值给c,接着再次执行getchar()!=#,这是4被输入!然后输出4.接着执行c=getchar()。把5赋值给c。接着getchar()!='#'而此时#输入。所以,putchar()不执行!


    禁言 |2楼2009-07-03 22:06
    回复
      第二道,你程序是否敲错了?
      你可以按照第一道的方法继续尝试!


      禁言 |3楼2009-07-03 22:09
      回复