1、C+语言程序设计实验答案函数的应用C+语言程序设计实验答案-函数的应用实验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(习题
2、3-13)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。三、实验步骤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 using namespace std;float Convert(float TempFer);void main()
3、 float f; coutf; 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个函数)/lab3_2.cpp#include using namespace std;int Max1(int a,int b) cou
4、t调用函数: int Max1(int a,int b)b?a:b;int Max1(int a,int b,int c) cout调用函数: int Max1(int a,int b,int c)b ? (ac?a:c) : (bc?b:c);double Max1(double a,double b) cout调用函数: double Max1(double a,double b)b?a:b; double Max1(double a,double b,double c) cout调用函数: double Max1(double a,double b,double c)b ? (ac?a:
5、c) : (bc?b:c);void main() int a,b,c,ii; double d,e,f,dd; coutab; ii=Max1(a,b); couta和b的最大数是:iiendl; coutabc; ii=Max1(a,b,c); couta,b和c的最大数是:iiendl; coutde; dd=Max1(d,e); coutd和e的最大数是:ddendl; coutdef; dd=Max1(d,e,f); coutd,e和f的最大数是:ddb) return a; else return b;int Max1(int a,int b,int c) if(ab) if(ac
6、) return a; else return c; else if(bc) return b; else return c;方法3:int Max1(int a,int b) if(ba) a=b; return a;int Max1(int a,int b,int c) if(ba) a=b; if(ca) 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的函数原型:lon
7、g double pow(long double,int);float pow(float,int);double pow(double,int);*/ 程序及运行结果:(注意:不要编写函数pow(),直接调用)/lab3_3.cpp#include #include /无此行也可以using namespace std;void main() float x; int y; coutx; couty; coutx的y次幂的结果为 pow(x,y)2;fib(1)=fib(2)=1;使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:lab3_4.cpp。(程序见步骤5)
8、程序的运行结果:(注意:运行步骤5的程序,输入6)5.(要求)用Debug调试的程序文件lab3_4.cpp。使用“调试”中的“逐语句”追踪到函数内部,观察函数的调用过程,参考程序如下:/lab3_4.cpp#include using namespace std;int fib(int n);int main() int n,answer; coutn; coutn; answer=fib(n); coutanswer 是第 n 个 Fibonacci 数。n; return 0;int fib(int n) cout计算 fib(n).; if(n3) cout返回 1!n; return
9、 (1); else cout调用 fib(n-2) 和 fib(n-1);n; return (fib(n-2)+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)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。把光标移到语句“return (fib(n-2)+fib(n-1);”前,单击Run to Cursor。再单击Step Into。(7)把光标移到语句“return (1)”前,单击“运行到光标处”。再单击“逐语句”。(8)