填空题 下列给定程序中,函数fun的功能是:将形参n中各位为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。
例如,从主函数输入一个整数27638496,则函数返回值为26846。
请在下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
unsigned long fun(unsigned long n)
{unsigned long x=0,s,i;int t;
s=n;
/********found********/
i= 1;
/********found********/
while( 2)
{t=s%10;
if(t%2==0)
{
/********found********/
x=x+t*i;i= 3;
}
s=s/10;
}
refurn X;
}
main()
{unsigned long n=-1;
while(n>99999999||n<0)
{printf("Please input(0<n<100000000):");
scanf("%ld",&n):}
printf("/nThe result is:%ld/n",fun(n));
}
【正确答案】
【答案解析】1 s>0 i*10 [考点]
本题关键字有:变量赋初值操作;while循环语句;已知某数的各个位数值如何表示该数。
[解析]
填空1:取出的偶数在新数中的位置由变量i确定,应赋初值1。
填空2:while语句的循环条件是s>0。
填空3:变量i用作各位数的权值,所以填入i*10。