c++面向对象程序设计试题和答案(经典题目)_第1页
c++面向对象程序设计试题和答案(经典题目)_第2页
c++面向对象程序设计试题和答案(经典题目)_第3页
c++面向对象程序设计试题和答案(经典题目)_第4页
c++面向对象程序设计试题和答案(经典题目)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、填空题(每空1分,共14分)1、观看以下程序:ClaSS POintpublic:VOid ShOW () cout<< , Point n «endl;;VOiCl mai n ()POi nt Pl;POi nt *p;P=&p1;p1.show () 通过对象PI访问ShOW函数p.show () 通过指针P访问ShOW函数2、在C+啖中可以包含一公共一、一保护和一私有一三种具有不同访问控制权的成员。3、定义类时,在类头中将使用关键字 _ClaSS来表示类定义的开始。4、如果一个类中至少有一个纯虚函数,则该类称为 抽象类 o5、C+类的组成包括数据成员和成员

2、函数 ,友元一是一(是、不是)该类的成员函数。6、友员函数是用关键字 friend 修饰的非成员函数。7、若有:int i;int &j=i;i=10;j=i+1;贝 Hi=II , j=11o& new的功能是分配内存空间, delete的功能是释放内存空间o十五、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是(A)数据封装(B)继承(C)多态性(D)模板2、( B)是给变量取一个别名,它引入了变量的同意词。(A) 指针(B)弓I甩C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。(A) Share (B)

3、 PUbliC (C) PriVate(D) PrOteCted4、关于构造函数,下列说法不正确的是()(A) 构造函数名字和类名相同(B) 构造函数在创建对象时自动执行n4÷牡 H 来ZT 工TEH3ltf)F; E *ll5、派生类可以访问其基类的()o(B)保护成员(D)公有和保护成员)o(A) 公有成员(C) 私有派生6、下列关于运算符重载的描述中,错误的是(A) 运算符重载不可以改变操作数的个数(B) 运算符重载不可以改变运算符的功能(C) 运算符重载不可以改变结合方向(D) 运算符重载不可以改变运算优先级7、C+语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求

4、解问题方法上进行的最大改进是()(A)面向过程但)面向对象(C)安全性Q)复用性8对于类中定义的成员,其隐含访问权限为()。A . PUbIiCB. PrOteCtedC DriVateD. StatiC9、下面有关重载函数的说法中正确的是()(A)重载函数必须具有不冋的返回值类型;(B)重载函数形参个数必须不冋;(C)重载函数必须有不冋的形参列表(D)重载函数名可以不冋;IOX有如下的对类U CSamPle的说明,其中( ClaSS CSamPle A. int a=23;B. CSamPle();public:C. CSamPle(i nt val);D. CSamPIe();)是错误的。

5、11、在 int a=3,int *p=&a;中,*p 的值是(丿A.C.变量P的地址值D.312、每个类()构造函数。(A)只能有一个(C)可以有多个(B) 只可有公有的(D) 只可有缺省的13、对一个操作符进行(在一个类中可以 )重载。(A)1种 (B) 2种以下 (C) 3种以下(D)14、在公有继承的情况下,基类非私有成员在Wi问权 限多种()(D)不受保护#in elude <iostream.h>ClaSS BaSepublic:Vij id fun ()cout«"Base:fu n',< a ;ClaSS DeriVeCI:

6、PUbliC BaSe VOid fun()/显示调用基类的函数fun()COUtVv”DeriVed:fu n< <ENDL;;(A) fun () ;(B)(C) Base:fu n();(D) Base->fun();Base.fUn ();#in ClUde <iostream.h> ClaSS BASEChar c;public:BASE(Char n):c( n) VirtUal BASE()coutvvc;CIaSS DERlVED:PUbIiC BASEChar c;public:DERIVED(Char n):BASE( n+1),c( n) -

7、DERlVED()cout<<c;);int mai n()DERIVED a(fX,);return O;(A) XY (B) YX( C)(D) YX)17、下面描述中,表达错误懺it成员在派生类中仍是PUbliC的(A)公有继承时基类中的PriVate成员在派生类中仍是PriVate的PrOteCted(B) 公有继承是基类中的成员在派生类中仍是PrOteCted的PUbIiC(C) 公有继承时基类中的成员在派生类中是PriVate的18、定义析构函数时,应该注意()(A)其名与类名完全相同(C) 无形参,也不可重载(B)返回类型是VOid类型(D)函数体中必须有 delet

8、e语句19、对于在类中定义的静态数据成下面TF确的说法是(A. 该类的每个对象中都有一个静态数据成员B. 对象创建时产生C. 在类外进行初始化D. 既可以在类外初始化,也可以在类内初始化20、C+冲声明常量的关键字是( )oA. COnSt B. exter nC. PUbliC D. enum-六、改错题(每处2分,共6分)main.cpp,11、使用VC6打开考生文件夹下的工程PrOjl ,此工程包含一个源程序文件该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: member=Omember=5men bci-10源程序文件main.cpp清单如下:扌 ilichl (b

9、 <iostream.h>Cki 朋 MyCIaSSPiihIi c:MyClaSs(i nt i)member=i;)VOid SetMember(i nt In)member=m;)int GetMemberOC On streturn men ber;VOid Prin t()co ntcout<<"member="<<MEMBER<<ENDL;)Pri viilc:int member;Vui.xl mai n()MyClaSS objl; / 更正 _ ObjLPri nt();MyClaSS obj2(3);Obj

10、l .member=5; / 更正 MyCIaSS.SetMember(IO); / Objl .pri nt();obj2.pri nt();更正十七、写出下列程序的执行结果(每小题5分,共20分)IX#in clude<iostream.h>ClaSS SamPleint n;public:SamPle(i nt i) n=i;friend int add(Sample &s1 ,Sample &s2);;int add(Sample & SI ,Sample & s2)retur n Sl. n+s2 .n;VOid mai n()SamPle

11、 SI(IO),s2(20);cout<<add(s1 ,s2)<<e ndl;执行结果是:#in clude<iostream.h>int add(i nt x,i nt y)retur n x+y+1;double add(double x5double y)return x+y-1;VOiCl mai n()int a=2,b=4;double c=2.6,d=7.4; cout<<add(a,b)<<",'<<add(c,d)<<e ndl;执行结果是:3、#in clude<i

12、ostream.h>ClaSS Apublic:int n;;ClaSS B:VirtUal PUbIiC A;ClaSS C:VirtUal PUbIiC A;ClaSS D:PUbIiC B,public Cint get n( )return B: n;VOid mai n()Dd;d.B: n=10;d.C: n=20;cout<<d.B: nv v","vvd.C: nvVen dl;执行结果是:4、#in elude <iostream.h>ClaSS myclassint a,b;StatiC int s;public:mycla

13、ss(i nt x,i nt y)a=x;b=y;s+;VOiCl Prin t()cout<<s<<e nClI;int myclass:s=O;VOiCl mai n()myclass ml (1,2),m2(4,5),m3(6,7);ml .pri nt();m2.pri nt();m3.pri nt();执行结果是:十八、编程题(每题10分、共30分)1、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能 计算矩形的面积。(10分)2、定义一boat与Car两个类,二者都有Weight属性,定义二者的一个友元函数totalwei

14、ght(),计算二者的重量和。(IO分)1、3、设计一个汽车类vehicle,包含的数据成员有车轮个数WheelS和车重WeightO小车类Car是它的派生类,其中包含载人数PaSSengerJOadO每个类都有相关数据的输出方法。在主程序中定义一个Car类对象,对其车轮个数、车重、载人数进行设置并显示。(IO分)一、填空题(每空1分,共14分)(1) p1.show () ; p->show ()( 2)公有、私有、保护(3) ClaSS ( 4)抽象类(5)成员函数、不是 (6) friend ( 7) 11、11( 8)动态申请内存空间、释放由new申请的空间1、DIlX DA选择

15、题(每小题1占分,共3°分丿2、B3、C4、D5、D12、C 13、D14、B 15、C6、B7、B8、C16、A 17、BI8、C9、 C10、 A19、C 20、三、改错题(每错2分,共6分)MyClaSS ObjI (0); ObjI .SetMember(5);obj2.SetMembr(10);四、写出下列程序的执行结果(每小题5分,共20分)(1)30 ( 5 分)(2)7 9(每个2.5分)(3)2020 (每个2.5分丿(4)3(:2分)3(:2分)3(:1分)五、 编程题(每题10分、共30分)#in ClUde <iostream.h>#in elud

16、e <math.h>CIaSS rectangle (2 分)private:intx1,y1,x2,y2;/(2 分)public:recta ngle(i nt xx1 ,i nt yy1 Ji nt xx2,i nt yy2) (1 分)X 仁 xx 1; y 仁 yy1 ;x2=xx2;y2=yy2;int getarea() (2 分丿return abs(x2_x1)*(y1_y2);;VOid ITlai n()rectangle rect1 (3,7,8,5); (2 分丿cout<<rect1 .getarea()<<e ndl; (1 分

17、)2、(10分丿#i nClUde <iostream.h>ClaSS car; (1 分)ClaSS boat private:int weight; (1 分丿public:boat(i nt w):Weight(w) (1 分丿friend int totalweight(boat b1 ,car d); (2 分丿;ClaSS car /(1 分丿private:int weight; (1 分丿public:car(i nt w):Weight(W);friend int totalweight(boat b1 ,car CI); (1 分);int totalweigh

18、t(boat b1 ,car CI) (1 分丿return bl.weight+cl.weight;VOiCl mai n()Car CI(IOO0);boat b1 (2000);cout<<totalweight(b1 JCI )<<e ndl;(1 分)3、(10分丿#in clude<iostream.h>CIaSS VehiCle 定义汽车类(3分丿protected:int wheels; /车轮数float weight; / 重量public:VehiCle(i nt WheelS,float weight);int get_WheelS();float get_Weight();float WheeIJOad();VOiel ShOW();;CIaSS car:PUbliC VehiCle / 定义小车类 (3 分丿int PaSSe ngerIOaCI; 载人数 public:car(i nt WheelS,float WeightJ nt PaSSe ngers=4); int get_PaSSe ngers();VOiel ShOW();VehiCle:Veh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论