给定程序MODll.C中函数fun的功能是:从低位开始取出长整型变量S中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当S中的数为:7654321时,t中的数为:7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不

admin2014-06-20  27

问题 给定程序MODll.C中函数fun的功能是:从低位开始取出长整型变量S中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当S中的数为:7654321时,t中的数为:7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
/**********found**********/
voidfun(10ngS,longt)
{longsl=10;
*t=S%10;
while(s>0)
{S=s/100;
*t=s%10*s1+*t:
/**********found**********/
s1=s1*100;
}
}
main(    )
{longS,t;
printf("knPleaseenters:");scanf("%ld",&s);
fun(s,&t);
printf(”Theresultis:%ldqa",t);
}

选项

答案(1)V0idfun(10ngs,10ng*t) (2)sl=sl*10;

解析 本题中函数的功能是依次取出奇数位上的数。该题的解题思路主要是找出数字中的奇数位上的数。
(1)根据“*t=s%10”判断,t应该是个指针变量,所以“voidfun(10ngs,longt)”语句中的t只需改为“voidfun(10ngs,long*t)”。
(2)分析函数内的循环过程可知sl的用途是每次将*t扩大,记录每次得到的奇数位的数字的权值,s1的权值每次增加1位,因此第二个标识下应该是“s1=sl*10;”。
转载请注明原文地址:https://kaotiyun.com/show/PCID777K
0

相关试题推荐
最新回复(0)