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

下载本文档

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

文档简介

.9/10密封线内不答密封线内不答题系名____________班级____________姓名____________学号____________填空题〔每空1分,共14分观看以下程序:classpoint{public:voidshow<>{cout<<"point"<<endl;}};voidmain<>{pointp1;point*p;p=&p1;______p1.show<>_________//通过对象p1访问show函数_______p.show<>_______//通过指针p访问show函数}在C++类中可以包含___公共___、___保护_____和___私有__三种具有不同访问控制权的成员。定义类时,在类头中将使用关键字__class_____来表示类定义的开始。如果一个类中至少有一个纯虚函数,则该类称为_______抽象类_________。C++类的组成包括数据成员和______成员函数________,友元__是___〔是、不是该类的成员函数。友员函数是用关键字_____friend_______修饰的非成员函数。若有:inti;int&j=i;i=10;j=i+1;则i=____11_____,j=___11______。8、new的功能是_______分配内存空间______,delete的功能是______释放内存空间______________。选择题<每小题1.5分,共30分>1、下列特性中不是面向对象程序设计语言所特有的是〔D。〔A数据封装 〔B继承〔C多态性 〔D模板2、〔B是给变量取一个别名,它引入了变量的同意词。〔A指针 〔B引用 〔C枚举 〔D结构3、类成员的访问权限中,〔只能被本类的成员函数和其友元函数访问。〔Ashare 〔Bpublic 〔Cprivate 〔Dprotected4、关于构造函数,下列说法不正确的是〔。〔A构造函数名字和类名相同〔B构造函数在创建对象时自动执行〔C构造函数无任何函数返回类型〔D构造函数有且只有一个5、派生类可以访问其基类的〔。〔A公有成员〔B保护成员〔C私有派生〔D公有和保护成员6、下列关于运算符重载的描述中,错误的是〔。〔A运算符重载不可以改变操作数的个数〔B运算符重载不可以改变运算符的功能〔C运算符重载不可以改变结合方向〔D运算符重载不可以改变运算优先级7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是〔〔A面向过程〔B面向对象〔C安全性〔D复用性8、对于类中定义的成员,其隐含访问权限为〔。A.publicB.protectedC.privateD.static9、下面有关重载函数的说法中正确的是〔〔A重载函数必须具有不同的返回值类型;〔B重载函数形参个数必须不同;〔C重载函数必须有不同的形参列表〔D重载函数名可以不同;10、有如下的对类"CSample"的说明,其中〔是错误的。classCSample{A.inta=23;B.CSample<>;public:C.CSample<intval>;D.~CSample<>;11、在inta=3,int*p=&a;中,*p的值是<>A.变量a的地址值B.无意义C.变量p的地址值D.312、每个类〔构造函数。〔A只能有一个〔B只可有公有的〔C可以有多个〔D只可有缺省的13、在一个类中可以对一个操作符进行〔重载。〔A1种〔B2种以下〔C3种以下〔D多种14、在公有继承的情况下,基类非私有成员在派生类中的访问权限〔〔A受限制〔B保持不变〔C受保护〔D不受保护15、应在下列程序划线处填入的正确语句是〔#include<iostream.h>classBase{public:voidfun<>{cout<<"Base::fun"<<ENDL;}};classDerived:publicBase{voidfun<>{_____________//显示调用基类的函数fun<>cout<<"Derived::fun"<<ENDL;}};〔Afun<>;〔BBase.fun<>;〔CBase::fun<>;〔DBase->fun<>;16、执行下面的程序将输出〔#include<iostream.h>classBASE{ charc; public: BASE<charn>:c<n>{} virtual~BASE<>{cout<<c;} };classDERIVED:publicBASE{ charc;public: DERIVED<charn>:BASE<n+1>,c<n>{} ~DERIVED<>{cout<<c;}};intmain<>{DERIVEDa<'X'>;return0;}〔AXY

〔BYX

〔CX

〔DY下面描述中,表达错误的是〔〔A公有继承时基类中的public成员在派生类中仍是public的〔B公有继承是基类中的private成员在派生类中仍是private的〔C公有继承时基类中的protected成员在派生类中仍是protected的〔D私有继承时基类中的public成员在派生类中是private的18、定义析构函数时,应该注意〔〔A其名与类名完全相同〔B返回类型是void类型〔C无形参,也不可重载〔D函数体中必须有delete语句19、对于在类中定义的静态数据成员,下面正确的说法是〔A.该类的每个对象中都有一个静态数据成员B.对象创建时产生C.在类外进行初始化D.既可以在类外初始化,也可以在类内初始化20、C++中声明常量的关键字是〔。A.constB.externC.publicD.enum改错题<每处2分,共6分>使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:member=0member=5menber=10源程序文件main.cpp清单如下:#include<iostream.h>class

MyClass{public:MyClass<int

i>{member=i;}void

SetMember<int

m>{member=m;}int

GetMember<>const{return

menber;}void

print<>cont{cout<<"member="<<MEMBER<<ENDL;}private:int

member;};voed

main<>{MyClass

obj1;//更正_____________________________obj1.print<>;MyClass

obj2<3>;obj1.member=5;//更正__________________________MyClass.SetMember<10>;//更正_______________________obj1.print<>;obj2.print<>;}写出下列程序的执行结果〔每小题5分,共20分#include<iostream.h>classSample{intn;public:Sample<inti>{n=i;}friendintadd<Sample&s1,Sample&s2>;};intadd<Sample&s1,Sample&s2>{returns1.n+s2.n;}voidmain<>{Samples1<10>,s2<20>;cout<<add<s1,s2><<endl;}执行结果是:#include<iostream.h>intadd<intx,inty>{returnx+y+1;}doubleadd<doublex,doubley>{returnx+y-1;}voidmain<>{inta=2,b=4;doublec=2.6,d=7.4;cout<<add<a,b><<","<<add<c,d><<endl;}执行结果是:3、#include<iostream.h>classA{public:intn;};classB:virtualpublicA{};classC:virtualpublicA{};classD:publicB,publicC{intgetn<>{returnB::n;}};voidmain<>{Dd;d.B::n=10;d.C::n=20;cout<<d.B::n<<","<<d.C::n<<endl;}执行结果是:4、#include<iostream.h>classmyclass{inta,b;staticints;public:myclass<intx,inty>{a=x;b=y;s++;}voidprint<>{cout<<s<<endl;}};intmyclass::s=0;voidmain<>{myclassm1<1,2>,m2<4,5>,m3<6,7>;m1.print<>;m2.print<>;m3.print<>;}执行结果是:编程题<每题10分、共30分>测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。<10分>定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight<>,计算二者的重量和。<10分>设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的派生类,其中包含载人数passenger_load。每个类都有相关数据的输出方法。在主程序中定义一个car类对象,对其车轮个数、车重、载人数进行设置并显示。<10分>填空题<每空1分,共14分>〔1p1.show<>;p->show<>〔2公有、私有、保护〔3class〔4抽象类〔5成员函数、不是〔6friend〔711、11〔8动态申请内存空间、释放由new申请的空间选择题<每小题1.5分,共30分>1、D2、B3、C4、D5、D6、B7、B8、C9、C10、A11、D12、C13、D14、B15、C16、A17、B18、C19、C20、A改错题<每错2分,共6分>MyClassobj1<0>;obj1.SetMember<5>;obj2.SetMember<10>;写出下列程序的执行结果〔每小题5分,共20分〔130〔5分〔279<每个2.5分>〔32020<每个2.5分>〔43〔2分3〔2分3〔1分编程题〔每题10分、共30分1、#include<iostream.h>#include<math.h>classrectangle//<2分>{private: intx1,y1,x2,y2;//<2分>public: rectangle<intxx1,intyy1,intxx2,intyy2>//<1分> { x1=xx1;y1=yy1;x2=xx2;y2=yy2; } intgetarea<>//<2分> { returnabs<<x2-x1>*<y1-y2>>; }};voidmain<>{ rectanglerect1<3,7,8,5>;<2分> cout<<rect1.getarea<><<endl;<1分>}2、<10分>#include<iostream.h>classcar;〔1分classboat{private: intweight;//<1分>public: boat<intw>:weight<w>{}//<1分> friendinttotalweight<boatb1,carc1>;//<2分>};classcar{/<1分>private: intweight;<1分>public: car<intw>:weight<w>{}; friendinttotalweight<boatb1,carc1>;<1分>};inttotalweight<boatb1,carc1>//<1分>{ returnb1.weight+c1.weight;}voidmain<>{ carc1<1000>; boatb1<2000>; cout<<totalweight<b1,c1><<endl;<1分>}3、<10分>#include<iostream.h>classvehicle//定义汽车类<3分>{protected:intwheels;//车轮数floatweight;//重量public:vehicle<intwheels,floatweight>;intget_wheels<>;floatget_weight<>;floatwheel_load<>;voidshow<>;};classcar:publicvehicle//定义小车类<3分>{intpassenger_load;//载人数public:car<intwheels,floatweight,intpassengers=4>;intget_passengers<

温馨提示

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

评论

0/150

提交评论