版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 1.分析以下程序执行的结果 #include #includeclass Slepublic:x,y; le()x=y=0;S Sle(a,b)x=a;y=b;void disp()coutx=x,y=yendl;voidmain()Sle s1(2,3);s1.disp();题 2.分析以下程序的执行结果 #includeclass Slex,y; public:S SSle()x=y=0; le(a,le()b)x=a;y=b;if(x=y)coutx=yendl;elsecoutx!=yendl;void disp()coutx=x,y=yendl;void main()Sle s1
2、(2,3);s1.disp();题 3.分析以下程序的输出结果 #includeclass Slex; public:Sle(a)x=a; coutconstructingobject:x=xendl;voidfunc(n)sic Sle obj(n);voidmain()func(1);func(10);题 1.4 分析以下程序的执行结果#includeclass Slex,y; public:Sle()x=y=0;Sle(a,b)x=a;y=b;void disp()coutx=x,y=ydisp();题 1.5 分析以下程序的执行结果#includeclass Slepublic:x;y
3、;void disp()coutx=x,y=yendl;voidmain()Slele:*pc; s;le:x;Spc=&Ss.*pc=10;pc=&Sle:y;s.*pc=20; s.disp();题 6.分析以下程序的执行结果 #includeclass Slepublic:S SSle(); le();le();void display(); protected:x;Sle:Sle()x=0;coutconstructing normallyn;Sle:Sle(m)x=m; coutconstructing winumber:xendl;void Sle:display()coutdis
4、play a number:xendl;Sle:Sle()coutdestructingn;void main()S Sle obj1;le obj2(20);obj1.display(); obj2.display();题 7.分析以下程序的执行结果 #includeclass Slen; icssum;public:Svoid voidle(x)n=x;add()sum+=n; disp()coutn=n,sum=sumendl;Sle:sum=0;/静态数据成员赋初值void main()Sle a(2),b(3),c(5);a.add();a.disp();b.add();b.disp
5、();c.add();c.disp();题 8.分析以下程序执行的结果 #includeclass SleA;icsB;public:Ssle(a)A=a,B+=a;ic void func(Sle s);void Sle:func(Sle s)coutA=s.A,B=Bendl;Sle:B=0;void main()S S Sle s1(2),s2(5);le:func(s1);le:func(s2);题 9.分析以下程序的执行结果 #includeclass Slechar c1,c2; public:Sle(char a)c2=(c1=a)-32;void disp()coutc1转换为
6、c2endl;voidmain()Sle a(a),b(b);a.disp();b.disp();题 10.分析以下程序执行的结果 #includeclass Slex,y; public:S Sle()x=y=0;le(a,b)x=a;y=b;void disp()coutx=x,y=yendl;void main()S Sle les1,s2(1,2),s3(10,20);*pa3=&s1,&s2,&s3; i=0;idisp();for(题 11. 分析以下程序的执行结果#includeclass Slex,y; public:S Sle()x=y=0;le(a,b)x=a,y=b;vo
7、id disp()coutx=x,y=yendl;voidmain()S Sle s1,s2(1,2),s3(10,20);le *Pa3;Pa0=&s1; Pa1=&s2; Pa2=&s3;for(i=0;idisp();题 12. 分析以下程序的执行结果#includeclass Slepublic:x;y;void disp()coutx=x,y=y*pc=10;pc=&Sle:y;p-*pc=20; p-disp();题 13.分析以下程序的执行结果 #includeclass Slex;y; public:Sle(a,b)x=a;y=b;getx()return x;gety()re
8、turn y;void main()(Sle:*fp)();fp=&Sle:getx;Sle s(2,7); v=(s.*fp)();fp=&Sle:gety;t=(s.*fp)(); coutv=v,t=tendl;题 14 .分析以下程序的执行结果 #includeclass Slex;y; public:Sle(a,b)x=a;y=b;getx()return x;gety()return y;voidmain()(Sfp=&Sle:*fp)(); le:getx; s(2,7),*p=&s;Slev=(p-*fp)();fp=&Sle:gety;t=(p-*fp)(); coutv=v
9、,t=tendl;题 15.设计一个立方体类 Box,它能计算并输出立方体的体积和表面积。解:Box 类包含三个私有数据成员 a(立方体边长)、volume(体积)和 area(表面积),另有两个构造函数以及 seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和 disp()(输出结果)。本题程序如下:#include class Boxfloat float floata; volume; area;public:Box()Box(float r)a=r;void void void voidseta(float r)a=r; getvolu
10、me()volume=a*a*a; getarea()area=6*a*a; disp()cout体积:volume,表面积:areaendl;voidmain()Box obj1(4.5),obj2; obj2.seta(6.4); obj1.getvolume(); obj1.getarea(); cout; obj1.disp(); obj2.getvolume(); obj2.getarea(); cout; obj2.disp();本程序的执行结果如下:obj1=体积:91.125, 表面积:121.5 obj2=体积:262.144,表面积:245.76题 19.编写一个程序,输入
11、 N 个学生数据,包括学号、些学生数据并计算平均分。解:设计一个学生类 Stud,除了包括 no(学号)、name(、成绩,要求输出这)和 deg(成绩)数据成员外,有两个静态变量 sum 和 num,分别存放总分和人数,另有两个普通成员函数 setdata()和 disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数 avg(),它用于计算平均分。在 main()函数中定义了一个对象数组用于输入的学生数据。本题程序如下: #include #include #define N 3classStudno;char name10; deg;s sic icnum; sum;
12、public:void setdata(n,char na,d)no=n; deg=d; strcpy(name,na); sum+=d;num+;sic double avg()return sum/num;void disp()prf(%-5d%-8s%3dn,no,name,deg);Stud:sum=0; Stud:num=0;void main()Stud stN;i,n,d; char na10;for(i=0;iN;i+)prf(输入学号成绩:);scanf(%d%s%d,&n,na,&d);sti.setdata(n,na,d);prf(输出数据n);prf(学号成绩n);fo
13、r(i=0;iN;i+)sti.disp();prf(平均分=%gnn,Stud:avg();本程序的执行结果如下:输入学号输入学号输入学号输出数据成绩:成绩:成绩:123stud1 89stud2 78stud84学号123平均分=83成绩stud1 stud2 stud3897884C+习题与(-01)01.分析以下程序的执行结果 #includevoid main()a;&b=a; b=10;/变量couta=aendl;02.分析以下程序的执行结果 #includeclass Slex; public:S S Sle();le( le(Sa)x=a;le &a)x=a.x+1;void
14、 disp()coutx=xendl;void main()Sle s1(2),s2(s1);s2.disp();05.设计一个类S解:le,实现两个复数的乘法运算。Sle 类包括复数的实部和虚部,以及实现复数相乘的成员函数mult()和输出复数的成员函数disp()。本题的程序如下: #includeclass Sfloat a; float b; public: SSle/ 实部/ 虚部le()le(float x,float y)a=x;b=y;void mult(Sle &s)/ 对象作为参数if(&s=this)/ 不能自己相乘cout自己不能相乘0)couta+biendl; el
15、secouta-biendl;void main()Sle s1(2,3),s2(3,4);cout复数s1:; s1.disp();cout复数s2:; s2.disp(); s1.mult(s2);cout相乘结果:; s1.disp(); coutendl;本程序执行结果如下:复数s1:2+3i复数s2:3+4i相乘结果:-6+17i题 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.分析以下程序的执行结果
16、#includevoid main()a=10,20,30,40,*pa=a;*&pb=pa; pb+; cout*paendl;题 3.分析以下程序的执行结果#includeclass Sx; public:S S Slele();le(a)x=a;le(Sle &a)x=a.x+ +10;void disp()coutx=xendl;void main()Sle s1(2),s2(s1);s1.disp();s2.disp();题 4.分析以下程序的执行结果 #includeclass Sx,y; public:S Slele()x=y=0;le(i,j)x=i;y=j; le &s);j
17、)x=i;y=j;void copy(S void setxy(i,void pr()coutx=x,y=yendl;void Sle:copy(Sle &s)x=s.x;y=s.y;void func(Sle s1,Sle &s2)s1.setxy(10,20);s2.setxy(30,40);void main()Sle p(1,2),q;q.copy(p);func(p,q);p.pr q.pr();();题 8.编写一个程序,设计一个点类Po解:,求两个点之间的距离。设计一个普通函数distance(Po距离。本题程序如下: #include #include class Pox,y;
18、 public:&p1,Po&p2),用于计算p1 和p2 点之间的Po(i,j)x=i;y=j;getx() return x;gety() return y; void disp()cout(xy);float distance(Pofloat d;&p1,Po&p2)/ 对象作为参数d=sqrt(p1.getx()-p2.getx()*(p1.getx()-p2.getx()+(p1.gety()-p2.gety()*(p1.gety()-p2.gety(); return d;void main()Pop1(2,2),p2(5,5);p1.disp(); cout与; p2.disp(
19、);cout之间距离=distance(p1,p2)endl;C+习题与(-01)01.分析以下程序的执行结果 #includeclass Slen; public:Sle(i)n=i;friendadd(Sle&s1,Sle&s2);add(Sle &s1,Sle&s2)return s1.n+s2.n;void main()Sle 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
20、)i=x;friend A;A:set(B &b) B 定义之后return i=b.i;/ 由于使用了类B 的定义,故本函数的定义应放在类void main()A a(1);B b(2);couta.get(),; a.set(b); couta.get()endl;题 1.分析以下程序的执行结果 #includeclass Sn; public:S Slele() le (m)n=m;friend void square(Ss.n=s.n*s.n;void disp()le &s)coutn=nendl;void main()Sle a(10);square(a); a.disp();题
21、2.分析以下程序的执行结果 #includeclass B; class Ai; friend B;void disp()coutiendl;class Bpublic:void set(A a; a.i=n;n)/ i 是对象a 的私有数据成员,在类可以使用a.disp(); / disp()是对象a 的私有成员函数,在类可以使用;void main()B b; b.set(2);题 3.分析以下程序的执行结果 #includeclass teacher; class studentchar *name; public:student(char *s)name=s;friend void p
22、r(student &,teacher &);class teacherchar *name; public:teacher(char *s)name=s;friend void pr(student &,teacher &);void pr(student &a,teacher &b)coutthe student is:endl; coutthe teacher is:endl;void main()student s(Li Hu); teacher t(Wang);pr(s,t);C+习题与(重载-01)01.分析以下程序执行结果 #includeadd(x,y)
23、return x+y;double add(double x,doublereturn x+y;void main()a=4,b=6;y)double c=2.6,d=7.4; coutadd(a,b),add(c,d)endl;02.分析以下程序的执行结果 #includeclass Slei; double d; public:void void voidsetdata(n)i=n;setdata(double x)d=x; disp()couti=i,d=dendl;void main()Sle s;s.setdata(10); s.setdata(15.6);s.disp();03.分
24、析以下程序的执行结果 #include class Slen; public:S S Svoidle() le(i)n=i;le &operator=(Sle);disp()coutn=nendl; Sle &Sle:operator=(Sles)Sle:n=s.n;return *this;void main()Sle s1(10),s2;s2=s1; s2.disp();题 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,
25、c)endl;题 2.分析以下程序的执行结果 #includeclass Si;ledouble d; public:void setdata( void setdata(i=n;d=x;void disp()n)i=n;d=0; n,double x)couti=i,d=dendl;void main()Sle s;s.setdata(10); s.disp(); s.setdata(2,15.6); s.disp();题 3.分析以下程序的执行结果 #includeclass Slen; public:Sle()Sle(i)n=i;le operator-(S le operator+(S
26、friend S friend Sle &,S le &,Sle &);le &);void disp()coutn=nendl; Sle operator-(Sle &s1,Sle &s2)m=s1.n-s2.n;return Sle(m);Sle operator+(Sm=s1.n+s2.n;le &s1,Sle &s2)return Sle(m);void main()Sle s1(10),s2(20),s3;s3=s2-s1; s3.disp(); s3=s2+s1; s3.disp();题 4.分析以下程序的执行结果 #includeclass SleA1010;public:&op
27、erator()(,);&Sle:operator()(x,y)return Axy;void main()Sle a; i,j;for(i=0;i10;i+) for(j=0;j10;j+)a(i,j)=i+j;for(i=0;i10;i+) couta(i,1) ;coutendl;题 5.分析以下程序的执行结果 #includeclass Slen; public:Sle(i)n=i;operator+()n+;/ 前缀重载运算符operator+( void disp()n+=2;/ 后缀重载运算符coutn=nendl;void main()S A+;+B;le A(2),B(2);
28、/调用后缀重载运算符/ 调用前缀重载运算符disp();disp();题 6.设计一个三角形类 Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。解:在Triangle 类中设计一个函数operator+(Triangle t1,Triangle t2),它重载运算符+,返回t1 和t2 两个三角形的面积之和。本题程序如下:#include #include class Trianglex,y,z; double area; public:Triangle(double s;i,j,k)x=i;y=j;z=k; s=(x+y+z)/
29、2.0;area=sqrt(s*(s-x)*(s-y)*(s-z);void disparea()coutArea=areaendl;friend double operator+(Triangle t1,Triangle t2)return t1.area+t2.area;void main()Triangle t1(3,4,5),t2(4,5,6); double s;coutt1:; t1.disparea();coutt2:; t2.disparea(); s=t1+t2;cout总面积=sendl;本程序执行结果如下: t1:Area=6 t2:Area=9.92157总面积=15.9216题 9.在Time 类中设计如下重载运算符函数:Time operator+(Time); Time operator-(Time);本题程序如下:#include class Timehour,minute,second; public:Time()返回一时间加上另一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑承包合同模板2024
- 2025店铺出租合同书范文
- 2025认购权合同书范文
- 科技安全如何有效设计培训课程
- 课题申报参考:量化自我技术中的数据保护研究
- 2024年高纯氧化铌、氧化钽项目资金申请报告代可行性研究报告
- 通过艺术培养孩子的领导力与团队协作能力
- 【研报】漂浮式海上风电专题研究:向深远海进发
- 二零二五年度360有钱联盟(战略版)大数据分析合作框架合同2篇
- 2025年标准存货质押合同模板
- 《天润乳业营运能力及风险管理问题及完善对策(7900字论文)》
- 医院医学伦理委员会章程
- xx单位政务云商用密码应用方案V2.0
- 2024-2025学年人教版生物八年级上册期末综合测试卷
- 动土作业专项安全培训考试试题(带答案)
- 大学生就业指导(高职就业指导课程 )全套教学课件
- 死亡病例讨论总结分析
- 第二章 会展的产生与发展
- 空域规划与管理V2.0
- JGT266-2011 泡沫混凝土标准规范
- 商户用电申请表
评论
0/150
提交评论