收藏 分销(赏)

C++实验6及参考答案.doc

上传人:精*** 文档编号:3107299 上传时间:2024-06-18 格式:DOC 页数:6 大小:59.50KB 下载积分:6 金币
下载 相关 举报
C++实验6及参考答案.doc_第1页
第1页 / 共6页
C++实验6及参考答案.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
上海电力学院 实验报告 课程名称 高级程序设计c++(1) 实验项目 实验6 函数(2) 姓名 学号 班级 专业 信息安全 同组人姓名 无 指导教师姓名 田秀霞 实验日期 2015年12月2日 一、实验目的 1、掌握重载函数的使用,函数的默认参数。 2. 掌握函数递归。 二、实验内容和步骤 编程序并上机调试运行。 1、编写重载函数Max1可以分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值 l 程序源代码(注意添加注释) l #include<iostream> l using namespace std; l l 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); l l int main() l { l int x=2,y=3,z=4; l double m=3.2,n=1.4,p=3.9; l cout<<x<<','<<y<<"中最大的值是:"<<Max1(x,y)<<endl; l cout<<x<<','<<y<<','<<z<<"中最大的值是:"<<Max1(x,y,z)<<endl; l cout<<m<<','<<n<<"中最大的值是:"<<Max1(m,n)<<endl; l cout<<m<<','<<n<<','<<p<<"中最大的值是:"<<Max1(m,n,p)<<endl; l return 0; l } l l int Max1(int x,int y) l { l return x>=y?x:y; l } l int Max1(int x,int y,int z) l { l int max; l max=x>y?x:y; l max=z>max?z:max; l return max; l } l l 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=x>y?x:y; l max=z>max?z:max; l return max; l } l 运行结果(直接截取结果图) 2、编写函数,求x的y次方, 如果用户没有给出y的值,则默认输出x.(提示: 用默认参数值实现). 运行调试程序,熟悉调试窗口,熟悉单步调试和断点调试的过程. l 程序源代码(注意添加注释) l #include<iostream> l 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 cout<<"请输入x:"; l cin>>x; l cout<<"要输入y么?('y'输入,'n'不输入):"; l cin>>choose; l if(choose=='y') l { l cout<<"请输入y:"; l cin>>y; l cout<<x<<"的"<<y<<"次方为:"<<powxy(x,y); l } l else l cout<<x<<"的次方为:"<<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 } l l 运行结果(直接截取结果图) 3、求两个正整数m和n(由用户输入)之间的非素数之和(包括m和n).要求用函数实现, l 程序源代码(注意添加注释) l #include<iostream> l using namespace std; l bool f(int i); l int summn(int m,int n); l int main() l { l int m,n; l cout<<"请输入两个整数"<<endl; l cin>>m>>n; l if(m<n) {int t; t=m;m=n;n=t;} l cout<<summn(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 } l l bool f(int i) l { int j; l for(j=2;j<i;j++) l if(i%j==0) return false; l return true; l } l 运行结果(直接截取结果图) 4. 在主程序中提示输入整数n,编写函数用递归的方法求1+2+….+n的值。 l 程序源代码(注意添加注释) l #include<iostream> l using namespace std; l int sum1ton(int n); l int main() l { l int n; l cout<<"请输入n:"; l cin>>n; 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 } l l 运行结果(直接截取结果图) 5. 用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出。递归公式为: l 程序源代码(注意添加注释) l #include<iostream> l using namespace std; l double p(int n,double x); l int main() l { l int n; l double x; l cout<<"请输入n:"; l cin>>n; l if(n<0) l { l cout<<"错误:n必须为大于的整数,程序将结束!"; l return;//main函数结束运行 l } l cout<<"请输入x:"; l cin>>x; l cout<<"p("<<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-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n; l } l l 运行结果(直接截取结果图) 6. 打印1!+2!+3!+……+10!之和。要求用函数实现。 l 程序源代码(注意添加注释) l #include<iostream> l using namespace std; l long sumjc(int n); l long jc(int n); l int main() l { l cout<<sumjc(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 } l l 运行结果(直接截取结果图) 三、实验中遇到的问题以及解决方法 四、实验结论与体会 1、 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。 2、 添加适当注释,注意书写的层次结构。 3、 整理上机步骤,总结经验和体会。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服