第二次实验

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;  
}  
原程序输出结果:

结果分析:dd和de分别对rdd和rde进行了引用,对rdd或rde的数据操作等同于对dd与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;  
}  
原程序输出结果:

结果分析:定义了一个一个对m和n进行运算的fun函数,程序调用fun函数对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(i=0;i<5;i++)  
    cout<<aa[i]<<" ";  
   cout<<endl;  
   return 0;  
}  
   int &fun(int a)  
{  
    return aa[a];  
}  

原程序输出结果:

修改后程序:

//sy2_3.cpp
#include<iostream>  
using namespace std;  
int &fun(int);  
int aa[5];  
int main()  
{  
   int a=5;  
   int i;  
   for(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];  
}  
修改后输出结果:

2.编程完成下列任务。

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

程序:

#include<iostream>  
using namespace std;  
int fc(int f);  
int main()  
{  
    int c,f;  
    cout<<"请输入华氏度:";  
    cin>>f;  
    c=fc(f);  
    cout<<endl<<"对应的摄氏度:"<<c<<endl;  
    return 0;  
}  
int fc(int f)  
{  
    return (f-32)*5/9;  
}  

结果:


(2)编写重载函数max1可分别求2个整数、3个整数、2个双精度数、3个双精度数的最大值(sy2_5.cpp)

程序:

#include<iostream>  
using namespace std;  
int max1(int,int);  
int max1(int,int,int);  
double max1(double,double);  
double max1(double,double,double);  
int main()  
{  
    double l,a,b,c;  
    int i;  
    cout<<"  1.2个整型数据"<<endl;  
    cout<<"  2.3个整型数据"<<endl;  
    cout<<"  3.2个双精度数据"<<endl;  
    cout<<"  4.3个双精度数据"<<endl;  
    cout<<"输入所需功能的编号:";  
    cin>>i;  
    cout<<"请输入要比较的数据:";  
    switch(i)  
    {  
    case 1:  
        cin>>a>>b;  
        l=max1(a,b);  
        break;  
    case 2:  
        cin>>a>>b>>c;  
        l=max1(a,b,c);  
        break;  
    case 3:  
        cin>>a>>b;  
        l=max1(a,b);  
        break;  
    case 4:  
        cin>>a>>b>>c;  
        l=max1(a,b,c);  
        break;  
    }  
    cout<<l<<endl;  
  
}  
int max1(int a,int b)  
{  
    return a>b?a:b;  
}  
int max1(int a,int b,int c)  
{  
    return (a>b?a:(b>c?b:c));  
}  
double max1(double a,double b)  
{  
    return a>b?a:b;  
}  
double max1(double a,double b,double c)  
{  
    return (a>b?a:(b>c?b:c));  
}  

结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值