填空题
1. 下列给定程序中,函数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=______;
/*********found*********/
while(______) { t=s% 10;
if(t% 2==0){
/*********found*********/
x=x+t *i;i=______;
}
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)1 (2)s>0 (3)i*10
【答案解析】[考点]
本题考查:变量赋初值操作;while循环语句;已知数n的各个位数值如何表示数n。
填空1:变量i用来控制被取出的偶数在新数中的位置,应赋初值1。
填空2:while语句的循环条件是s>0。
填空3:变量i用来标识个位、百位和千位等。