版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计期末综合练习五(功能与改错)指出程序或函数的功能1. #in clude<iostream.h>void mai n()int i,s=0;for(i=2;i<=30;i+=2) s+=i*i; cout<<"s="<<s<<e ndl;2. #in clude<iostream.h>#i nclude<stdlib.h>#in clude<math.h>void mai n()int i=10,a;while(i>0) a=ra nd()%100+10;为求x的
2、平方根函数int j, k=i nt(sqrt(a)+1e-5); /sqrt(x) for(j=2; j<=k; j+)if(a%j=0) break;if(j>k) cout<<a<<' ' i-;3. void tran s(i nt x)char a10;int i=0,rem;do rem=x%16;x=x/16;'O'字符的ASCII码为48'A'字符的ASCII码为65if(rem<10) ai=48+rem; / else ai=55+rem;/i+;while(x!=0);while(i
3、>0) cout<<ai;cout<<e ndl;4. #include<iostream.h> double f1(int n) double sign=1,s=1; for(int i=2;i<=n; i+) s+=sign/(i*i); sign*=-1;return s;void main()int a; cin>>a; cout<<f1(a)<<endl;5. double f1(double a, double b, char op) switch(op) case'+':retur
4、n a+b;casereturn a-b;case'*':return a*b;case'/':if(b=0) cout<<"divided by 0!"<<endl;exit(1);else return a/b;default: cout<<"operator error!"<<endl; exit(1);6. #include<iostream.h> #include<math.h> void main()int x,y;为求 x 的算术平方根x
5、=”<<i<< '* ' <<x/i<<endl;cin>>x;y=int(sqrt(x); /sqrt(x)for(int i=1;i<=y;i+) if(x%i=0) cout<<实用文档7. #include<iostream.h>void main()int i,p=1,s=0;int N;cout<<" 输入一个正整数 :"cin>>N;for(i=1;i<=N;i+) p*=i;s+=p; cout<<s<&l
6、t;endl;8. #include<iostream.h>#include<stdlib.h>#include<time.h>const N=10;int ff(int x, int y) int z;cout<<x<<'+'<<y<<'='cin>>z;if(x+y=z) return 1; else return 0;void main()int a,b,c=0;srand(time(0); / 初始化随机数序列for(int i=0;i<N;i+) a=
7、rand()%20+1; /rand() 函数产生 0-32767 之间的一个随机数 b=rand()%20+1;c+=ff(a,b);cout<<" 得分 :"<<c*10<<endl;9. int s1(int n)int x;if(n=1) x=1;else x=s1(n-1)+n*n;return x;10. void fun5(char* a, const char* b) while(*b) *a+=*b+;*a=0;11. template<class T>bool fun8(T a, int n, T key)
8、for(int i=0;i<n;i+) if(ai=key) return true;return false ;12. void f2(double a, int n)int i; double sum=0; for(i=0;i<n;i+) sum+=ai;sum/=n;for(i=0;i<n;i+)if(ai>=sum) cout<<ai<<' ' ;cout<<endl;13. void f4(char aMN)int c1,c2,c3; c1=c2=c3=0;for(int i=0;i<M;i+) if(
9、strlen(ai)<5) c1+;else if(strlen(ai)>=5 && strlen(ai)<15) c2+; else c3+;cout<<c1<< ' ' <<c2<<' ' <<c3<<endl; 14. void fun3(int aN, int m, int& row, int& col)实用文档int x=a00;row=col=0;for(int i=0;i<m;i+)for(int j=0;j<N;j
10、+)if(aij>x) x=aij; row=i; col=j;15. int fun6(int m, int n, int b=2)if(m<b && n<b) return m*n;else if(m%b=0 && n%b=0) return b*fun6(m/b,n/b,b); else return fun6(m,n,+b);16. char* f8(char* str1, const char* str2)int i=0,j=0;while(str1i) i+;while(str2j) str1i+=str2j+ ;str1i=
11、9;0'return str1;17. int f8(const char* str1, const char* str2)int i=0;while(str1i && str2i)if(str1i=str2i) i+;else if(str1i>str2i) return 1;else return -1;if(str1i=str2i) return 0;else if(str1i>str2i) return 1;else return -1;18. IntNode* FindMax(IntNode *f)if(!f) return NULL;IntNod
12、e *p=f;f=f->next;while(f) if(f->data>p->data) p=f; f=f->next;return p;假定 IntNode 的类型定义为:struct IntNode int data; /结点值域IntNode* next; /结点指针域;19. int Count(IntNode *f)if(!f) return 0;int c=0;while(f) c+;f=f->next;return c;假定 IntNode 的类型定义为:struct IntNode int data; /结点值域IntNode* next;
13、 /结点指针域;20. void Output(IntNode *f)if(!f) return;while(f) cout<<f->data<< ' ' ; f=f->next;cout<<endl;假定 IntNode 的类型定义为:struct IntNode 结点值域 结点指针域int data; / IntNode* next; / ;21. void Input(IntNode*& f) int n; cout<< ”从键盘给 n 输入一个整数 : ” ; do cin>>n; whil
14、e(n<0);if(n=0) f=NULL; return; f=new IntNode;IntNode* p=f;cout<<”从键盘输入”<<n<<”个整数:while(n-) p=p->next=new IntNode; cin>>p->data; p->next =NULL; p=f; f=f->next; delete p;假定 IntNode 的类型定义为: struct IntNode int data; /结点值域IntNode* next; /结点指针域;22. int f(const char *
15、s) int i=0; while(*s+)i+; return i;23. char *f(char *s)int n=strlen(s); char* r=new charn+1; for(int i=0; i<n; i+) if(si>='a' && si<='z') ri=si-'a'+'A' else ri=si;rn=' 0 ' ;return r;实用文档程序改错1. 在下面的定义中, NODE是链表结点的结构, appe ndToList 则是一函数,其 功能是:在
16、list所指向的链表的末尾添加一个新的值为 x的结点,并返回表头指针。 函数中有两处错误,指出错误所在行的行号并提出改正意见。struct NODEint data;NODE *next;NODE* appendToList(NODE *list, int x)/1行NODE *p=new int;/2行p->data=x;/3行p->next=NULL;/4行if(list=NULL) return p;/5行NODE *p1=list;/6行while(p1->next!=NULL) p1=p1->next; /7行p1=p;/8行return list;错误行的行
17、号为 和。分别改正为 和 。2. 在下面的定义中,NODE1链表结点的结构,addToList则是一函数,其功能是:将一个值为 x 的新结点添加到以 plist 为表头指针的链表的首部 ( 即第一个结点 的前面)并返回表头指针。函数中有两处错误,指出错误所在行的行号并提出改正意 见。struct NODEint data;NODE *next;NODE* adndToList(NODE * plist, int x)/1行NODE *p;/2行*p=new NODE;/3行p->data=x;/4行p->next=NULL;/5行plist=p;/6行return p;/7行实用文
18、档错误行的行号为 和。分别改正为 和 。3. 假定要求下面程序的输出结果为 “11/15 ”, 其主函数中存在着三行语句错误, 请指出错误语句行的行号并改正错误行。#include<iostream.h>class Franction / 定义分数类int nume; /定义分子int deno; /定义分母public:/把 *this 化简为最简分数,具体定义在另外文件中实现void FranSimp();/返回两个分数 *this 和 x 之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x);/置分数的分子和分母分别
19、 0 和 1void InitFranction() nume=0; deno=1;/置分数的分子和分母分别 n 和 dvoid InitFranction(int n, int d) nume=n; deno=d;/ 输出一个分数void FranOutput() cout<<nume<<'/'<<deno<<endl;void main()/1行/2行Franction a,b,c;/3行a.InitFranction(6,15);/4行b.InitFranction(1);/5行c.InitFranction();/6行c=
20、FranAdd(a,b);/7行cout<<c.nume<< '/ ' <<c.deno<<endl;/8行/9行错误行的行号为 、_和。分别改正为 _ 、 _和_4. 假定要求下面程序的输出结果为 “23/20 ”, 其主函数中存在着三条语句错误, 请指出错误语句行的行号并改正。#include<iostream.h>class Franction / 定义分数类 int nume; /定义分子int deno; /定义分母public:/把 *this 化简为最简分数,具体定义在另外文件中实现void FranSi
21、mp();/返回两个分数 *this 和 x 之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x);/置分数的分子和分母分别 0 和 1void InitFranction() nume=0; deno=1;/置分数的分子和分母分别 n 和 dvoid InitFranction(int n, int d) nume=n; deno=d;/ 输出一个分数void FranOutput() cout<<nume<<'/'<<deno<<endl;void main() /1
22、 行 /2 行Franction *a=new Franction;/3行Franction *b=new Franction;/4行a->InitFranction(6,15); /5 行 b.InitFranction(3,4); /6 行Franction c; /7 行c.InitFranction(); /8 行 c=a.FranAdd(b); /9 行 cout<<c.FranOutput()<<endl; /10 行 /11 行错误行的行号为 、和 。分别改正为 、 和5. 下面是一个类的定义,存在着 3 处语法错误,请指出错误行的行号并改正。 cl
23、ass CE /1行private:/2行int a,b; /3行int getmin() return (a<b? a:b);/4行public/5行int c; /6 行void SetValue(int x1,int x2, int x3) /7行a=x1; b=x2; c=x3;/8 行; /9 行int GetMin(); /10 行 ; /11 行 int GetMin() /12 行int d=getmin();/13行return (d<c? d:c);/14行/16行错误行的行号为 、和_。分别改正为 、 _和6. 下面程序段第 4-10 行中存在着三条语句的语法
24、错误,请指出错误语句的行 号并改正。行行行行行行行行行class A /1int a,b;/2const int c;/3public/4A():c(0);a(0);b(0) /5 A(int aa, int bb) c(aa+bb); a=aa; b=bb; /6; /7A a,b(1,2); /8A *x=&a, &y=b; /9A *z=new A, w10; /10错误行的行号为 、和 。分别改正为 、 和Public: A():c(0),a(0),b(0) A(int aa, int bb): c(aa+bb) a=aa; b=bb;7. 下面程序段第 4-9 行中存
25、在着三条语句错误,请指出错误语句的行号并说明 原因。行行行行行行行行class A /1int a,b;/2const int c;/3public:/4A() a=b=c=0; /5A(int aa, int bb):c(aa+bb) a=aa; b=bb; /6; /7A a,b(1,2,3);/8A x(2,3), y(4);/9错误行的行号为 、和 错 误 原 因 分 别 为 、 和 。8. 下面程序段第10-17 行中存在着三条语句错误,请指出错误语句的行号并说明原因。class A /1行int a;/2行public:/3行A(int aa=0):a(aa)/4行;/5行clas
26、s B /6行int a,b;/7行const int c;/8行A d;/9行public:/10行B():c(0) a=b=0;/11行B(int aa, int bb):d(aa+bb) /12行a=aa; b=bb; c=aa-bb; /13行/14行/15行B a,b(1,2);/16行B x=a,y(b),z(1,2,3),;/17行错误行的行号为 _、和。错误原因分别为 、和 。9. 假定要求下面程序输出结果为“ d=800,f=60 ”,在第 4-23 行中存在着三条语 句错误,请指出错误语句的行号并改正。#include<iostream.h>class A /1
27、行int a10; int n;/2行public:/3行A(int aa, int nn): n(nn) /4行for(int i=0; i<n; i+) aai=ai;/5行/6行int Get(int i) return ai;/7行int SumA(int n);/8行;/9行int A:SumA(int n) /10行int s=0;/11行for(int j=0; j<n; j+) s+=aj;/12行return s;/13行实用文档 /14void main() /15 int a=2,5,8,10,15,20; /16A x(a,6);/17int d=1;/18
28、for(int i=0; i<4; i+) d*=x.ai;/19int f=SumA(6); /20 cout<<"d="<<d<< ' ,'/21cout<<"f="<<f<<endl; /22行行 行行行行 行 行 行行 /23错误行的行号为 、和。 5 19 20分别改正为 、 和行行行行行行行10. 下面是分数类 fract 的定义及测试主程序,在类定义及其友元函数定义中 有两处错误, 更正错误后程序应显示 41/28 ,请指出错误所在行的行号并给出改
29、正意 见。 class fractint den; /分子int num; /分母public:fract(int d=0,int n=1):den(d),num(n) /1 friend fract &operator+=(fract,fract&); /2 void show() cout<<den<<'/'<<num;/3;/4friend fract &operator+=(fract f1,fract f2) /5 /7/8 f1.num*=f2.num; /9return f1; /10 行 void ma
30、in()fract fr(3,4); fr+=fract(5,7); fr.show();错误行的行号为 和。分别改正为 和 。实用文档程序或函数功能的参考解答1. 计算并输出22+42+62+302的值。2. 随机产生出10个10至100之间的素数并显示出来。3. 此函数用于把十进制整数 x转换为十六进制数字串输出4. 计算并输出1+二VgL的值,其中a的值由键盘输入。i =2 i5. 以参数a和b为运算对象,以参数 op为四则算术运算符,求出运算结果并 返回。6. 把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。N7. 计算并输出a i!的值,其中N值由键盘输入。i =18. 让计算机随机产生出 10道20以内整数的加法题供用户计算,每道题 10分, 计算完成后打印出得分。2 2 29. 求出 1+2 +3+.+n 的值。10. 实现字符串系统函数 strcpy的功能,把b所指的字符串拷贝到a所指的字符数组空间中。11. 函数模板,从一维数组an中查找值为key的元素,若查找成功则返回真否 则返回假。12. 显示输出数组an中大于等于平均值的所有元素值。13. 对于二维字符数组 a中保存的M个字符串,分别统计并输出其长度小于5、大于等于5且小于15、大于等于15的字符串个数。14. 从一个二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年综合布线产品买卖合同范本
- 2024年有关借款合同范文
- 2024年厂房土地买卖合同(仅供)
- 2024年保温材料采购合同
- 2024年新工厂劳动合同范本
- 2024年简易场地租赁合同
- 2024年合作生产经营合同
- 港航实务 皮丹丹 教材精讲班课件 38-第2章-2.1.1-基床施工(四)
- 2024年老公写给老婆的保证书范文
- 2024年民间房屋借款合同
- 项目经理培训教程
- 大唐之美通用模板
- 国开2023秋人文英语4形考任务5-8参考答案
- 永安财险广东省(不含深圳市)地方财政补贴海水网箱水产养殖风灾指数保险条款
- 众辰5400变频器说明书
- 数学家华罗庚的故事课件
- 工程项目配资协议书
- ABS装置湿法挤出机系统存在的问题研究及对策的中期报告
- 新版小学道德与法治课程标准的解读与梳理培训课件(道德与法治新课程标准培训)
- 雪佛兰爱唯欧说明书
- 2023春国开会计实务专题形考任务1-4题库及答案汇总
评论
0/150
提交评论