改错题  
    给定程序MODI1.c中函数fun的功能:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
    例如,当s中的数为7654321时,t中的数为642。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    给定源程序如下:
#include <stdio.h> /************found************/
void fun (long  s, long t)
{  long  sl=10;
    s /= 10;
    *t = s % 10;
/************found************/
    while ( s < 0)
    {  s = s/100;
      *t = s%10*sl + *t;
      sl = sl * 10;
    }
} main()
{  long  s, t;
  printf('\nPlease enter s:'); scanf('%ld', &s);
  fun(s, &t);
  printf('The result is: %ld\n', t);
}
 
【正确答案】(1)void fun(long s,long*t) (2)while(s>0) 答案考生文件夹
【答案解析】(1)函数的形参类型应与实参类型相同,主函数中函数fun()的调用方式说明其参数应为指针类型,所以形参t应定义为long*t。 (2)while循环的功能:每循环一次,就从s中的数上取出一位进行运算,直到取完为止,所以循环条件为s>0。