华中科技大学c第5次上机课后复习.doc

举报
资源描述
^` 华 中 科 技 大 学 《计算机基础与程序设计(C++)》 实 验 报 告 实验名称:第五次上机实验 实验学时:4 姓名: 学号: 班级:电气 实验日期: 2017/4/27 教师批阅签字: 一、实验目的 l 掌握字符型数组、字符型指针和数值型数组的异同 。 l 掌握自定义函数的定义,声明和调用。 l 掌握函数参数的值传递和地址传递的区别。 l 掌握递归算法的意义。 l 明确变量的作用域和生存期的意义。 二、实验内容 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< #include using namespace std; int main() { int age ; char name[11]; cin>>age; cin.getline(name,11); cout<>age后面的分号为中文 2.cin.getline会将输入的回车作为其结束的标志,故直接跳过了输入字符数组这一步骤。只需要用cin.get吸收这个回车即可。 修改后的程序: #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( ) { char rstr[10 ]="abcdefgh", dstr[10]; char * p=rstr, *q=dstr; strcpy(dstr,rstr); cout<<"输出字符串rstr:"< #include using namespace std; int main( ) { char a[10]="abcdefgh",b[10]; char *rstr=a, *dstr=b; strcpy(dstr,rstr); cout<<"输出字符串rstr:"< using namespace std; int gys (int,int); int gbs (int,int); int main( ) { int a,b; cout<<"请输入两个正整数"<>a>>b; 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++) { if(a%i==0&&b%i==0) m=i; } s=a*b/m; return s; } 2) 解决本题的算法思路描述 编写计算最小公倍数的函数 编写计算最大公约数的函数 在主函数中使用这两个函数 得出结果 3) 调试过程的记载(包括出现的错误,以及修改) 函数声明方式错误 4) 归纳本题应用的知识点或算法 计算最大公约数和最小公倍数的方法 函数的声明与使用 2)编写程序随机生成50个100-200之间的随机整数,找出其中的素数。要求判断素数的功能利用函数实现,在main函数中调用该函数输出所有的素数。 要求: 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 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; else if(s[i]>=A&&s[i]<=F) b[i]=int(s[i])-55; } m=i; for(i=0;i using namespace std; int su(int a) { int m,n=1,i; for(i=2;i>b; gede(b,&c,&d); cout< using namespace std; void funMaxMin(int a[], int n, int *max, int *min) { int i,j; *max=0; *min=0; for (i=0;ia[*max]) *max=i; } for(j=0;j>n; cout<<"请输入数组元素"<>a[i]; funMaxMin(a,n,&max,&min); cout<<"最大值为"< 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<<"该整数的位数为"< #include using namespace std; 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,searchname)==0)) cout<<"未查找到该字符串"<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; mid=(low+high)/2; } if(strcmp(a[mid],searchname)==0) m=mid+1; else m=0; return m; } 2) 解决本题的算法思路描述 编写排序的函数 编写交换的函数 编写查找的函数 主函数 3) 调试过程的记载(包括出现的错误,以及修改?) 4) 归纳本题应用的知识点或算法 函数的定义与调用 折半查找 排序 对字符数组的处理 三、对本次实验内容及方法、手段的改进建议,以及实验心得 实验心得包括:1)哪些知识点已掌握 基本掌握字符型数组的使用 循环语句的使用 指针传递 函数的声明和调用 排序算法 递归算法 2)哪些知识点有困难 折半查找不熟练 3)对讲课的建议 多进行算法的举例 4)对没有掌握知识的补救建议 多加练习关于折半查找方面的问题 对常用算法进行总结
展开阅读全文
相关搜索
温馨提示:
taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

当前位置:首页 > 教育专区 > 教案示例


本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁