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

admin2021-06-15  29

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

选项

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

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

最新回复(0)