首页 > 试题广场 >

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正

[单选题]
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。该程序的功能是将形参n所指变量中,各位上为奇数的数去掉,剩余的数按原来从低位到高位的顺序组成一个新数。
unsigned long fun(unsigned long n)
{
    unsigned long x = 0; int t;
    while (n)
    {
        t = n % 10;
        /********** found **********/
        if (t % 2 == _______)
            /********** found **********/
            x = _____ + t;
        /********** found **********/
        n = _______;
     }
     return x;
}

  • 0    x*10  n/10
  • 1    x*10  n%10
  • 1    t*10  n/10
  • 0    t*10  n%10
推荐
答案:A
该程序的功能是将形参n所指变量中,各位上为奇数的数去掉,剩余的数按原来从低位到高位的顺序组成一个新数,并通过形参指针n传回所指变量。 例如,若输入一个数27638496,则新数为64862。
1,这里判断是否是偶数,所以判断%2是否为0
2,x为保存的偶数,每次扩大10倍加上个位数
3,数字n每次去掉个位数,继续循环
编辑于 2015-02-02 20:38:18 回复(3)
1: 0 2: x*10 3:n/10
发表于 2014-10-17 10:51:45 回复(0)
关键是这道题没有说明到底应该怎么生成新的数……
发表于 2016-12-28 10:45:29 回复(2)
unsigned long fun(unsigned long n)
{
    unsigned long x = 0; int t;
    while (n)
    {
        t = n % 10;
        if (t % 2 == 0)
                        x = x*10+ t;
        n = n/10;
    }
    return x;
}
int main()
{
    int m = fun(56723);
    printf("%d  ", m);
    return 0;
}
我调试了一下,最后结果为26,程序的大致走向是,
n=56723,while循环,t=3,t不是偶数,直接执行语句n=n/10,
得到此时的n值为5672,进while循环,t=2,t是偶数,
执行语句x=x*10+t,此时x=0*10+2=2,执行语句n=n/10,n=567,
while循环,t=7,t为奇数,直接执行n=n/10,n=56,while循环,
t=6,n为偶数,执行语句x=x*10+t=2*10+6=26,执行语句n=n/10,n=5,
while循环,t=5n为奇数,执行n=n/10,n=0,出循环,return x,x=26
发表于 2018-02-18 22:33:53 回复(1)
t=n%10//获取最后一位数 if(t%2==0)//判断最后一位数是否为偶数 x=x*10+t//保留当前的最后一位数 n=n/10,去除当前最后一位数
发表于 2017-09-01 15:08:29 回复(0)
比如12345,按A输出的就是42;
但是我理解的输出应该是24;
代码如下:/unsigned long fun(unsigned long n)
//{
//    unsigned long x = 0; int t;
//    int temp=1;
//    while (n)
//    {
//        t = n % 10;
//        /********** found **********/
//        if (t % 2 == 0){
//            /********** found **********/
//            //x = x*10 + t;
//            x+=t*temp;
//            temp*=10;
//        }
//        n = n/10;
//     }
//     return x;
发表于 2016-10-13 15:37:42 回复(1)
当while的判断条件:n不为0的时候会一直进入循环 中间变量t用于接收每一位上的数来进下面的if(判断奇偶)若为偶数则重新给个变量x来接受新的计算公式的值(因为是偶数进的判断,所以最后x的计算值只会出现偶数) 最后的n=n/10,是为了t能够去接收每一位数而做的提前准备!
发表于 2022-07-11 13:14:12 回复(0)
我感觉每一个答案都可以填进去,实现不同的功能
发表于 2015-06-09 17:04:01 回复(1)
ls正解
发表于 2014-10-17 18:18:16 回复(0)