C++语言程序设计实验答案_函数的应用_第1页
C++语言程序设计实验答案_函数的应用_第2页
C++语言程序设计实验答案_函数的应用_第3页
C++语言程序设计实验答案_函数的应用_第4页
C++语言程序设计实验答案_函数的应用_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验03函数的应用(2学时)(第3章 函数)一、实验目的(1) 掌握函数的定义和调用方法。(2) 练习重载函数的使用。(3) 练习使用系统函数。(4) 学习使用Visual Studio 2010的调试功能,使用“逐语句”追踪到函数内部。二、实验任务3_1(习题3-8)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。3_2 编写重载函数Max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。3_3 使用系统函数pow(x, y)计算xy的值,注意包含头文件cmath。3_4(习题3-13)用递归的方法编写函数求Fibonacci级数,观察递归调用的

2、过程。三、实验步骤1.(编程,习题3-8)把华氏温度转换为摄氏温度。编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。 程序及运行结果:(注意:定义的函数头是float Convert(float TempFer))/lab3_1(习题3-8)#include <iostream>using namespace std;float Convert(float TempFer);void main()float f;cout<<

3、;"输入一个华氏温度值:"cin>>f;cout<<"华氏温度"<<f<<"转换为摄氏温度的值是"<<Convert(f)<<endl;float Convert(float TempFer)return (TempFer-32)*5/9;2.(编程)编写重载函数,求2或3个数中的最大数。编写4个同名函数Max1,分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。 程序及运

4、行结果:(注意:分别测试4个函数)/lab3_2.cpp#include <iostream>using namespace std;int Max1(int a,int b)cout<<"调用函数: int Max1(int a,int b)"<<endl;return a>b?a:b;int Max1(int a,int b,int c) cout<<"调用函数: int Max1(int a,int b,int c)"<<endl;return a>b ? (a>c?a:

5、c) : (b>c?b:c);double Max1(double a,double b) cout<<"调用函数: double Max1(double a,double b)"<<endl;return a>b?a:b; double Max1(double a,double b,double c) cout<<"调用函数: double Max1(double a,double b,double c)"<<endl;return a>b ? (a>c?a:c) : (b>

6、c?b:c);void main()int a,b,c,ii;double d,e,f,dd;cout<<"输入2个整数:"cin>>a>>b; ii=Max1(a,b);cout<<a<<"和"<<b<<"的最大数是:"<<ii<<endl;cout<<"n输入3个整数:"cin>>a>>b>>c; ii=Max1(a,b,c);cout<<a&l

7、t;<","<<b<<"和"<<c<<"的最大数是:"<<ii<<endl;cout<<"n输入2个双精度数:"cin>>d>>e; dd=Max1(d,e);cout<<d<<"和"<<e<<"的最大数是:"<<dd<<endl;cout<<"n输入3个双精度数:&qu

8、ot;cin>>d>>e>>f; dd=Max1(d,e,f);cout<<d<<","<<e<<"和"<<f<<"的最大数是:"<<dd<<endl;方法2:int Max1(int a,int b)if(a>b) return a;else return b;int Max1(int a,int b,int c) if(a>b)if(a>c) return a;else return

9、 c;elseif(b>c) return b;else return c;方法3:int Max1(int a,int b)if(b>a) a=b;return a;int Max1(int a,int b,int c) if(b>a) a=b;if(c>a) a=c;return a;3.(编程)调用系统函数pow(x, y)计算x的y次幂。在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用pow(x, y)函数计算x的y次幂的结果,再显示出来。程序名:lab3_3.cpp。/*重载函数pow的函数原型:long double pow(l

10、ong double,int);float pow(float,int);double pow(double,int);*/ 程序及运行结果:(注意:不要编写函数pow(),直接调用)/lab3_3.cpp#include <iostream>#include <cmath>/无此行也可以using namespace std;void main()float x; int y;cout<<"输入基底的值:"cin>>x;cout<<"输入幂的值:"cin>>y;cout<&l

11、t;x<<"的"<<y<<"次幂的结果为 "<<pow(x,y)<<endl;4.(验证,习题3-13)编写递归函数求Fibonacci级数。编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1;使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:lab3_4.cpp。(程序见步骤5) 程序的运行结果:(注意:运行步骤5的程

12、序,输入6)5.(要求)用Debug调试的程序文件lab3_4.cpp。使用“调试”中的“逐语句”追踪到函数内部,观察函数的调用过程,参考程序如下:/lab3_4.cpp#include <iostream>using namespace std;int fib(int n);int main()int n,answer;cout<<"输入一个正整数:"cin>>n;cout<<"n"answer=fib(n);cout<<answer<<" 是第 "<&l

13、t;n<<" 个 Fibonacci 数。n"return 0;int fib(int n)cout<<"计算 fib("<<n<<")."if(n<3)cout<<"返回 1!n"return (1);elsecout<<"调用 fib("<<n-2<<") 和 fib("<<n-1<<");n"return (fib(n-2)+

14、fib(n-1);6.(操作)调试步骤。调试操作步骤如下:(1) 选择菜单命令“调试 | 逐语句”,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时在源码中光标停在main()函数的入口处。(2) 把光标移到语句“answer=fib(n);”前,并在该行单击鼠标右键,再单击“运行到光标处”,在程序运行的DOS窗口中按提示输入数字6,光标停在语句“answer=fib(n);”前,观察一下n的值(观察方法见实验2)。(3) 单击“逐语句”,程序进入fib函数,观察一下n的值。(4) 把光标移到语句“return (fib(n-2)+fib(n-1);”前,单击“运行到光标处”。(5) 再单击“逐语句”,程序递归调用fib函数,再进入fib函数,观察一下n的值。(6) 继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论