实验2函数的定义与使用专业:计算机科学与技术班级:10计本1班学号:姓名:实验地点:B102实验时间:2011-9-20指导教师:李佐勇一、实验目的1.学会将一段功能相对独立的程序写成一个函数;2.掌握函数的声明、定义与使用;3.理解函数实参与形参的对应关系以及参数传递的方式;4.理解C++函数重载,掌握函数的嵌套调用和递归调用的方法;5.学会C++系统函数的调用二、实验环境一台PC机,WindowsXP操作系统,VisualC++6.0开发环境。三、实验内容1.lab2_1.cpp:写一个判断闰年的函数,在主函数中输入一个年份,输出是否是闰年的信息。2.lab2_2.cpp:实现第三章课后习题3-13的功能,并结合单步跟踪法进行程序的调试。3.lab2_3.cpp:编写3个名为max的重载函数,分别实现求两个整数、三个整数、两个双精度型数最大值的功能。4.lab6_4.cpp:计算如下公式,并输出结果:其中r、s的值由键盘输入。sin(x)的值直接调用系统函数四、实验记录1.#includeiostreamusingnamespacestd;intmain(){intn;cout输入一个年份:;cinn;if(n%4==0&&n%100!=0||n%400==0)coutn为闰年endl;elsecoutn不是闰年endl;return0;}222222r)sin(21r)(sin)(sinssrssrk当当2.#includeiostreamusingnamespacestd;intFib(intn){intF;if(n==1||n==2)F=1;elseF=Fib(n-1)+Fib(n-2);returnF;}intmain(){intn;cout输入n的值(n2):;cinn;Fib(n);coutF(n)=Fib(n)endl;return0;}3.#includeiostreamusingnamespacestd;intmax(intx,inty){return(xy?x:y);}intmax(intx,inty,intz){intt=x;if(yt)t=y;if(zt)t=z;returnt;}doublemax(doublex,doubley){return(xy?x:y);}intmain(){intx,y;coutentertwointnumber:;cinxy;coutThemaxismax(x,y)endl;inta,b,c;coutenterthreeintnumber:;cinabc;coutThemaxismax(a,b,c)endl;doubles,r;coutentertwodoublenumber:;cinsr;coutThemaxismax(s,r)endl;return0;}4.#includeiostream#includecmathusingnamespacestd;intmain(){doubles,r,k;coutentersandr:;cinrs;if(r*r=s*s)k=sqrt(sin(r)*sin(r)+sin(s)*sin(s));elsek=(sin(r*s))/2;coutk=kendl;return0;}五、思考题C++如何实现函数重载的,即C++编译系统如何区分不同的重载函数?答:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数最佳匹配,自动确定调用哪个函数六、实验小结答:学会了重载函数的用法,方便使用,使编程更简单。