C面向对象程序设计模拟试题四8.docx

上传人:b****4 文档编号:24278848 上传时间:2023-05-26 格式:DOCX 页数:14 大小:20.42KB
下载 相关 举报
C面向对象程序设计模拟试题四8.docx_第1页
第1页 / 共14页
C面向对象程序设计模拟试题四8.docx_第2页
第2页 / 共14页
C面向对象程序设计模拟试题四8.docx_第3页
第3页 / 共14页
C面向对象程序设计模拟试题四8.docx_第4页
第4页 / 共14页
C面向对象程序设计模拟试题四8.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C面向对象程序设计模拟试题四8.docx

《C面向对象程序设计模拟试题四8.docx》由会员分享,可在线阅读,更多相关《C面向对象程序设计模拟试题四8.docx(14页珍藏版)》请在冰豆网上搜索。

C面向对象程序设计模拟试题四8.docx

C面向对象程序设计模拟试题四8

封面

作者:

PanHongliang

仅供个人学习

C++面向对象程序设计模拟试卷四

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出地四个备选项中,只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.

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

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

B)函数体地最后一条语句必须是return语句

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

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

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

A)voidMyClass()。

B)~MyClass(intn)。

C)MyClass()。

D)~MyClass()。

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

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

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

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

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

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

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

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

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

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

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

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

A)MyClassoperator+(double,double)。

B)MyClassoperator+(double,MyClass)。

C)MyClassoperator+(MyClass,double)。

D)MyClassoperator+(MyClass,MyClass)。

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

A)publicB)privateC)virtualD)protected

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

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

9.如果在类MyClass地外面使用函数调用MyClass:

:

f();则函数f()是类MyClass地().

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

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

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

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

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

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

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

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确地答案写在每小题地空格内.错填或不填均无分.

1.对于派生类地构造函数,在定义对象时构造函数地执行顺序为:

先执行调用___________地构造函数,再执行调用子对象类地构造函数,最后执行派生类地构造函数体中地内容.

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

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

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

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

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

1.请完成下面地程序

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

//测试静态成员类

classTest

{

private:

inta。

//数据成员

public:

Test(intx=0):

[1]{}//构造函数

voidShow(){cout<<"a:

"<

}//显示数据成员之值

}。

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

{

Testobj(168)。

//定义对象

obj.Show()。

//显示数据成员之值

return0。

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

}

2.请完成下面地程序

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

//整数类

classInteger

{

private:

inta。

//数据成员

public:

Integer(intx=0){a=x。

}//构造函数

[2](){returna。

}//类型转换函数(将类类型转换为整型)

}。

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

{

Integera=6。

//定义整数对象

cout<

//显示整数

return0。

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

}

3.请完成下面地程序

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

//复数类

classComplex

{

private:

doublerealPart。

//实部

doubleimagePart。

//虚部

public:

Complex(doublereal=0,doubleimage=0):

realPart(real),imagePart(image){}//构造函数

doubleGetRealPart()const{returnrealPart。

}//返回实部

doubleGetImagePart()const{returnimagePart。

}//返回虚部

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

{

returnComplex([3])。

//返回和

}

}。

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

{

Complexa(1,2),b(2,6),c。

//定义复数对象

c=a+b。

//复数加法运算

cout<<"a="<

//显示a

cout<<"b="<

//显示b

cout<<"c="<

//显示c

return0。

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

}

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

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

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

classA

{

public:

virtualvoidShow()const

{cout<<"ClassA"<

}

}。

classB:

publicA

{

public:

voidShow()const

{cout<<"ClassB"<

}

}。

voidShow(constA&obj)

{obj.Show()。

}

intmain(void)

{

Aa。

Bb。

Show(a)。

Show(b)。

A*p。

p=&a。

p->Show()。

p=&b。

p->Show()。

B*q。

q=&b。

q->Show()。

return0。

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

}

上面程序地输出结果为:

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

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

template

voidShow(ElemTypea[],intn)

{

for(inti=0。

i

i++)

{cout<

}

}

intmain(void)

{

inta[]={1,6,9}。

Show(a,sizeof(a)/sizeof(int))。

Show(a,2)。

cout<

return0。

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

}

上面程序地输出结果为:

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

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

classMyClass

{

public:

MyClass(){count++。

}

~MyClass(){count--。

}

staticintGetCount(){returncount。

}

private:

staticintcount。

}。

intMyClass:

:

count=0。

//初始化静态数据成员

intmain(void)

{

MyClassobj1。

cout<

:

GetCount()<

MyClassobj2。

cout<

:

GetCount()<

MyClassobj3。

cout<

MyClass*p=newMyClass。

cout<

:

GetCount()<

deletep。

cout<

:

GetCount()<

return0。

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

}

上面程序地输出结果为:

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

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

classA

{

public:

A(){cout<<"A()"<

}

~A(){cout<<"~A()"<

}

virtualvoidf(){cout<<"A:

:

f()"<

}

}。

classB:

publicA

{

public:

B(){cout<<"B()"<

}

~B(){cout<<"~B()"<

}

voidf(){cout<<"B:

:

f()"<

}

}。

intmain(void)

{

Bobj。

A*p=&obj。

p->f()。

return0。

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

}

上面程序地输出结果为:

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

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

Circle(圆形)、Rectangle(矩形)和Square(正方形),用函数函数ShowArea()分别显示各种图形地面积,最后还要显示所有图形地总面积.

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

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出地四个备选项中,只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.

1.C2.C3.C4.A5.C

6.A7.B8.D9.A10.A

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确地答案写在每小题地空格内.错填或不填均无分.

1.参考答案:

基类

2.参考答案:

template

3.参考答案:

bool或布尔型

4.参考答案:

对象

5.参考答案:

析构函数

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

1.参考答案:

[1]a(x)

2.参考答案:

[2]operatorint

3.参考答案:

[3]realPart+a.realPart,imagePart+a.imagePart或this->realPart+a.realPart,this->imagePart+a.imagePart

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

1.参考答案:

ClassA

ClassB

ClassA

ClassB

ClassB

2.参考答案:

16916

3.参考答案:

1

2

3

4

3

4.参考答案:

A()

B()

B:

:

f()

~B()

~A()

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

参考程序:

#include//预处理命令

usingnamespacestd。

//使用标准命名空间std

constdoublePI=3.1415926。

//定义常量PI

classShape

{

public:

Shape(){}//构造函数

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

virtualShowArea()=0。

//显示面积

staticdoubletotalArea。

//总面积

staticvoidShowTotalArea(){cout<<"总面积:

"<

}

}。

classCircle:

publicShape

{

private:

doubleradius。

//半径

public:

Circle(doubler):

radius(r){totalArea+=PI*r*r。

}//构造函数

~Circle(){}//析构函数

virtualShowArea(){cout<<"圆面积:

"<

}。

//显示面积

}。

classRectangle:

publicShape

{

private:

doublelength。

//长

doublewidth。

//宽

public:

Rectangle(doublel,doublew):

length(l),width(w){totalArea+=l*w。

}//构造函数

~Rectangle(){}//析构函数

virtualShowArea(){cout<<"矩形面积:

"<

}。

//显示面积

}。

classSquare:

publicShape

{

private:

doublelength。

//边长

public:

Square(doublel):

length(l){totalArea+=l*l。

}//构造函数

~Square(){}//析构函数

virtualShowArea(){cout<<"正方形面积:

"<

}。

//显示面积

}。

doubleShape:

:

totalArea=0。

//初始化totalArea

intmain(void)

{

Circlec

(1)。

//定义圆对象

c.ShowArea()。

//显示面积

Rectangler(1,2)。

//定义矩形对象

r.ShowArea()。

//显示面积

Squarez(3)。

//定义正方形对象

z.ShowArea()。

//显示面积

Shape:

:

ShowTotalArea()。

//显示总面积

return0。

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

}

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.

用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1