问题 问答题

给定程序中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为642。
请改正程序中的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

[试题源程序]


#include<stdio.h>
/************found***********/
void fun(long s, long t)

long s1=10;
s/=10;
*t=s% 10;
/************found************/
while(s<0)

s=s/100;
*t=s% 10*s1+*t;
s1=s1 *10;


msin()

long s, t;
printf("\nPlease enter s:");
scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);

答案

参考答案:

 (A)错误:voidfun(long s, longt)

正确:voidfun(long s, long *t)

(B)错误:while(s<0)

正确:while(s>0)

解析:

错误1:在函数体fun中,t是一个指针型变量,定义形参时也应定义指针。

错误2:从题目可知,此处条件应该是s>0,故这里应为:while(s>0)。

单项选择题
填空题