实验2 引用与函数

实验目的和要求
       1.熟悉引用的概念,掌握引用的定义方法,学会引用在C++程序中的应用
       2.掌握函数的定义和调用方法。
       3.练习重载函数的使用。

实验内容
       1.调试下列程序,写出输出结果,并解释输出结果。
(1)
  1. //sy2_1.cpp
  2. #include<iostream>
  3. using namespace std;
  4. int main( )
  5. {
  6. double dd = 3.9,de= 1.3;
  7. double &rdd=dd,&rde=de;
  8. cout<<rdd+rde<< ','<<dd+de<< endl;
  9. rdd= 2.6;
  10. cout<<rdd<< ','<<dd<< endl;
  11. de= 2.5;
  12. cout<<rde<< ','<<de<< endl;
  13. return 0 ;
  14. }
结果如下图:


结果分析如下:

      首先,程序定义了两个对象dd和de并赋值3.9和1.3,然后又定义了两个引用rdd和rde,这样,无论对rdd和rde进行操作时,都是对同一地址的内容进行修改。所以,rdd+rde=dd+de=5.2;当rdd=2.6时,rdd=dd=2.6;当de=2.5时,rde=de=2.5。


(2) 
  1. //sy2_2.cpp
  2. #include<iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. void fun(int,int&);
  7. int a,b;
  8. fun( 2,a);
  9. fun( 3,b);
  10. cout<< "a+b="<<a+b<< endl;
  11. return 0;
  12. }
  13. void fun(int m,int &n)
  14. {
  15. n=m* 4;
  16. }
结果如下图:


分析结果如下:



(3)
  1. #include<iostream>
  2. using namespace std;
  3. int &fun(int);
  4. int aa[ 5];
  5. int main()
  6. {
  7. int a= 5;
  8. for( int i( 0);i< 5;i++)
  9. fun(i)=a+i;
  10. for( int i= 0;i< 5;i++)
  11. cout<<aa[i]<< " ";
  12. cout<< endl;
  13. return 0;
  14. }
  15. int &fun(int a)
  16. {
  17. return aa[a];
  18. }

结果如下图:

分析结果如下:



2.编程完成下列任务

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

编写程序如下:

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. double F;
  6. cout<< "F=";
  7. cin>>F;
  8. double C=(F -32)* 5/ 9;
  9. cout<< "C="<<C<< endl;
  10. return 0;
  11. }

结果如下图:


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

编写程序如下:

  1. #include<iostream>
  2. using namespace std;
  3. int max(int a,int b)
  4. {
  5. if(a>b)
  6. return a;
  7. else
  8. return b;
  9. }
  10. int max(int a,int b,int c)
  11. {
  12. return max(a,(max(b,c)));
  13. }
  14. double max(double q,double w)
  15. {
  16. if(q>w)
  17. return q;
  18. else
  19. return w;
  20. }
  21. double max(double q,double w,double e)
  22. {
  23. return max(q,(max(w,e)));
  24. }
  25. int main()
  26. {
  27. int a,b,c;
  28. cout<< "输入两个整数:";
  29. cin>>a>>b;
  30. cout<< "2个整数中最大整数是:"<<max(a,b)<< endl;
  31. cout<< "输入三个整数:";
  32. cin>>a>>b>>c;
  33. cout<< "3个整数中最大整数是:"<<max(a,b,c)<< endl;
  34. double q,w,e;
  35. cout<< "输入两个双精度数:";
  36. cin>>q>>w;
  37. cout<< "2个双精度中最大双精度数是:"<<max(q,w)<< endl;
  38. cout<< "输入三个双精度数:";
  39. cin>>q>>w>>e;
  40. cout<< "3个双精度中最大双精度数是:"<< max(q,w,e)<< endl;
  41. return 0;
  42. }
结果如下图:






分析与讨论

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

  答:

     概念:给对象取一个别名,使用该别名可以存取该对象;

     用途:用作函数参数和函数的返回值。

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

    答:

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

       方法:函数调用指定了被调用函数的名字和调用函数所需的信息,调用函数所需提供的实际参数,简称实参。

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

    答:

四、实验总结

     在本次实验中,要求我们掌握函数的定义和调用方法,自己编写程序,并解释别人的程序运行的结果。其实很简单,只要搞清楚每一句程序的含义,知道他们的作用以及实现的功能就能知道。但是,说起来简单做起来难,有一些感觉自己看都看不懂,更别说解释了,比如fun,百度了才知道是调用主函数的意思,但是我还是不会解释程序运行结果,只好等之后老师讲解了。在编写程序时,我也遇到了很多困难,之前的c语言底子不足,编写时知识点很匮乏,还好我百度了一些,又问了同学,反复的实验和校正才将两个程序写出来,感觉成就感满满的,以后要更加努力学习才是。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值