




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一部分C+习题与(类和对象-01)题 1.分析以下程序执行的结果 #include #includeclass Sample public:Sample()x=y=0;Sample( void disp()a,b)x=a;y=b;coutx=x,y=yendl;void main()Sample s1(2,3); s1.disp();题 2.分析以下程序的执行结果 #includeclassSamplex,y; public:Sample()x=y=0;Sample(a,b)x=a;y=b;Sample()if(x=y)coutx=yendl;elsecoutx!=yendl;void di
2、sp()coutx=x,y=yendl;voidmain()Sample s1(2,3); s1.disp();题 3.分析以下程序的输出结果 #includeclass Samplex; public:Sample(a)x=a; coutconstructing;object:x=xendl;voidfunc(n)sic Sample obj(n);voidmain()func(1);func(10);题 4分析以下程序的执行结果#include class Samplex,y; public:Sample()x=y=0;Sample( void disp()a,b)x=a;y=b;cout
3、x=x,y=ydisp();题 5 分析以下程序的执行结果#include class Samplepublic:x;y;void disp()coutx=x,y=yendl;voidmain()Sample:*pc; Sample s; pc=&Sample:x; s.*pc=10; pc=&Sample:y; s.*pc=20; s.disp();第二部分题 1.分析以下程序的执行结果 #includeclass Samplen;sicsum;public:Sample(x)n=x;void add()sum+=n; void disp()coutn=n,sum=sumendl;Sampl
4、e:sum=0;/静态数据成员赋初值void main()Sample a(2),b(3),c(5); a.add();a.disp();b.add();b.disp();c.add();c.disp();题 2.分析以下程序执行的结果 #includeclass SampleA;sicB;public:Sample(a)A=a,B+=a;sic void func(Sample s);void Sample:func(Sample s)coutA=s.A,B=Bendl;Sample:B=0;void main()Sample s1(2),s2(5); Sample:func(s1); Sa
5、mple:func(s2);题 9.分析以下程序的执行结果 #includeclass Samplechar c1,c2; public:Sample(char a)c2=(c1=a)-32; void disp()coutc1转换为c2endl;void main()Sample a(a),b(b); a.disp();b.disp();题 10.分析以下程序执行的结果 #includeclass Samplex,y; public:Sample()x=y=0;Sample( void disp()a,b)x=a;y=b;coutx=x,y=yendl;voidmain()Sample Sa
6、mple for(s1,s2(1,2),s3(10,20);*pa3=&s1,&s2,&s3; i=0;idisp();题 11. 分析以下程序的执行结果#include class Samplex,y; public:Sample()x=y=0;Sample( void disp()a,b)x=a,y=b;coutx=x,y=yendl;voidmain()Sample s1,s2(1,2),s3(10,20);Sample *Pa3; Pa0=&s1; Pa1=&s2; Pa2=&s3;for(i=0;idisp();题 12. 分析以下程序的执行结果#include class Samp
7、lepublic:x;y;void disp()coutx=x,y=y*pc=10; pc=&Sample:y; p-*pc=20;p-disp();题 13.分析以下程序的执行结果 #includeclass Samplex;y; public:Sample(a,b)x=a;y=b;getx()return x;gety()return y;voidmain()(Sample:*fp)(); fp=&Sample:getx; Sample s(2,7);v=(s.*fp)(); fp=&Sample:gety;t=(s.*fp)(); coutv=v,t=tendl;题 14 .分析以下程序
8、的执行结果 #includeclass Samplex;y; public:Sample(a,b)x=a;y=b;getx()return x;gety()return y;void main()(Sample:*fp)(); fp=&Sample:getx; Sample s(2,7),*p=&s;v=(p-*fp)(); fp=&Sample:gety; t=(p-*fp)();coutv=v,t=tendl;第三部分程序设计题题 1.设计一个立方体类 Box,它能计算并输出立方体的体积和表面积。解:Box 类包含三个私有数据成员 a(立方体边长)、volume(体积)和 area(表面积
9、),另有两个构造函数以及 seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和 disp()(输出结果)。题 2.编写一个程序,输入 N 个学生数据,包括学号、些学生数据并计算平均分。解:、成绩,要求输出这设计一个学生类 Stud,除了包括 no(学号)、name()和 deg(成绩)数据成员外,有两个静态变量 sum 和 num,分别存放总分和人数,另有两个普通成员函数 setdata()和 disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数 avg(),它用于计算平均分。在 main()函数中定义了一个对象数组用于
10、输入的学生数据。题 3.编写一个程序,已有若干个学生数据,这些数据包括学号、语文成绩、数学成绩和英语成绩,求各门功课的平均分。要求设计不同的成员函数求各门课程的平均分,并使用成员函数指针调用它们。解:设计一个学生类 student,包括 no(学号)、name()、deg1(语文成绩)、deg2(数学成绩)、deg3(英语成绩)数据成员和三个静态数据成员 sum1(累计语文总分)、sum2(累计数学部分)、sum3(累计英语总分);另外有一个构造函数和三个求平均分的成员函数和一个 disp()成员函数。题 4.编写一个程序,输入 N 个学生数据,包括学号、成绩在 8089 分的学生数据。解:、
11、成绩,要求只输出设计一个学生类 Stud,包括 no(学号)、name()和 deg(成绩)数据成员,另有两个普通成员函数 setdata()和 disp(),前者用于设置对象数据,后者用于只输出成绩在 8089 分数段的学生数据。在 main()函数中定义了一个对象数组,用于输入的学生数据。题 5.编写一个程序,统计学生成绩,其功能包括输入学生的和成绩,按成绩从高到低排列打印输出,对前%70 的学生定为合格(PASS),而后 30%的学生定为不合格(FAIL)解:设计一个类 student,包含学生的和成绩等数据,以及 setname()、setdeg()、getname()、和 getde
12、g()等四个成员函数。设计一个类 compute,包含两个私有数据成员,即学生人数 ns 和 student 类的对象组 na,另有三个公共成员函数 getdata()、sort()、disp(),它们分别用于获取数据、按成绩排序和输出数据。题 5.编写一个程序,输入用户的和号码,按的词典顺序排列后,输出用户的解:和号码。设计一个类,包含学生的和号码等数据,以及setname()、setnum()、getname()和 getnum()等四个成员函数。设计一个类compute,包含一个私有数据成员,即类的对象数组 pn,另有三个公共成员函数 getdata()、sort()、disp(),它们
13、分别用于获取数据、按典顺序排序和输出数据。的词题 6.编写一个程序,输入 n 个学生的解:和出生日期,并按从大到小输出。设计一个结构体,包含学生的和出生日期等数据;设计一结构体数组 st,另有三个个类 compute,包含一个私有数据成员,即私有成员函数 daynum()、count_day()、leap(),以及三个公共成员函数 getdata、 sort()、disp(),它们分别用于获取数据、按出生日期排序和输出数据,在实现过程中调用前面的三个私有成员函数。sort()成员函数是按结构体数组元素的 d成员排序的,d 存放的是该学生从 1900 年 1 月 1 日到出生日期的天数。题 7.
14、设计一个词典类 Dic,每个单词包括英文单词及对应的中文含义,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译成对应的汉语。解:词典类 Dic 包括 top(当前词典指针)、words(英语单词库)、men(对应中亠含义库)数据成员,以及一个构造函数、add()(添加单词)和 trans(英汉翻译)成员函数。第四部分01.分析以下程序的执行结果 #includevoid main()a;&b=a; b=10;/ 变量couta=aendl;02.分析以下程序的执行结果 #include class Samplex; public:Sample();Sample(a)x=a;Sample
15、(Sample &a)x=a.x+1;void disp()coutx=xendl;void main()Sample s1(2),s2(s1); s2.disp();03.编写程序,调用传递例如开始:的参数,实现两个字符串变量的交换。char *ap=o;char *bp=how are you?;交换的结果使得 ap 和 bp 指向的内容分别为:ap:bp:how are you?o解:本题使用调用(实现由于字符串指针本身就是地址,这里可不使用引用参数,效果是一样的)。04.设计一个集合类 Set,包括将集合置空、添加元素、判断元素是否在集合中、输出集合,以及将集合中元素逆置,另外还有一个
16、拷贝构造函数,并使用一些数据进解:试。Set 类包括私有数据成员 elems(存放集合元素)、pc(当前元素指针),一个默认构造函数和拷贝构造函数 Set(Set &s),另有成员函数 empty()(将集合置空)、isempty()(判断集合是否为空)、ismemberof()(判断元素是否在集合中)、add()(添加元素)、pr()(输出集合)、reverse(将集合中元素置逆)。05.设计一个类 Sample,实现两个复数的乘法运算。解:Sample 类包括复数的实部和虚部,以及实现复数相乘的成员函数 mult()和输出复数的成员函数 disp()。06.有若干教师,每个教师只有,一个教
17、师可以指导多名;每名生有、方向和班号数据,编写一个程序,要求输出每个教师指导的所有的、方向和班号数据。解:先设计一个学生类 student,然后设计一个教师类 teacher。teacher 类中添加一个student 对象数组,存放该教师指导的所有这样实现了两个类之间一对多的关系。对象,top 为当前的指针。第五部分题 1.分析以下程序的执行结果 #includevoid swap(&x,&y)temp;temp=x; x=y; y=temp;void main()x=10,y=20;swap(x,y); coutx=x,y=yendl;题 2.分析以下程序的执行结果 #includevoi
18、d main()a=10,20,30,40,*pa=a;*&pb=pa; pb+; cout*paendl;题 3.分析以下程序的执行结果 #includeclass Samplex; public:Sample();Sample(a)x=a;Sample(Sample &a)x=a.x+ +10; void disp()coutx=xendl;void main()Sample s1(2),s2(s1); s1.disp();s2.disp();题 4.分析以下程序的执行结果 #includeclass Samplex,y; public:Sample()x=y=0;Sample(i,j)x
19、=i;y=j;void copy(Sample &s);void setxy(i,j)x=i;y=j;void pr()coutx=x,y=yendl;void Sample:copy(Sample &s)x=s.x;y=s.y;void func(Sample s1,Sample &s2)s1.setxy(10,20);s2.setxy(30,40);void main()Sample p(1,2),q;q.copy(p);func(p,q);p.pr q.pr();();题 5.设计一个 Book 类,包含的书名、作者、月销售量等数据成员,其中书名和作者采用字符型指针,另有两个构造函数、一
20、个析构函数和两个成员函数setbook()和 pr如下:void pr(),其中 setbook()用于设置数据,pr()用于输出数据,其说明(ostream& output)即输出流。题 6.阅读下面的程序与输出结果,添加一个拷贝构造函数来完善整个程序 #includeclass Catpublic:Cat();Cat(const Cat &);Cat();getage()constreturn *itsage;void setage( protected:*itsage;age)*itsage=age;Cat:Cat()itsage=new;*itsage=5;Cat:Cat()delet
21、e itsage; itsage=0;void main()Cat frisky;coutfriskys age:frisky.getage()endl; coutsetting frisky to 6.n; frisky.setage(6);coutcreating boots from friskyn; Cat boots(frisky);coutfriskys age:frisky.getage()endl; coutbootsage:boots.getage()endl; coutsetting frisky to 7.n; frisky.setage(7);coutfriskys a
22、ge:frisky.getage()endl; coutbootsage:boots.getage()endl;当添加了拷贝构造函数后,程序的运行结果为:friskys age:5 setting frisky to 6.creating boots from frisky friskys age:6bootsage:6setting frisky to 7. friskys age:7 bootsage:6题 7.设计一个类 Sample,有一个私有数据成员,建立该类的四个对象 s1(n=10)、 s2(n=20)、s3(n=30)、和 s4(n=40),建立一个成员函数实现这些对象 n 值
23、的累加。解:依题意,建立一个成员函数 add(),其参数为 Sample 对象象 n 值。,用于累加对题 8.编写一个程序,设计一个点类 Po解:,求两个点之间的距离。设计一个普通函数 distance(Po距离。&p1,Po&p2),用于计算 p1 和 p2 点之间的题 9.编写一个程序,设计一个职工类系、室和职工,给出他们之间的解:,一个系有若干个职工,按职务分为关系。类有、职务和指向的指针等私有数据,以及两个构造函数和以下成员函数:setleader()(设置当前职工的);getname()(获取职工和职务)。);getleader()(获取者对象指针);disp()(输出第六部分C+习
24、题与(-01)01.分析以下程序的执行结果 #include class Samplen; public:Sample( friend;add(Sample &s1,Samplereturn s1.n+s2.n;void main()i)n=i;add(Sample &s1,Sample &s2);&s2)Sample s1(10),s2(20); coutadd(s1,s2)endl;02.分析以下程序的执行结果 #includeclass classB; Ai; public:set(B&); get()returnx)i=x;i;A(;classBi; public:B(x)i=x;fr
25、iend A;A:set(B &b) B 定义之后return i=b.i;void main()A a(1);B b(2);/ 由于使用了类 B 的定义,故本函数的定义应放在类couta.get(),; a.set(b); couta.get()endl;03.有一个学生类 student,包括学生、成绩,设计一个函数,比较两个学生成绩的高低,并求出最高分和最低分的学生。04.有一个学生类 student,包括学生、成绩,设计一个函数,输出成绩对应的等级:大于等于 90:优;8090:良;7079:中;60!69:及格;小于 60:不及格。05.设计一个类 Sample,它有两个私有成员 A
26、和 n(A 中元素个数),将对 A中数据进行各种排序的函数放入到一个类 pros 中。解:pros 类不包含任何数据成员,包含的公共成员函数如下:getdata(Sample &s); insertsort(Sample &s);用于获取对象 s 的数据用于进行用于进行排序排序ssort(Sample &s);bubblesort(Sample &s); 用于进行冒泡排序 quicksort(Sample &s); 用于进行快速排序 selectsort(Sample &s); 用于进行选择排序disp(Sample &s);用于输出数据第七部分题 1.分析以下程序的执行结果 #include
27、class Samplen; public:Sample()Sample (m)n=m;friend void square(Sample &s)s.n=s.n*s.n;void disp()coutn=nendl;void main()Sample a(10); square(a); a.disp();题 2.分析以下程序的执行结果 #includeclass B; class Ai; friend B;void disp()coutiendl;class Bpublic:void set(A a; a.i=n;n)/ i 是对象 a 的私有数据成员,在类可以使用a.disp(); / di
28、sp()是对象 a 的私有成员函数,在类可以使用;void main()B b; b.set(2);题 3.分析以下程序的执行结果 #includeclass teacher; class studentchar *name; public:student(char *s)name=s;friend void pr(student &,teacher &);class teacherchar *name; public:teacher(char *s)name=s;friend void pr(student &,teacher &);void pr(student &a,teacher &b
29、)coutthe student is:endl; coutthe teacher is:endl;void main()student s(Li Hu); teacher t(Wang);pr(s,t);题 4.有一个学生类 student,包括学生大于等于 80 分以上者。解:学生类 student 的 disp()函数设计、成绩,设计一个类,输出成绩函数。题 5.有一个向量类 Vector,包括一个点的坐标位置 x 和 y,设计两个实现两个向量的加法和减法的运算函数,题 7.设计一个日期类 Date,包括日期的年份、月份和日号,编写一个求两个日期之间相差的天数。解
30、:该类中设计有 3 个 函数;count_day()函数,它有两个参数,第 2 个参数是一个标志,当其值等于 1 时,计算一年的开始到某日期的天数;否则计算某日期到年尾的天数。leap()函数用于判断指定的年份是否为闰年。subs()函数用于计算两个日期之间的天数。函数,题 8.编写一个程序,设计一个类,包括学号、和成绩等私有数据成员,不含任何成员函数,只将 main()设置为该类的函数。解:main()函数与其它的函数一样可以设置为类的用类对象的私有数据成员。本题的程序如下:函数,这样就可以在其中使题 9.采解:元类的方式重新编写“第 04 题“的程序。将原 student 类中的 disp
31、()成员函数和 trans()员函数。其执行结果与第 4 题的结果完全相同。函数作为类 pros 的成第八部分C+习题与(重载-01)01.分析以下程序执行结果 #includeadd(x,y)return x+y;double add(double x,double y)return x+y;void main()a=4,b=6;double c=2.6,d=7.4; coutadd(a,b),add(c,d)endl;02.分析以下程序的执行结果 #include class Samplei; double d; public:void void voidsetdata(n)i=n;set
32、data(double x)d=x; disp()couti=i,d=dendl;voidmain()Sample s; s.setdata(10); s.setdata(15.6);s.disp();03.分析以下程序的执行结果 #include class Samplen; public:Sample() Sample(i)n=i;Sample &operator=(Sample);void disp()coutn=nendl;Sample &Sample:operator=(Sample s)Sample:n=s.n; return *this;void main()Sample s1(
33、10),s2; s2=s1;s2.disp();04.设计一个点类 Po解:,实现点对象之间的各种运算。Po类提供了 6 个运算符重载函数(参加程序中的代码和注释),以实现相应的运算。05.设计一个日期类 Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等。解:在 Date 类中设计如下重载运算符函数:Date operator+( Date operator-(days);days);返回一日期加一天数得到的日期返回一日期减去天数得到的日期返回两日期相差的天数operator-(Date &b);在实现这些重载运算符函数调用以
34、下私有成员函数:leap();判断指定的年份是否为闰年将指定日期转换为从 0 年 0 月 0 日起的天数将指定的 0 年 0 月 0 日起的天数转换为对应的日期dton(Date &); ntod();第九部分 运算符重载题 1.分析以下程序的执行结果 #includeadd(x,y)return x+y;add(x,y,z)return x+y+z;void main()a=4,b=6,c=10;coutadd(a,b),add(a,b,c)endl;题 2.分析以下程序的执行结果 #includeclass Samplei; double d; public:void setdata( v
35、oid setdata(i=n;d=x;void disp()n)i=n;d=0; n,double x)couti=i,d=dendl;void main()Sample s; s.setdata(10); s.disp(); s.setdata(2,15.6); s.disp();题 3.分析以下程序的执行结果 #includeclass Samplen; public:Sample()Sample(i)n=i;friend Sample operator-(Sample &,Sample &); friend Sample operator+(Sample &,Sample &); void disp()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化娱乐用品项目市场调查研究报告
- 2025年PLC挂箱项目市场调查研究报告
- 熟食美食体验馆企业制定与实施新质生产力战略研究报告
- 烘焙主题民宿行业深度调研及发展战略咨询报告
- 智能恒温睡袋行业跨境出海战略研究报告
- 智能恒温电暖宝行业跨境出海战略研究报告
- 电动摄影平床企业ESG实践与创新战略研究报告
- 特色干货批发市场行业深度调研及发展战略咨询报告
- 智能漏水探测器企业制定与实施新质生产力战略研究报告
- 玉米速冻食品企业制定与实施新质生产力战略研究报告
- 福建省厦门市2025届高中毕业班高三5月第四次质量检测物理试卷(厦门四检)
- 【2025二轮复习】读后续写专题
- 2025年国家民委直属事业单位招聘考试笔试试题(附答案)
- 运动健康产业的市场分析与前景
- 商品房门窗加工合同协议
- 药品知识产权保护
- 四年级下册数学口算练习题
- (四调)武汉市2025届高中毕业生四月调研考试 物理试卷(含答案)
- 2025年济南市中区九年级中考数学一模考试试题(含答案)
- 大模型原理与技术-课件 chap6 大模型微调
- 数学建模与系统仿真智慧树知到期末考试答案2024年
评论
0/150
提交评论