下列给定程序中,函数fun()的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改

admin2010-09-14  26

问题 下列给定程序中,函数fun()的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main,~数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include  <conio.h>
   #include  <stdio.h>
   void fun(long s,long *t)
   /**********************************/
   { int d;
   long s1=l;
   *t=0;
  while(s>0)
         { d=s%10;
    /**********************************/
         if(d%2=0)
             {*t=d*sl+*t;
              sl*=10
             }
   /**********************************/
         s\=10;
       }
   }
   main ( )
  { long s,t;
   clrscr();
   printf("\nPlease enter s: ");  scanf
            ("%ld",&s);
   fun(s,&t);
   printf("The result is :%ld\n",t);
  }

选项

答案(1)错误:int d; 正确long d; (2)错误:if(d%2=0) 正确:if(d%2==0) (3)错误:s\=10; 正确:s/=10

解析 其实,不论取出偶数还是奇数,思路应该是一样的。我们在刚开始学习C语言的时候就学习过强制类型转换以及运算级别的问题,所以,这里的int就没有存在的理由。错误2中的问题是怎么表达一个偶数的问题,归根结底还是“=”和“==”的区别问题。
转载请注明原文地址:https://kaotiyun.com/show/vWID777K
0

最新回复(0)