实验2 引用与函数

实验目的和要求

1.熟悉引用的概念,掌握引用的定义方法,学会引用在c++程序中的应用

2.掌握函数的定义和调用方法

3.练习重载函数的使用

实验内容

1.调试下列程序,写出输出结果,并解释输出结果

(1)

//sy2_1.cpp
#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;
}

运行结果


输出结果解释

首先定义double类型的对象分别为dd和de,并分别给他们赋予初始值3.9和1.3,然后又定义double类型的引用rdd与dd的关系,引用rde和de的关系。因此5.2分别是rdd和rde相加、dd和de相加后的结果;2.6分别是对rdd赋值后rdd和dd所指向的值;2.5也分别是de赋值后rde和de所指向的值。

(2)

//sy2_2.cpp
#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;
}

输出结果


输出结果解释

在函数fun()中定义了n和m的关系,当程序中调用函数fun()时,实参a,b分别初始化引用m和n。程序中a=2*4=8;b=3*4=12,所以输出结果为20。

(3)

//sy2_3.cpp
#include<iostream>
using namespace std;
int &fun(int);
int aa[5];
int main()
{
int a=5;
int i;
for(int i(0);i<5;i++)
    fun(i)=a+i;
for(i=0;i<5;i++)
cout<<aa[i]<<" ";
cout<<endl;
return 0;
}
int &fun(int a)
{
    return aa[a];
}

运行结果


输出结果解释

定义一个长度为5的整型数组aa[],定义一个int 类型a,并给它赋予初值5.调用的函数使得输出的数组结果为aa[]:5 6 7 8。

2.编程完成下列任务

(1)编写一个函数,用于将华氏温度转换为摄氏温度,公式为:C=(F-32)*5/9。(sy2_4.cpp)

//sy2_3.cpp
#include<iostream>
using namespace std;
int main()
{
 double F;
 double C;
cin>>F;
   C=(F-32)*5/9;
   cout<<"摄氏温度C="<<C<<endl;
   cout<<"\n"<<endl;
return 0;
}

运行结果


(2)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数和3个双精度数的最大数。

//sy2_3.cpp
#include<iostream>
using namespace std;
int  max1(int a,int b)
{

 if(a>b)
    return a;
 else
  return b;
}
int max1(int a,int b,int c)
{

   return max1(a,max1(b,c));

}
double max1(double x,double y)
{
    if(x>y)
      return x;
 else
      return y;
}
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<<"请输入三个整数:";
    cin>>a>>b>>c;
    cout<<"最大值="<<max1(a,b,c)<<endl;
    double x,y,z;
    cout<<"请输入两个双精度数:";
    cin>>x>>y;
    cout<<"最大值="<<max1(x,y)<<endl;
    cout<<"请输入三个双精度数:";
    cin>>x>>y>>z;
    cout<<"最大值="<<max1(x,y,z)<<endl;
    return 0;
}

输出结果


分析与讨论

1.总结引用的概念及用途

引用的概念:就是给对象取一个别名,使用该别名可以存取该对象。换句话说,是使新对象和原对象共用一个地址。

引用的用途:引用的主要用途是用作函数参数和函数的返回值。

2.函数的定义和调用方法

函数的定义:C++有两种函数:标准库函数和用户自定义的函数。标准库函数由C++系统定义并提供给用户使用,可以看做对语言功能的扩充。用户根据特定任务编写的函数称为自定义函数。函数的使用是通过函数的调用实现的。

函数的调用方法:

函数使用时通过函数调用实现。函数调用指定了被调用函数的名字和调用函数所需的信息(参数)。调用函数所提供的实际参数。函数调用的一般形式为:函数名(<实参数>),其中<实参数>中的各参数用逗号分隔,实参数可以是常量、变量或表达式,与被调用函数形参的个数和类型必须相符。

3.重载函数时通过什么来区别?

答:编译系统将根据函数参数的类型和个数来判断使用哪一个函数。

实验总结

1.本章学习的内容是函数的定义和调用,以及函数调用的方法,所以我们必须在理论知识的

基础上进行实际操作练习。

2.在学习和实践过程中可能会遇到很多问题,我们需要仔细分析程序所存在的问题。

3.勤于实践,积累经验,改正错误,这是我们做实验所必须牢记的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值