问题
问答题
给定程序中函数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)。