一、实验目的和要求
1、熟悉引用的概念,掌握引用的定义方法,学会引用在c++程序中的应用。
2、掌握函数的定义和调用方法。
3、练习重载函数的使用。
二、实验内容
1、调试下列程序,写出输出结果,并解释输出结果。
(1)程序:
#include<iostream>
using namespace std;
int main()
{
double dd=3.9,de=1.3;
double &rdd=dd,&rde=de;
cout<<rdd+rde<<','<<dd+de<<endl;
rdd=2.6;
cout<<rdd<<','<<dd<<endl;
de=2.5;
cout<<rde<<','<<de<<endl;
return 0;
}
运行结果图:
![](https://i-blog.csdnimg.cn/blog_migrate/2d10450d2d6772a2d5da1c5e5cd07ead.png)
#include<iostream>
using namespace std;
int main()
{
void fun(int,int&);
int a,b;
fun(2,a);
fun(3,b);
cout<<"a+b="<<a+b<<endl;
return 0;
}
void fun(int m,int &n)
{
n=m*4;
}
#include<iostream>
using namespace std;
int &fun(int);
int aa[5];
int main()
{
int a=5;
for(int i(0);i<5;i++)
fun(i)=a+i;
for(int i=0;i<5;i++)
cout<<aa[i]<<" ";
cout<<endl;
return 0;
}
int &fun(int a)
{
return aa[a];
}
2、编程完成下列任务
(1)编写一个函数,用于将华氏温度转换为摄氏温度,转换公式为:c=(f-32)*5/9.
程序如下:
#include<iostream>
using namespace std;
int main()
{
double F=0;
cout<<"请输入需转换的华氏温度F:"<<endl;
cin>>F;
double C=0;
C=(F-32)*5/9;
cout<<"摄氏温度C为:"<<C<<endl;
}
运行结果图:
(2)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数和3个双精度数的最大值。
程序如下:
//sy2-5.cpp
#include<iostream>
using namespace std;
int Max1(int a,int b)
{
if(a>b)
return a;
else
return b;
}
double Max1(double x,double y)
{
if(x>y)
return x;
else
return y;
}
int Max1(int a,int b,int c)
{
return Max1(a,Max1(b,c));
}
double Max1(double x,double y,double z)
{
return Max1(x,Max1(y,z));
}
int main()
{
int a,b,c;
cout<<"请输入两个整数:";
cin>>a>>b;
cout<<"最大值为:"<<Max1(a,b)<<endl;
cout<<"请输入3个整数:";
cin>>a>>b>>c;
cout<<"最大值为:"<<Max1(a,b,c)<<endl;
double x,y,z;
cout<<"请输入2个双精度数:";
cin>>x>>y;
cout<<"最大值为:"<<Max1(x,y)<<endl;
cout<<"请输入3个双精度数:";
cin>>x>>y>>z;
cout<<"最大值为:"<<Max1(x,y,z)<<endl;
return 0;
}
运行结果图如下:
三、分析与讨论
1、总结引用的概念及用途
答:引用的概念:给对象取一个别名,使用该别名可以存取该对象。换句话说,是使新对象和原对象共用一个地址。
用途:用作函数参数和函数的返回值。
2、函数的定义和调用方法
答:定义:C++的函数分为:标准库函数和用户自定义函数。标准库函数由C++系统定义并提供给用户使用,可以看作对语言功能的扩充。用户根据特定任务编写的函数称为自定义函数。
调用方法:函数的使用是通过函数调用实现的。函数调用指定了被调用函数的名字和调用函数所需的信息(参数)。调用函数所需提供的实际参数,简称实参。不管函数定义是否有参数,都可以用两种形式调用:函数语句或函数表达式;如果函数调用作为一条语句,这是函数可以没有返回值;当函数调用出现在表达式中,这时就必须有一个返回值。
3、重载函数时通用什么来区分
答:区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
四、实验心得
本次实验主要是学习引用与函数的调用,以及对函数的概念有了更进一步的了解,在学习引用和调用的过程中可以将函数将其联系在一起使用,增加很多想象力。引用即是一个变量的不同昵称,使用别称的其中一个对变量进行改变时另外一个也同时改变,通过本次实验我也学会了自己编写类似程序,为以后的学习提供进一步基础。