A-A+

下列给定程序中 函数fun()的功能是:将长整型数中每一位上为偶数的数依次取出 构成一个新数

2022-08-05 20:42:01 问答库 阅读 172 次

问题详情

下列给定程序中,函数fun()的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main,~数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
void fun(long s,long *t)
/**********************************/
{ int d;
long s1=l;
*t=0;
while(s>0)
{ d=s%10;
/**********************************/
if(d%2=0)
{*t=d*sl+*t;
sl*=10
}
/**********************************/
s=10;
}
}
main ()
{ long s,t;
clrscr();
printf("nPlease enter s: "); scanf
("%ld",&s);
fun(s,&t);
printf("The result is :%ldn",t);
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误:int d; 正确long d;(2)错误:if(d%2=0) 正确:if(d%2==0)(3)错误:s\=10; 正确:s/=10
(1)错误:int d; 正确long d;(2)错误:if(d%2=0) 正确:if(d%2==0)(3)错误:s\=10; 正确:s/=10 解析:其实,不论取出偶数还是奇数,思路应该是一样的。我们在刚开始学习C语言的时候就学习过强制类型转换以及运算级别的问题,所以,这里的int就没有存在的理由。错误2中的问题是怎么表达一个偶数的问题,归根结底还是“=”和“==”的区别问题。

考点:偶数,函数