问答题 给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。 例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include /**********found**********/ void fun ( int a, b ) { int t; /**********found**********/ t = b; b = a ; a = t; } main ( ) { int a, b; printf ( "Enter a , b : "); scanf ( "%d,%d", &a, &b ); fun ( &a , &b ) ; printf (" a = %d b = %d/n ", a, b ); }
【正确答案】第一处:函数形参定义不正确,在定义第2个形参时,也应加上int。由于通过该函数实现两数交换,在C语言中,必须交换地址中的值,所以应定义为int *a,int *b。 第二处:要交换地址中的值,不能交换地址,必须指定地址中的值,因此应改为t=*b;*b=*a;*a=t;。
【答案解析】