给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如。输入一个整数:27638496,函数返回值为:64862。 请在程序的下划线处填入正确的内容并把下划线

admin2013-03-29  50

问题 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。
    例如。输入一个整数:27638496,函数返回值为:64862。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKI.C中。
    不得增行或删行,也不得更改程序的结构!
#include  
unsigned long fun(unsigned long n)
{ unsigned long x=0;int t;
  while(n)
  {  t=n%10;
/************found************/
    if(t%2== 【1】)
/************found************/
    x= 【2】+t;
/************found************/
    n= 【3】;
  }
  return x;
}
main()
{  unsigned long n=-1 ;
while(n>99999999|| n<0)
{ printf("Please input(0100000000):");scanf("%id",&n);}
printf("\nThe result is:%Id\n",fun(n));
}

选项

答案(1)0 (2)10*x (3)n/10

解析 第一空:“if(t%2==【1】)"是判断t是否是偶数,t是偶数的时候t%2等于0,故第一空处应填“0"。
    第二空:假设第一次得到的偶数是t=2,那么x=2第二次得到的偶数是t=4,那么x=2*10+4;第三次得到的t=6,那么x=24*10+6。由此可知,x每次是在前面一次的基础上乘以l0然后加上t,故第二处应填“10*x"。
    第三空:在while循环内逐个判断n的每一位,n%lO得到个位数,n/10之后n缩小10倍,下次n%10得到十位数,依此类推可求得n的每一位数字,故第三空处应将n缩小10倍,准备下次求整除10的余数,即第三空处应为“n/10"。
转载请注明原文地址:https://kaotiyun.com/show/dXJp777K
0

最新回复(0)