请帮忙给出正确答案和分析,谢谢!
第1题
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<conio.h>
include <stdio.h>
int fun(int *x,int y)
{
int t;
/***************found***************/
t=x;x=y;
/***************found***************/
return(y);
}
main()
{int a=3,b=8;
clrscr();
printf("%d %d\n",a, b);
b=fun(&a,b);
printf("%d %d\n" ,a,b);
}
第2题
下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
【我提交的答案】:t=x;x=y;y=t;return(x);
【参考答案分析】:
(1)t=%x;$x=y;
(2)return(t);或returnt;
【考点分析】
本题考查:指针型变量的使用;通过return语句完成函数
值的返回。
【解题思路】
首先,定义变量t作为中间变量,然后进行数据交换,注意 参数x是指针变量,交换时应使用*x,最后确定返回值,根据 代码b=fun(8a,b)可以知道返回值将赋给变量b,而b中应存 放交换前* x中的值,所以函数应返回变量t。
我可以修改为t=x;x=y;y=t;
return(x);吗?这样也是正确的啊
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!