1、熟悉引用的概念,掌握引用的定义方法,学会引用在C++程序中的应用。
2、掌握函数的定义和调用方法。
3、练习重载函数的使用。
实验内容
1、调试下列程序,写出输出结果,并解释输出结果。
(1)实验程序:
#include<iostream>
运行结果:
运行结果分析:
首先,我们先定义一个双精度浮点型的对象dd和de,并给他们赋初始值3.9和1.3;之后又定义一个双精度浮点型的引用rdd和rde,并且将他们与dd和de相关联。这样的话无论是对dd、de、rdd和rde进行操作,都是对原来的数据单元内容进行操作,并没有改变;因此,第一列dd和de相加,rdd和rde相加的结果输出结果为5.2;第二列是rdd赋了一个初始值2.6,dd也是同样的,他们使用同一个地址。第三列是rde赋了一个初始值2.5,de也是同样的,他们使用同一个地址。
(2)实验程序:
#include<iostream>
运行结果:
程序结果分析 :
在这个程序中,首先在主函数中定义了a和b,并给他们分别赋初始值2和3;当程序调用函数void fun()时,实参初始化引用了m和n,故而在函数void fun()中,对于a和b的访问相当于对m和n的访问,函数void fun()中改变了main()函数中对象a和b的值,也就是说a=2*4=8;b=3*4=12;故a+b=20。
(3)实验程序:
#include<iostream>
错误结果:
正确运行程序:
#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];
}
运行结果:
运行结果分析:
在这个程序中,首先定义一个整数a,并给他赋初始值为5;先输入a的值为5,再利用for循环,根据条件(i=0;i<5;i++);通过每次的加1,进行计算,再利用数组aa[ ]输出从5开始的长度为5的数组:5、6、7、8、9。
2、程序完成下列任务:
(1)编写一个函数,用于将华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。
程序:
#include <iostream>
运行结果:
(2)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数和3个双精度数的最大值。
程序:
#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<<"请输入三个整数:";
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、重载函数时通过什么来区分?
答:区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
实验小结:
通过本次实验的操作,我熟悉了引用的概念并掌握了引用的定义方法,其次也学会引用在C++程序中的应用。同时还掌握函数的定义和调用方法以及练习重载函数的使用。在这个过程中,我们尝试着对程序进行了解读和分析,在此过程中收获了很多的知识和应用,也在其中找到了自己的对于C++的掌握还有许多的不足,在之后的学习中能有所提高。
分析与讨论
1、总结引用的概念及用途。
答:就是给对象取一个别名,使用该别名可以存取该对象。换句话说,是使新对象和原对象共用一个地址。
用途:用作函数参数和函数的返回值。
2、函数定义和调用方法。
答:函数定义:C++的函数分为:标准库函数和用户自定义函数。标准库函数由C++系统定义并提供给用户使用,可以看作对语言功能的扩充。用户根据特定任务编写的函数称为自定义函数。
调用方法:函数的使用是通过函数调用实现的。函数调用指定了被调用函数的名字和调用函数所需的信息(参数)。调用函数所需提供的实际参数,简称实参。不管函数定义是否有参数,都可以用两种形式调用:函数语句或函数表达式;如果函数调用作为一条语句,这是函数可以没有返回值;当函数调用出现在表达式中,这时就必须有一个返回值。
3、重载函数时通过什么来区分?
答:区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
实验小结:
本次实验后,我熟悉了引用的概念并掌握了引用的定义方法,其次也学会引用在C++程序中的应用。同时还掌握函数的定义和调用方法以及练习重载函数的使用。在这个过程中,我们尝试着对程序进行了解读和分析,在此过程中收获了很多的知识和应用,也在其中找到了自己的对于C++的掌握还有许多的不足,希望在之后的学习中能有所提高。