1、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)用递归的方法编写
2、函数求 Fibonacci 级数,观察递归调用的过程。三、实验步骤1.(编程,习题 3-8)把华氏温度转换为摄氏温度。编写函数 float Convert(float TempFer),参数和返回值都为 float 类型,实现算法C=(F-32)*5/9,在 main()函数中实现输入、输出。程序名:lab3_1.cpp。2 程序及运行结果:(注意:定义的函数头是 float Convert(float TempFer))/lab3_1(习题 3-8)#include using namespace std;float Convert(float TempFer);void main()flo
3、at f;coutf;coutusing namespace std;int Max1(int a,int b)coutb?a:b;int Max1(int a,int b,int c) coutb ? (ac?a:c) : (bc?b:c);3double Max1(double a,double b) coutb?a:b; double Max1(double a,double b,double c) coutb ? (ac?a:c) : (bc?b:c);void main()int a,b,c,ii;double d,e,f,dd;coutab; ii=Max1(a,b);coutab
4、c; ii=Max1(a,b,c);coutde; dd=Max1(d,e);coutdef; dd=Max1(d,e,f);coutb) return a;else return b;int Max1(int a,int b,int c) if(ab)if(ac) return a;else return c;elseif(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.(编
5、程)调用系统函数 pow(x, y)计算 x 的 y 次幂。在 main()函数中提示输入两个整数 x、y,使用 cin 语句得到 x、y 的值,调用 pow(x, y)函数计算 x 的 y 次幂的结果,再显示出来。程序名:lab3_3.cpp。/*5重载函数 pow 的函数原型:long double pow(long double,int);float pow(float,int);double pow(double,int);*/ 程序及运行结果:(注意:不要编写函数 pow(),直接调用)/lab3_3.cpp#include #include /无此行也可以using namespa
6、ce std;void main()float x; int y;coutx;couty;cout2;fib(1)=fib(2)=1;使用 if 语句判断函数的出口,在程序中用 cout 语句输出提示信息。程序名: lab3_4.cpp。 (程序见步骤 5)6 程序的运行结果:(注意:运行步骤 5的程序,输入 6)5.(要求)用 Debug 调试的程序文件 lab3_4.cpp。使用“调试” 中的“ 逐语句”追踪到函数内部,观察函数的调用过程,参考程序如下:/lab3_4.cpp#include using namespace std;int fib(int n);int main()int
7、n,answer;coutn;cout“n“;answer=fib(n);coutanswer“ 是第 “n“ 个 Fibonacci 数。n“ ;return 0;int fib(int n)cout“计算 fib(“n“)“;if(n3)cout“返回 1!n“ ;return (1);7elsecout“调用 fib(“n-2“) 和 fib(“n-1“);n“ ;return (fib(n-2)+fib(n-1);6.(操作)调试步骤。调试操作步骤如下:(1) 选择菜单命令“调试 | 逐语句”,系统进入单步执行状态,程序开始运行,并出现一个 DOS 窗口,此时在源码中光标停在 main
8、()函数的入口处。(2) 把光标移到语句“answer=fib(n); ”前,并在该行单击鼠标右键,再单击“运行到光标处”,在程序运行的 DOS 窗口中按提示输入数字 6,光标停在语句“answer=fib(n);”前,观察一下 n 的值(观察方法见实验 2) 。(3) 单击“ 逐语句” ,程序进入 fib 函数,观察一下 n 的值。8(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) 把光标移到 main()中的“ ”前,单击“运行到光标处” 。得到运行结果。(9) 把光标移到 main()中的“ ”后,单击“运行到光标处” 。运行结束。(10)再试试“ 调试” 菜单栏中别的菜单项,熟悉调试的各种方法。