下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中偶数位上的数 依次构成一个
问题详情
下列给定程序中函数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: %ldn ",t);
}请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:(1)错误:void fun(long slong t) 正确:void fun(long slong *t)(2) 错误:while(s<0) 正确:while(s>0)
(1)错误: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)。