c面向对象程序设计试题和答案汇总Word下载.docx
《c面向对象程序设计试题和答案汇总Word下载.docx》由会员分享,可在线阅读,更多相关《c面向对象程序设计试题和答案汇总Word下载.docx(19页珍藏版)》请在冰点文库上搜索。
1、以下特点中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板
2、()是给变量取一个别名,它引入了变量的赞成词。
(A)指针(B)引用(C)列举(D)构造
3、类成员的接见权限中,()只能被本类的成员函数和其友元函数接见。
(A)share(B)public(C)private(D)protected
4、关于构造函数,以下说法不正确的选项是()。
(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.protected
C.privateD.static
9、下面相关重载函数的说法中正确的选项是()
(A)重载函数必定拥有不相同的返回值种类;
(B)重载函数形参个数必定不相同;
(C)重载函数必定有不相同的形参列表(D)重载函数名可以不相同;
10、有以下的对类“CSample”的说明,其中()是错误的。
classCSample{
A.inta=23;
B.CSample(;
C.CSample(intval;
D.~CSample(;
11、在inta=3,int*p=&
a;
中,*p的值是(
A.变量a的地址值B.没心义
C.变量p的地址值
12、每个类()构造函数。
A)只能有一个(B)只可有公有的
C)可以有多个(D)只可出缺省的
13、在一个类中可以对一个操作符进行()重载。
(A)1种(B)2种以下(C)3种以下(D)多种
14、在公有继承的情况下,基类非私有成员在派生类中的接见权限()
(A)受限制(B)保持不变(C)受保护(D)不受保护
15、应在以下程序划线处填入的正确语句是()
#include
classBase
{public:
voidfun({cout<
"
Base:
:
fun"
classDerived:
publicBase
{voidfun(
{_____________//显示调用基类的函数fun(
cout<
Derived:
(A)fun(;
(B)Base.fun(;
(C)Base:
fun(;
(D)Base->
16、执行下面的程序将输出()
classBASE{
charc;
BASE(charn:
c(n{}
virtual~BASE({cout<
classDERIVED:
publicBASE{
DERIVED(charn:
BASE(n+1,c(n{}
~DERIVED({cout<
intmain(
{DERIVEDa('
X'
;
return0;
(A)XY(B)YX(C)X(D)Y
17、下面描述中,表达错误的选项是(
)
(A)公有继承时基类中的(B)公有继承是基类中的
publicprivate
成员在派生类中仍是
public的
private
的
(C)公有继承时基类中的
protected
(D)私有继承时基类中的
public
成员在派生类中是
18、定义析构函数时,应该注意(
A)其名与类名完好相同(B)返回种类是void种类
C)无形参,也不可以重载(D)函数体中必定有delete语句
19、关于在类中定义的静态数据成员,下面正确的说法是()
该类的每个对象中都有一个静态数据成员
对象创办时产生
C.在类外进行初始化
既可以在类外初始化,也可以在类内初始化
20、C++中声明常量的要点字是()。
A.constB.externC.publicD.enum
三、改错题(每处2分,共6分
1、使用VC6打开考生文件夹下的工程proj1,此工程包括一个源程前言件main.cpp,但该
程序运行有问题,请更正main函数中的错误,使程序的输出结果为:
member=0
member=5
menber=10
源程前言件清单以下:
classMyClass
MyClass(inti{member=i;
voidSetMember(intm{member=m;
intGetMember(const{returnmenber;
voidprint(cont{cout<
member="
private:
intmember;
voedmain(
MyClassobj1;
//更正_____________________________
obj1.print(;
MyClassobj2(3;
obj1.member=5;
//更正__________________________
MyClass.SetMember(10;
//更正_______________________
obj2.print(;
四、写出以下程序的执行结果(每题
5分,共20分)
1、
classSample
{intn;
Sample(inti{n=i;
friendintadd(Sample&
s1,Sample&
s2;
intadd(Sample&
s2
returns1.n+s2.n;
Samples1(10,s2(20;
执行结果是:
2、
intadd(intx,inty
returnx+y+1;
doubleadd(doublex,doubley
returnx+y-1;
inta=2,b=4;
doublec=2.6,d=7.4;
3、
classA
intn;
classB:
virtualpublicA{};
classC:
classD:
publicB,publicC
intgetn({returnB:
n;
d;
d.B:
n=10;
d.C:
n=20;
4、
classmyclass
inta,b;
staticints;
myclass(intx,inty
{a=x;
b=y;
s++;
voidprint(
{cout<
intmyclass:
s=0;
myclassm1(1,2,m2(4,5,m3(6,7;
m1.print(;
m2.print(;
m3.print(;
五、编程题(每题10分、共30分
3、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,
能计算矩形的面积。
(10分
4、定义一boat与car两个类,二者都有totalweight(,计算二者的重量和。
weight
属性,定义二者的一个友元函数
5、设计一个汽车类
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申请的
空间
二、选择题(每题分,共30分
1、D2、B3、C4、D5、D6、B7、B8、C9、C10、A11、D12、C13、D14、B15、C
16、A17、B18、C19、C20、A
三、改错题(每错2分,共6分
MyClassobj1(0;
obj1.SetMember(5;
obj2.SetMember(10;
四、写出以下程序的执行结果(每题5分,共20分)
1)30(5分)
2)79(每个分
3)2020(每个分
4)
3(2分)
3(1分)
五、编程题(每题10分、共30分)
classrectangle//(2分
intx1,y1,x2,y2;
//(2分
rectangle(intxx1,intyy1,intxx2,intyy2//(1分
x1=xx1;
y1=yy1;
x2=xx2;
y2=yy2;
intgetarea(//(2分
returnabs((x2-x1*(y1-y2;
rectanglerect1(3,7,8,5;
(2分
分
2、(10分
classcar;
(1分)
classboat{
intweight;
//(1分
boat(intw:
weight(w{}//(1分
friendinttotalweight(boatb1,carc1;
classcar{/(1分
(1分
car(intw:
weight(w{};
(1分
inttotalweight(boatb1,carc1//(1分
returnb1.weight+c1.weight;
carc1(1000;
boatb1(2000;
3、(10分
classvehicle//定义汽车类(3分
protected:
intwheels;
//车轮数
floatweight;
//重量
vehicle(intwheels,floatweight;
intget_wheels(;
floatget_weight(;
floatwheel_load(;
voidshow(;
classcar:
publicvehicle//定义小车类(3分
intpassenger_load;
//载人数
car(intwheels,floatweight,intpassengers=4;
intget_passengers(;
vehicle:
vehicle(intwheels1,floatweight1//(1分
wheels=wheels1;
weight=weight1;
intvehicle:
get_wheels(
returnwheels;
floatvehicle:
get_weight(
returnweight;
voidvehicle:
show((1分
车轮:
wheels<
个"
endl;
重量:
weight<
公斤"
car:
car(intwheels,floatweight,
intpassengers:
vehicle(wheels,weight
passenger_load=passengers;
intcar:
get_passengers(
returnpassenger_load;
voidcar:
车型:
小车"
show(;
载人:
passenger_load<
人"
carcar1(4,2000,5;
输出结果"
car1.show(;