填空题 下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
/* * * * * * * * * * found* * * * * * * * * * /
void fun(long s, long t)
{ longsl=10;
*t=s% 10;
while(s>0)
{s = s/100;
*t = s%10 * sl + *t;
/* * * * * * * * * * found* * * * * * * * * * /
sl=sl*100;
}
}
main( )
{ long s, t;
printf(" /nPlease enter s:"); scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld/n", t);
}
【正确答案】
【答案解析】void fun(long s, long *t) sl=s1*10 [解析] 本题考查:函数定义,指针型变量;数值n和其各个位如何表示。
(1)主函数中调用函数的参数为地址,因此函数fun的形式参数应为指针类型。
(2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加一位数,原数值需乘以10,即s1=s1*10;。