c++面向对象程序设计试题和答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

——第1页——系名____________班级____________姓名____________学号____________密封线内不答题一、填空题(每空1分,共14分)1、观看以下程序:classpoint{public:voidshow(){cout”point”endl;}};voidmain(){pointp1;point*p;p=&p1;_______________//通过对象p1访问show函数______________//通过指针p访问show函数}2、在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。3、定义类时,在类头中将使用关键字_____________来表示类定义的开始。4、如果一个类中至少有一个纯虚函数,则该类称为________________。5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。6、友员函数是用关键字____________修饰的非成员函数。7、若有:inti;int&j=i;i=10;j=i+1;则i=__________,j=__________。8、new的功能是____________________,delete的功能是____________________。二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。——第2页——(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。(A)share(B)public(C)private(D)protected4、关于构造函数,下列说法不正确的是()。(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)只可有公有的——第3页——系名____________班级____________姓名____________学号____________密封线内不答题(C)可以有多个(D)只可有缺省的13、在一个类中可以对一个操作符进行()重载。(A)1种(B)2种以下(C)3种以下(D)多种14、在公有继承的情况下,基类非私有成员在派生类中的访问权限()(A)受限制(B)保持不变(C)受保护(D)不受保护15、应在下列程序划线处填入的正确语句是()#includeiostream.hclassBase{public:fun(){coutBase::funENDL;}};classDerived:publicBase{voidfun(){_____________//显示调用基类的函数fun()coutDerived::funENDL;};(A)fun();(B)Base.fun();(C)Base::fun();(D)Base-fun();16、执行下面的程序将输出()#includeiostream.hclassBASE{charc;public:BASE(charn):c(n){}virtual~BASE(){coutc;}};classDERIVED:publicBASE{charc;public:DERIVED(charn):BASE(n+1),c(n){}~DERIVED(){coutc;}};intmain(){DERIVEDa('X');——第4页——return0;}(A)XY(B)YX(C)X(D)Y17、下面描述中,表达错误的是()(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分)1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:member=0源程序文件main.cpp清单如下:iostream.hMyClass{MyClass(inti){member=i;}voidSetMember(intm){member=m;}intGetMember()const{returnmenber;}voidprint()cont{coutmember=MEMBERENDL;}——第5页——系名____________班级____________姓名____________学号____________密封线内不答题intmember;main()MyClassobj1;//更正_____________________________obj1.print();MyClassobj2(3);obj1.member=5;//更正__________________________MyClass.SetMember(10);//更正_______________________obj1.print();obj2.print();四、写出下列程序的执行结果(每小题5分,共20分)1、#includeiostream.hclassSample{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);coutadd(s1,s2)endl;}执行结果是:2、——第6页——#includeiostream.hintadd(intx,inty){returnx+y+1;}doubleadd(doublex,doubley){returnx+y-1;}voidmain(){inta=2,b=4;doublec=2.6,d=7.4;coutadd(a,b),add(c,d)endl;}执行结果是:3、#includeiostream.hclassA{public:intn;};classB:virtualpublicA{};classC:virtualpublicA{};classD:publicB,publicC{intgetn(){returnB::n;}};voidmain(){Dd;——第7页——系名____________班级____________姓名____________学号____________密封线内不答题d.B::n=10;d.C::n=20;coutd.B::n,d.C::nendl;}执行结果是:4、#includeiostream.hclassmyclass{inta,b;staticints;public:myclass(intx,inty){a=x;b=y;s++;}voidprint(){coutsendl;}};intmyclass::s=0;voidmain(){myclassm1(1,2),m2(4,5),m3(6,7);m1.print();m2.print();m3.print();}执行结果是:五、编程题(每题10分、共30分)1、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。(10分)2、定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。(10分)——第8页——3、设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的派生类,其中包含载人数passenger_load。每个类都有相关数据的输出方法。在主程序中定义一个car类对象,对其车轮个数、车重、载人数进行设置并显示。(10分)一、填空题(每空1分,共14分)(1)p1.show();p-show()(2)公有、私有、保护(3)class(4)抽象类(5)成员函数、不是(6)friend(7)11、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分)(1)30(5分)(2)79(每个2.5分)(3)2020(每个2.5分)(4)3(2分)3(2分)3(1分)五、编程题(每题10分、共30分)1、#includeiostream.h#includemath.h——第9页——系名____________班级____________姓名____________学号____________密封线内不答题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分)coutrect1.getarea()endl;(1分)}2、(10分)#includeiostream.hclasscar;(1分)classboat{private:i

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功