问题
问答题
下列给定程序中,函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(int*x,int Y)
int f;
/*******found********/
t=x;x=y;
/********found********/
return(y);
void main()
int a=3,b=8;
system("CLS");
printf("%d%d\n",a,b);
b=fun(&a,b);
printf("%d%d\n",a,b);
答案
参考答案:t=X;*X=y; (2)refum(t)或return t;
解析:
本题关键字有:指针型变量;return语句。
[微分析]
(1)用变量t作为中间变量进行数据交换,由于x是指针变量,所以应使用*x。
(2)由b=fun(&a,b)可知变量b存储函数返回值,而b中应存放交换前a中的值,所以返回值为t。