改错题

给定程序M0DI1.C中函数fun的功能是交换主 函数中两个变量的值。例如,若变量a中的值为8, b中的值为3。程序运行后a中的值为3, b中的值 为8。

请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构!

给定源程序如下。

【正确答案】

(1)void fun(int *x, int *y)

(2) t=*x; *x=*y; *y=t;

【答案解析】

(1)    本题考查的是指针变量作函数参数。一般 变量作参数时,不能改变实参的值,采用指针变量 作参数则能够改变实参的值。主函数中fun函数的 调用方式表明fun函数的参数应当为指针类型。

(2)    此处是一个变量交换操作错误,可知x、y 是指针类型,变量类型不同,因而x、y不能与t进 行值的交换。