1、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。- #include <stdio.h>
- // ****found****
- void proc(long s,long *t)
- {
- long sl=10;
- s/=10;
- *t=s%10;
- // ****found****
- while (s>0)
- {
- s=s/100;
- *t=s%10*sl+*t;
- sl=sl*10;
- }
- }
- int main()
- {
- long s,t;
- printf("Please enter s:");
- scanf("%ld",&s);
- proc(s,&t);
- printf("The result is:%ld\n",t);
- return 0;
- }
复制代码  - (1)错误:void proc(long s,long t)
- 正确:void proc(long s,long *t)
- (2)错误:while (s<0)
- 正确:while (s>0)
- 【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。
- 因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;
- 要从低位开始取出长整型变量s中偶数位上的数,每次变量S要除以100,
- 然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。
复制代码 参考答案及解析2、给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
[code]#include // ****found**** void proc(double m[]) { int i; for (i=0; i |