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

admin2019-04-04  30

问题 给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
    例如,当s中的数为:7654321时,t中的数为:7531。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
#include
void fun (long s. long t)
{  long s1=10;
    *t= s% 10;
   while (s> 0)
   {  s= s/100;
      *t= s%10 * s1 + *t;
      s1= s1*100;
      }
}
main ()
{ long s,t;
   printf("\nPlease   enter   s:") f
scanf ("%1d",&S) ;
      printf ("The result is:  %ld\n",t) ;
}

选项

答案(1) void fun (long s,long *t) (2) s1=sl*10;

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

最新回复(0)