實驗二 引用與函式
實驗目的和要求
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;
}
輸出結果如下:本函式採用賦值轉換的方式實現最終結果的輸出。
(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;
}
輸出結果如下:程式採用呼叫函式的方式計算a+b的值
(3)//sy2-3.cpp
#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];
}
輸出結果如下:本程式採用呼叫函式fun和引用陣列的方式,計算長度為5的陣列的值並實現最終輸出結果。
2.編輯完成下列任務。
(1)編寫一個函式,用於將華氏溫度轉換為攝氏溫度,轉換公式為:C=(F-32)*5/9。
根據題意,所寫程式如下:
//sy2-4.cpp
#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;
return 0;
}
輸出結果如下:
(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;
}