C++面向对象程序设计模拟试题四1_第1页
C++面向对象程序设计模拟试题四1_第2页
C++面向对象程序设计模拟试题四1_第3页
C++面向对象程序设计模拟试题四1_第4页
C++面向对象程序设计模拟试题四1_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

c++面向对象程序设计模拟试题四

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选

项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均

无分。

1.下列关于C++函数的说明中,正确的是()。

A)内联函数就是定义在另一个函数体内部的函数

B)函数体的最后一条语句必须是rciurn语句

C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型

D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的无参构造

函数。

A)voidMyClass():B)-MyClass(intn);C)MyClass();D)-MyClass();

3.下列叙述中,错误的是()。

A)派生类可以使用private派生

B)对基类成员的访问必须是无二义性的

C)基类成员的访问能力在派生类中维持不变

D)赋值兼容规则也适用于多继承的组合

4.当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中

()O

A.都是虚函数B.只有被重新说明为viltual时才是虚函数

C.都不是虚函数D.上面都不正确

5.派生类的构造函数的成员初始化表中,不能包含()o

A)基类的构造函数B)派生类中子对象的初始化

C)基类中子对象的初始化D)派生类中一般数据成员的初始化

6.下列是重载加法运算符的函数原型声明,其中错误的是(

A)MyCIassoperator+(double,double);

B)MyCIassoperator+(double,MyClass);

C)MyCIassopcrator-i-(MyClass,double);

D)MyCIassoperator+(MyClass,MyCIass);

7.派生类中的成员不能直接访问基类中的()成员。

A)publicB)privateC)virtualD)protected

8.实现运行时的多态性要使用()o

A)重载函数B)析构函数C)构造函数D)虚函数

9.如果在类MyCIass的外面使用函数调用MyClass::f();则函数f()是类MyCIass的

(r

A.静态成员函数B.非静态成员函数

C.友元函数D.前面都不正确

10.由于常对象不能被更新,因此()。

A)通过常对象只能调用它的常成员函数

B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员

D)通过常对象可以调用任何不改变对象值的成员函数

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写

在每小题的空格内。错填或不填均无分。

I.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用

的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体

中的内容。

2.声明类模板应使用关键字()。

3.重载的关系运算符和逻辑运算符的返回类型应当是(

4.在面向对象方法中,类的实例称为()。

5.在类的对象被释放时,()函数会被自动调用。

三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请

将程序补充完整,

1.请完成下面的程序

#includc<iostrcam>//预处理命令

usingnamespacestd;II使用标准命名空间std

//测试静态成员类

classTest

{

private:

inca;//数据成员

public:

Test(intx=0):HII}H构造函数

voidShow(){coin«"a:H«a«endl:}〃显示数据成员之值

};

intmain(void)//主:函数main(void)

j

Testobj(l68);H定义对象

obj.Show();//显示数据成员之值

return0;//返回值0,返回操作系统

)

2.请完成下面的程序

#include<iostream>//预处理命令

usingnamespacestd://使用标准命名空间sld

//整数类

classInteger

private:

mta;//数据成员

public:

Integer(intx=0){a=x;}//构造函数

1210{returra;)//类型转换函数(将类类型转换为整型)

intinain(void)〃主函数inain(void)

{

Integera=6;//定义整数对象

cou(«a«endl;//显示整数

return0;//返回值0,返网操作系统

}

3.请完成下面的程序

#include<iostreani>//预处理命令

usingnamespacestd;//使用标准命名空间sld

〃发数类

classComplex

private:

doublerealPart;U实部

doubleimagePart;//虚部

public:

Complex(doublered=0,doubleimage=0):realPart(real),imagePart(image)(}〃构造函数

doubleGe(RealPart<)const{returnrealPart:)//返回实部

doubleGctlinageParlOconst{returnimagePart;}//返回虚部

Complexoperator+(constComplex&a)const//重载加法运算符+

returnComplcxf(31)://返回和

}

};

intmain(void)//主函数niain(void)

Complexa(l.2).b(2.6),c://定义复数对象

c=a+b;//身数加法运算

cout«"a="«a.CctRcalPartO««a.GctImagcPart()«"i"«endk//故示a

couc«"b="«b.GetRealPartO«"+"«b.GetImagePan()«"i"«endl;//显示b

cou(«"c="«c.GetRealPartO«"+"«c.GeihnageParU)«"i"«endk//显示c

return0;//返回值0.返回操作系统

四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结

果。

I.阅读下面程序,写出渝出结果。

#include<iostream>//预处理命令

usingnamespacestd;//使用标准命名空间ski

classA

{

public:

virtualvoidShow()const

{cout«"ClassA"«endl:}

);

classB:publicA

{

public:

voidShow()const

{cout«"ClassB"«cndl:}

};

voidShow(constA&obji

{obj.Show();}

intmain(void)

(

Aa;Bb:

Show(a);Show(b);

A*p;

p=&a;p->Shov/();

p=&b;p->Show();

B*q;

q=&b;q->Show();

return0;〃返回值0,返回操作系统

}

上面程序的输出结果为:

2.阅读下面程序,写出输出结果。

/include<iostream>//预处理命令

usingnamespaces(d:H使用标准命名空间std

template<classElcmTypc>

voidShow(Elemiypea[],intn)

{

for(inti=0;i<n;i++)

{cout«a[i)«"":}

}

intmain(void)

{

inta[]={I,6.9);

Show(a,sizcof(a)/sizcof(int));

Show(a.2);

cout«cndl;

return0;//返回值0.返回操作系统

}

上面程序的输出结果为:

3.阅读下面程序,写出输出结果。

#includc〈沁sircam>U预处理命令

usingnamespacestd;H使用标准命名空间sid

classMyClass

{

public:

MyClass(){count++:I

-MyClass(){cojnt-;}

staticintGetCount(j{returncount:)

private:

staticinicount;

};

intMyClass::count=0:〃初始化静态数据成员

intmain(void)

{

MyClassobjI;

cou(«MyClass::GetCount()«endl;

MyClassobj2;

cout«MyClass::GetCount()«endl;

MyClassobj3;

cout«objI.GelCounlO«endl;

MyClass*p=newMyClass;

couc«MyClass::GetCount()«endl;

deletep;

cout«MyClass::GetCount()«endl;

return0;//返回值0,返回操作系统

}

上面程序的输出结果为:

4.阅读下面程序,写出输出结果.

#include<iostream>//预处理命令

usingnamespacestd;〃使用标准命名空间sld

classA

{

public:

A(){cout«"A()"«endl:}

-A()(cout««endl;}

virtualvoidf(){cout««endl;}

};

classB:publicA

(

public:

B(){cout«"B()"«endi;}

~B(){cout«"~B()"«endl;)

voidR){cout««endl;}

};

intmain(void)

Bobj;

A*p=&obj;

p->f();

return0;〃返网值0,返网操作系统

上面程序的输出结果为:

六、编程题(本大题26分)

编写程序,定义抽象基类Shape(形状),由它派生出3个派生类:Circle(圆形)、

Reclangle(矩形)和Square(正方形),用函数函数ShowArea。分别显示各种图形的面积,最后

还要显示所有图形的总面积。

C++面向对象程序设计模拟试题四参考答巡查

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选

项中,只有一个是符合题目要求的.请将其代码填写在题后的括号内。错选、多选或未选均

无分。

I.C2.C3.C4.A5.C

6.A7.B8.D9.A10.A

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写

在每小题的空格内。错填或不填均无分。

I.参考答案:基类

2.参考答案:template

3.参考答案:bool或布尔型

4.参考答案:对象

5.参考答案:析构函数

三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请

将程序补充完整,

1.参考答案:⑴a(x)

2.参考答案:[2]operatorint

3.叁考答案:[3]realPart+a.realPart,itnagcPart+a.imagePart或this->rcalPar(+a.realPart.

this->imagePart+a.imagePart

四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结

果。

1.参考答案:

ClassA

ClassB

ClassA

ClassB

ClassB

2.参考答案:

16916

3.参考答案:

I

2

3

4

3

4.参考答案:

A()

B()

B::f()

~B()

~A()

六、编程题(本大题26分)

参考程序:

#includc<ioslrcam>//预处理命令

usingnamespacestd;//使用标准命名空间std

considoublePI=3.1415926;//定义常量P1

classShape

(

public:

Shape。{}//构造出数

virtual~Shapc(){}//析构函数

virtualShowAreaO=0;//显示面积

staticdoubletotalArea;//总面积

sialicvoidShowlbtalArca(){coul<<"总面积:''«tolalArca«cndl;}

classCircle:publicShape

{

private:

doubleradius;//半径

public:

Circle(doubler):radius(r){lotalArca+=PI*r*r;}构造函数

-Circle。{}//析构函数

virtualShowAreaO{cout«"圆面积:"<<PI*

温馨提示

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

评论

0/150

提交评论