《C++实验6及参考答案.doc》由会员分享,可在线阅读,更多相关《C++实验6及参考答案.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+实验6及参考答案C+实验6及参考答案上海电力学院实验报告课程名称 高级程序设计c+(1) 实验项目 实验6 函数(2) 姓名 学号 班级 专业 信息安全 同组人姓名 无 指导教师姓名 田秀霞 实验日期 2015年12月2日 一、实验目的1、掌握重载函数的使用,函数的默认参数。2. 掌握函数递归。二、实验内容和步骤编程序并上机调试运行。1、编写重载函数Max1可以分
2、别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值l 程序源代码(注意添加注释)l #includel using namespace std;ll int Max1(int x,int y);l int Max1(int x,int y,int z);l double Max1(double x,double y);l double Max1(double x,double y,double z);ll int main()l l int x=2,y=3,z=4;l double m=3.2,n=1.4,p=3.9;l coutx,y中最大的值是:Max1(x,y)endl;l c
3、outx,y,z中最大的值是:Max1(x,y,z)endl;l coutm,n中最大的值是:Max1(m,n)endl;l coutm,n,p中最大的值是:Max1(m,n,p)=y?x:y;l l int Max1(int x,int y,int z)l l int max;l max=xy?x:y;l max=zmax?z:max;l return max;l ll double Max1(double x,double y)l l return x=y?x:y;l l double Max1(double x,double y,double z)l l double max;l max
4、=xy?x:y;l max=zmax?z:max;l return max;l l 运行结果(直接截取结果图)2、编写函数,求x的y次方, 如果用户没有给出y的值,则默认输出x.(提示: 用默认参数值实现). 运行调试程序,熟悉调试窗口,熟悉单步调试和断点调试的过程.l 程序源代码(注意添加注释)l #includel using namespace std;l double powxy(double x,int y=1);l int main()l l double x;l int y;l char choose;l coutx;l coutchoose;l if(choose=y)l l
5、couty;l coutx的y次方为:powxy(x,y);l l elsel coutx的次方为:powxy(x);l return 0;l l double powxy(double x,int y)l l double s=1;l for(int i=1;i=y;i+)l s*=x;l return s;l ll 运行结果(直接截取结果图)3、求两个正整数m和n(由用户输入)之间的非素数之和(包括m和n).要求用函数实现, l 程序源代码(注意添加注释)l #includel using namespace std;l bool f(int i);l int summn(int m,in
6、t n);l int main()l l int m,n;l cout请输入两个整数mn;l if(mn) int t; t=m;m=n;n=t;l coutsummn(m,n);l return 0;l l int summn(int m,int n)l l int i,s=0;l for(i=n;i=m;i+)l l if(!f(i) s=s+i;l l return s;l ll bool f(int i)l int j;l for(j=2;ji;j+)l if(i%j=0) return false;l return true;l l 运行结果(直接截取结果图)4. 在主程序中提示输入
7、整数n,编写函数用递归的方法求1+2+.+n的值。l 程序源代码(注意添加注释)l #includel using namespace std;l int sum1ton(int n);l int main()l l int n;l coutn;l cout从到n,累加和为:sum1ton(n);l return 0;l l int sum1ton(int n)l l if(n=1) return 1;l else return sum1ton(n-1)+n;l ll 运行结果(直接截取结果图)5. 用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出。递归公式为:l 程序源代
8、码(注意添加注释)l #includel using namespace std;l double p(int n,double x);l int main()l l int n;l double x;l coutn;l if(n0) l l cout错误:n必须为大于的整数,程序将结束!; l return;/main函数结束运行l l coutx;l coutp(n,x)=p(n,x);l return 0;l l double p(int n,double x)l l if(n=0) return 1;l else if(n=1) return x;l else return (2*n-
9、1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n;l ll 运行结果(直接截取结果图)6. 打印1!+2!+3!+10!之和。要求用函数实现。l 程序源代码(注意添加注释)l #includel using namespace std;l long sumjc(int n);l long jc(int n);l int main()l l coutsumjc(10);l return 0;l l long sumjc(int n)l l if(n=1) return jc(n);l else return jc(n)+sumjc(n-1);l l long jc(int n)l l if(n=1|n=0) return 1;l else return n*jc(n-1);l ll 运行结果(直接截取结果图)三、实验中遇到的问题以及解决方法四、实验结论与体会1、 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。2、 添加适当注释,注意书写的层次结构。3、 整理上机步骤,总结经验和体会。-
限制150内