问答题 使用VC6打开 下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
Max is 7
提示:max()函数实现找出两个数中的最大值,并作为函数值返回。
注意:错误的语句在//******error******的下面,修改该语句即可。
# include <iostream>
using namespace std;
//******error******
int max(int a,int b)
{
if(a<b)
{
int t=a;
a=b;
b=t;
}
return b;
}
int main ()
{
int m=-3;
int n=7;
//******error******
max (-3,n);
cout < < "Max is " < < m < < endl;
return 0;
}
【正确答案】
【答案解析】(1)int max(int &a,int &b)
(2)max(m,n);
答案考生文件夹 [解析] 函数参数传递形式有多种:将变量名作为实参和形参、传递变量的指针和传送引用方式,将变量名作为实参和形参方式,传递是单向的,在函数执行过程中形参的值发生变化不会传回实参,而指针和引用方式在函数执行过程中形参会影响实参。函数max返回最大值,而在主函数内并没有使用其返回值,而是输出m值,可知在max函数类已将最大值存放在m里,因此max函数采用的是传递引用方式。
(1)由审题分析可知max函数采用的是传送引用方式传递参数,因此第1个标识下应该为int max(int &a,int &b)。
(2)调用max时,传递引用时直接使用变量名即可,第2个标识下应改为“max(m,n)”。