ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:81KB ,
资源ID:3793511      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3793511.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(华中科技大学c++第5次上机作业资料讲解.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

华中科技大学c++第5次上机作业资料讲解.doc

1、 华中科技大学c++第5次上机作业 精品文档 华 中 科 技 大 学 《计算机基础与程序设计(C++)》 实 验 报 告 实验名称:第五次上机实验 实验学时:4 姓名: 学号: 班级:电气 实验日期: 2017/4/27 教师批阅签字: 一、实验目的 l 掌握字符型数组、字符型指针和数值型数组的异同 。 l 掌握自定义函数的定义,声明和调用。 l 掌握函数参数的值传递和地址传递的区别。 l 掌握递归算法的意义。 l 明确变量的作用域和生存期的意义。

2、 二、实验内容 1.阅读程序 1)#include #include using namespace std; int main() { int a=10, *p=&a; char ch=’a’, *q=&ch; char str[ ]=”abcd”,*qq=str; cout<<*p<

3、eturn 0; } 运行上述的程序,并解释每个输出结果。 解释:1.指针变量*p指向a的地址,所以直接输出a的值。 2.指针变量*q指向ch的地址,所以输出ch的值。 3.指针变量*qq指向数组str的首地址,故只输出首个数据 4.因为a的类型为int,所以输出了a的地址 5. 有一个元素的字符数组,没有\0,所以直接输出时不能停止,只能输出乱码,而字符串可以直接输出是因为它会自动添加\0,输出时遇到\0停止,所以可以正常输出; 6. 用字符数组给指针初始化,所以qq相当于str,而字符数组可以整体输出 2)#include #include

4、math> using namespace std; int main() { int age ; char name[11]; cin>>age; cin.getline(name,11); cout<>age后面的分号为中文 2.cin.getline会将输入的回车作为其结束的标志,故直接跳过了输入字符数组这一步骤。只需要用cin.get吸收这个回车即可。 修改后的程

5、序: #include #include using namespace std; int main() { int age ; char name[11]; cin>>age; cin.get(); cin.getline(name,11); cout< #include using namespace std; int main(

6、 ) { char rstr[10 ]="abcdefgh", dstr[10]; char * p=rstr, *q=dstr; strcpy(dstr,rstr); cout<<"输出字符串rstr:"<

7、 ) { char *rstr="abcdefgh", *dstr; strcpy(dstr,rstr); cout<<"输出字符串rstr:"<

8、原因是指针*rstr和*dstr未指向安全的位置。更改会使程序无法运行。 修改: #include #include using namespace std; int main( ) { char a[10]="abcdefgh",b[10]; char *rstr=a, *dstr=b; strcpy(dstr,rstr); cout<<"输出字符串rstr:"<

9、位置即可。 2. 编程题 1)编写两个函数,分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,计算两个数的最大公约数和最小公倍数并输出结果。 要求: 1) 程序原代码。(直接粘贴在此) #include using namespace std; int gys (int,int); int gbs (int,int); int main( ) { int a,b; cout<<"请输入两个正整数"<>a>>b; cout<<"最大公约数为"<

10、cout<<"最小公倍数为"<=b) n=a; else n=b; for(i=2;i<=n;i++) { if(a%i==0&&b%i==0) m=i; } return m; } int gbs (int a,int b) { int i,n,m,s; if (a>=b) n=a; else n=b; for(i=2;i<=n;i++) {

11、 if(a%i==0&&b%i==0) m=i; } s=a*b/m; return s; } 2) 解决本题的算法思路描述 编写计算最小公倍数的函数 编写计算最大公约数的函数 在主函数中使用这两个函数 得出结果 3) 调试过程的记载(包括出现的错误,以及修改) 函数声明方式错误 4) 归纳本题应用的知识点或算法 计算最大公约数和最小公倍数的方法 函数的声明与使用 2)编写程序随机生成50个100-200之间的随机整数,找出其中的素数。要求判断素数的功能利用函数实现,在main函数中调用该函数输出所有的素数。

12、要求: 1) 程序原代码。(直接粘贴在此) #include #include #include using namespace std; int ss (int); int main( ) { int a[50],i,t=0,j; srand(time(0)); a[0]=(rand()%100+100); for(i=1;i<50;i++) { t=0; a[i]=(rand()%100+100); for(j=0;j

13、 if(t==1) i--; } cout<<"生成的50个随机数为:"<

14、ss (int b) { int a=1,n; for (n=2;n

15、记载(包括出现的错误,以及修改) 编写求素数的函数时,i从0开始,导致循环无法实现。 4) 归纳本题应用的知识点或算法 For循环,break语句的使用 函数的调用 生成随机数函数的使用 if语句及数组 3)编写一个函数实现将一个十六进制整数转换为一个十进制整数。例如,输入”A2”转换为162。 提示:循环对读入的每个字符转换成对应的十进制数字,比如’1’的值为1,’A‘为10,’F’为15,将转换后得到的数字进行计算处理。 函数的原型可以声明为: int funChange(char s[]); //函数的功能是将s数组存放的字符串转换为十进制数值返回,参数应采

16、用数组名传递方式,即形参数组与实参数组共用同一地址空间。 要求: 1) 程序原代码。(直接粘贴在此) #include using namespace std; int funchange (char s[]) { int i,m,b[100],sum=0; for(i=0;s[i]!=0;i++) { if(s[i]>='0'&&s[i]<='9') { b[i]=(int(s[i])-48); } else if(s[i]>='a'&&s[i]<='f') b[i]=int(s[i])-87; el

17、se if(s[i]>='A'&&s[i]<='F') b[i]=int(s[i])-55; } m=i; for(i=0;i

18、 将该数的每一位分别转换为十进制数并用数组b[100]记录, 用一重循环对其进行求和即可 3) 调试过程的记载(包括出现的错误,以及修改?) 头文件的int funchange (char s[])括号中忘记加char s[]; 4) 归纳本题应用的知识点或算法 数组的使用,if-else语句的使用,for循环的使用,函数的调用 4 )编写函数验证哥德巴赫猜想,任意一个充分大的偶数均可表示成两个素数之和。要求定义两个函数,一个函数判断一个整数是否是素数,另一个函数验证哥德巴赫猜想,即将一个偶数分解为两个素数,并返回这两个素数。利用函数的嵌套调用完成(即在验证哥德巴赫猜想的函数

19、中调用判断素数函数)。例如 8=3+5这样的显示信息在主函数中完成。 要求: 1) 程序原代码。(直接粘贴在此) #include using namespace std; int su(int a) { int m,n=1,i; for(i=2;i

20、 if(su(i)&&su(b-i)) { k=1; break; } } if(k==1) { *c=i; *d=b-i; } } int main() { int b,c,d; cout<<"请输入一个偶数"<>b; gede(b,&c,&d); cout<

21、量和引用返回这两个素数 输出 3) 调试过程的记载(包括出现的错误,以及修改?) 在指针变量和引用的时候出现错误 4) 归纳本题应用的知识点或算法 函数的定义调用 函数的嵌套 循环语句 求素数的方法 5) 编写函数,求出任意一个一维数组元素中的最大值和最小值的下标。要求在主函数中输入数组元素的值,输出最大值和最小值。 提示:本题要求将一维数组的元素传入到函数进行处理,对于大量的数据的传递,最好的方式是使用数组名作为实际参数传递,在这种情况下,形参可以是指针也可以是数组,通过形参能直接对实参数组的数据进行处理。本题的问题是获取数组元素的最大值和最小值,在函数中有两个值需要

22、返回到主函数,因此不能用return语句,需使用指针或引用参数进行回传。 函数的原型可以声明为: void funMaxMin(int a[], int n, int *max, int *min) //函数的功能获取数组元素的最大值和最小值下标。 要求: 1) 程序原代码。(直接粘贴在此) #include using namespace std; void funMaxMin(int a[], int n, int *max, int *min) { int i,j; *max=0; *min=0; for (i=0;i

23、) { if(a[i]>a[*max]) *max=i; } for(j=0;j>n; cout<<"请输入数组元素"<>a[i]; funMaxMin(a,n,&max,&min); cout<<"最大值为"<

24、endl; cout<<"最小值为"<

25、主函数中输入这个整数和输出统计的结果。 要求: 1) 程序原代码。(直接粘贴在此) #include using namespace std; int ws (int a) { if (a>=0&&a<10) return 1; else return 1+ws(a/10); } int main() { int a; cout<<"请输入一个整数"<>a; cout<<"该整数的位数为"<

26、ws函数,通过整除10来求得整数的位数 Main函数中调用ws函数求得位数 输出位数 3) 调试过程的记载(包括出现的错误,以及修改?) 未出现错误 4) 归纳本题应用的知识点或算法 计算整数位数的方法 循环语句 函数的定义与调用 7)编写程序要求能对10个字符串排序,然后用折半查找的方法查询需查找的字符串。要求①排序、②查找和③两字符串的交换 分别用自定义函数实现。要求:是否找到的信息只能在主函数中输出显示。 要求: 1) 程序原代码。(直接粘贴在此) #include #include using namespace s

27、td; void swap(char a[],char b[]); void paixu(char a[][50]); int search(char a[][50],char searchname[]); int main() { int i; char searchname[50],aa[10][50]; cout<<"请输入十个字符串"<>aa[i]; } cout<<"请输入要查找的字符串名称"<>searchname; if((search(aa,s

28、earchname)==0)) cout<<"未查找到该字符串"<

29、rcmp(a[min],a[j])>0) swap(a[min],a[j]); } } } int search(char a[][50],char searchname[]) { paixu(a); int low=0,high=9,mid,m; mid=(low+high)/2; while(low<=high&&strcmp(a[mid],searchname)!=0) { if(strcmp(a[mid],searchname)<0) low=mid+1; else high=mid-1; mi

30、d=(low+high)/2; } if(strcmp(a[mid],searchname)==0) m=mid+1; else m=0; return m; }

31、 2) 解决本题的算法思路描述 编写排序的函数 编写交换的函数 编写查找的函数 主函数 3) 调试过程的记载(包括出现的错误,以及修改?) 4) 归纳本题应用的知识点或算法 函数的定义与调用 折半查找 排序 对字符数组的处理 三、对本次实验内容及方法、手段的改进建议,以及实验心得 实验心得包括:1)哪些知识点已掌握 基本掌握字符型数组的使用 循环语句的使用 指针传递 函数的声明和调用 排序算法 递归算法 2)哪些知识点有困难 折半查找不熟练 3)对讲课的建议 多进行算法的举例 4)对没有掌握知识的补救建议 多加练习关于折半查找方面的问题 对常用算法进行总结 收集于网络,如有侵权请联系管理员删除

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服