问答题
下列给定程序中,函数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;
}
return 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)1 (2)s>0 (3)i*10
【答案解析】解析:填空1:变量i用来控制被取出的偶数在新数中的位置,应赋初值1。 填空2:while语句的循环条件是s>0。 填空3:变量i用来标识个位、百位和千位等。