下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为7654321时,t中的数为642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> #include <conio.h> /*************found**************/void fun(long s,long t){ long s1=10; s/=10; *t=s%10; /*************found**************/while(s<0) { s=s/100; *t=s%10*s1+*t; s1=s1*10; } } main() { long s, t;clrscr();printf("\nPlease enter s: "); scanf("%ld",&s);fun(s,&t);printf("The result is: %ld\n ",t); }
参考答案:错误:void fun(long s,long t) 正确:void fun(long s,long *t)
解析:(2) 错误:while(s<0) 正确:while(s>0) 本题考查函数调用方式和while循环语句中条件限制的方法。主函数中fun()的调用方式说明fun()函数的参数应当为指针类型,所以void fun(long s,long t)正确的写法应该是void fun(long s,long *t)。