《面向对象程序设计》模拟考题.docx

上传人:b****7 文档编号:8714522 上传时间:2023-02-01 格式:DOCX 页数:10 大小:20.63KB
下载 相关 举报
《面向对象程序设计》模拟考题.docx_第1页
第1页 / 共10页
《面向对象程序设计》模拟考题.docx_第2页
第2页 / 共10页
《面向对象程序设计》模拟考题.docx_第3页
第3页 / 共10页
《面向对象程序设计》模拟考题.docx_第4页
第4页 / 共10页
《面向对象程序设计》模拟考题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》模拟考题.docx

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

《面向对象程序设计》模拟考题.docx

《面向对象程序设计》模拟考题

 

封面

 

作者:

PanHongliang

仅供个人学习

二、填空题(每小题1分,共10分.)

1.C++通过和类模板来支持泛型程序设计.

2.定义重载函数时,应至少使重载函数参数地类型或不同.

3.封装是面向对象程序设计地基本特性,把数据和合成一个整体.

4.可以在具有类型转换功能地构造函数地声明前面加上关键字,禁止隐式类型转换.

5.类中成员地访问权限可以分为公有、和私有.

6.如果类地定义中没有显式初始化对象成员,则系统将调用该对象地以实现初始化.

7.如果一个派生类只有唯一地基类,这种继承关系称为.

8.用new动态创建对象,用删除该对象.

9.在C++类中,有一种不能定义对象地类,这样地类只能被继承,称为.

10.在STL中,如同一个特殊地指针(用以指向容器中某个位置地数据元素).

三、单项选择题(每小题2分,共30分.)

1.基于面向对象程序设计地软件系统应该具有().

A、高内聚、低耦合地特征

B、低内聚、低耦合地特征

C、高内聚、高耦合地特征

D、低内聚、高耦合地特征

2.假定AB为一个类,则该类地拷贝构造函数地声明语句为().

A、AB(ABx)

B、AB(AB*x)

C、AB&(ABx)

D、AB(AB&)

3.假定Matrix是名称空间osg地一个类,则下列语句错误地是().

A、usingosg:

:

Matrix。

Matrixm。

B、usingnamespaceosg:

:

Matrix。

Matrixm。

C、usingnamespaceosg。

Matrixm。

D、osg:

:

Matrixm。

4.静态成员函数没有().

A、返回值

B、this指针

C、指针参数

D、返回类型

5.类模板地实例化().

A、属于动态联编

B、在连接时进行

C、在编译时进行

D、在运行时进行

6.能用友元函数重载地运算符是().

A、->

B、=

C、+

D、[]

7.派生类地对象对它地基类成员中()是可以访问地.

A、公有继承地私有成员

B、私有继承地公有成员

C、公有继承地公有成员

D、公有继承地保护成员

8.如果要禁止对象之间地赋值运算,应该把operator=声明为()成员.

A、private

B、friend

C、public

D、protected

9.若要打开一个用于输入地文本文件file.txt,下列操作错误地是().

A、ifstreaminFile。

inFile.open("file.txt")。

B、fstreaminFile("file.txt",ios:

:

binary)。

C、ifstreaminFile("file.txt")。

D、fstreaminFile("file.txt",ios:

:

in)。

10.通过()可以在现有类地基础上派生出新地类.

A、继承

B、引用

C、包含

D、封装

11.下列关于构造函数和析构函数地描述正确地是().

A、构造函数和析构函数都可以重载

B、析构函数可以定义为虚函数

C、构造函数和析构函数都没有返回值

D、构造函数和析构函数都不能被继承

12.下列关于引用地用法中,正确地是().

A、intx=100。

int&refx=&x。

B、intx=100,&refx。

refx=x。

C、intx=100。

int&refx=x。

D、int&refx=100。

13.已知类A是类B地友元,类B是类C地友元,则().

A、类A地成员函数可以访问类B地对象地任何成员

B、类C一定是类A地友元

C、类A一定是类C地友元

D、类C地成员函数可以访问类B地对象地任何成员

14.以下基类中地成员函数,哪个表示纯虚函数().

A、voidvf(int)=0

B、virtualvoidyf(int){}

C、virtualvoidvf(int)

D、virtualvoidvf()=0

15.以下类模板templateclassMyClass{…}。

正确地实例化方式是().

A、MyClassC1。

B、MyClassC1。

C、MyClassC1。

D、MyClass<>C1。

四、判断题(每小题2分,共20分.)

1.C++函数可以返回局部对象地指针或引用.(对错)

2.const数据成员地值对类中所有对象都是一样地.(对错)

3.定义带默认形参地函数时,默认形参值可以同时出现在函数声明和函数定义中.(对错)

4.多重继承中出现地二义性可以用作用域分辨法消除.(对错)

5.赋值运算符只能作为成员函数重载.(对错)

6.即使定义了带参构造函数,系统也会提供无参构造函数.(对错)

7.如果定义list:

:

iteratorit,若需按偶数进行跳跃式访问,可采用迭代器操作it+=2.(对错)

8.虚函数使用静态绑定地函数调用机制.(对错)

9.用new和malloc为对象动态分配内存时,都会自动调用对象地构造函数.(对错)

10.在堆上创建地多个对象地析构顺序与构造顺序相反.(对错)

五、程序设计题(每小题10分,共30分,请将设计地程序代码填入到对应地文本框内.)

1.定义一个表示形状地基类Shape类和它地派生类圆形类(Circle)、正方形类(Square),具体要求如下:

a)基类Shape中有虚函数area()和perimeter(),实现求形状地面积和周长,可用cout输出表示.

b)在main函数中,每个派生类生成两个对象,共四个对象存放于一个数组中,用循环程序访问其求面积和周长地成员函数.

输入输出样例参考:

输入形状类型及其边长或半径:

Square5.15

输入形状类型及其边长或半径:

Square2.10

输入形状类型及其边长或半径:

Circle3.28

输入形状类型及其边长或半径:

Circle2.01

Square26.5220.60

Square4.418.40

Circle33.8020.61

Circle12.6912.63

2.建立分数类Fraction,其中包含成员分子num和分母den.具体要求如下:

a)重载“+”实现两个分数相加操作;

b)重载“-”实现两个分数相减操作;

c)重载“>”和“<”,比较两个分数地大小;

d)重载“>>”和“<<”以输入输出分数.

输入输出样例参考:

输入分数:

13

输入分数:

12

A+B:

5/6

A-B:

-1/6

A>B:

false

A

true

3.设计银行帐户类Account,基本要求如下:

a)设计一个用于表示存款年利率interestRate地静态数据成员;

b)设计一个用于表示当前存款金额deposit地私有数据成员;

c)设计一个用于计算年利息地公有成员函数GetAnnualInterest(注:

年利息=存款金额*年利率);

d)设计一个用于修改存款年利率地静态成员函数ModifyInterestRate.

输入输出样例参考:

输入当前存款金额和年利率:

100000.0325

客户年利息:

325

输入新地年利率:

0.04

客户年利息:

400

单项选择题(共20题,每题1分,共20分)

1、下列关于C++标识符地命名不合法地是C与C#一样

A.PadB.name_1C.A#bcD._a12

2、若有以下类型标识符定义:

()D

intx=2;charw='a';floaty=23.45f;doublez=45.6712;

则表达式w*x+y-z地结果类型是

A.floatB.charC.intD.double

6、对重载函数形参地描述中,错误地是D重载是重点

A.参数地个数可能不同

B.参数地类型可能不同

C.参数地顺序可能不同

D.参数地个数、类型、顺序都相同,只是函数地返回值类型不同

7、以下能正确定义数组并正确赋初值地语句是D

A.intN=5,b[N][N]。

B.inta[2]={{1},{3},{4},{5}}。

C.intc[2][]={{1,2},{3,4}}。

D.intd[3][2]={{1,2},{3,4}}。

8、下列给字符数组进行地初始化中,不正确地是D

A.chars1[]="abcd"。

B.chars2[3]={'x','y','\0'}。

C.chars3[]={'a','x','y','\0'}。

D.chars4[6]={"xyz","mnp"}。

9、通常地拷贝构造函数地参数是CA.某个对象名B.某个对象成员名

C.某个对象地引用D.某个对象地指针名

10、关于构造函数特点地描述中,错误地是A

A.定义构造函数必须指出类型(构造函数特点是无返回类型)

B.构造函数地名字与该类地类名相同

C.一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空地构造函数)

D.构造函数是一种成员函数

11、下面程序地运行结果为C

#include

intadd(inta,intb)。

voidmain()

{

externintx,y。

cout<

}

intx=20,y=5。

intadd(inta,intb)

{

ints=a+b。

returns。

}

A.20B.5C.25D.编译会提示出错信息

12、关于常成员地描述中,错误地是B

A.常成员包含常数据成员和常成员函数两种

B.常数据成员必须是公有地

C.常数据成员要使用构造函数成员初始化列表进行初始化

D.常对象只能调用它地常成员函数,不能调用其它地成员函数

13、关于友元函数地描述中,错误地是B

A.友元函数不是成员函数

B.友元函数只能访问类中私有成员

C.友元函数破坏隐藏性,尽量少用

D.友元函数说明在类体内,使用关键字friend

14、如果有intx,*p。

floaty,*q。

则下面操作正确地是C

A.p=xB.p=q

C.p=&xD.p=&y

16、若数组名作实参而指针变量作形参,函数调用时实参传给形参地是D

A.数组地长度

B.数组第一个元素地值

C.数组所有元素地值

D.数组第一个元素地地址

17、对于动态分配内存空间描述正确地是D

A.使用new运算符分配地内存空间地长度必需是常量

B.delete运算符可以释放动态地存储空间和静态地存储空间

C.由new分配地内存空间是不连续地

D.delete运算符只能释放由new分配地动态存储空间

18、能够释放对象所占资源地是()A

A.析构函数B.数据成员

C.构造函数D.静态成员函数

19、虚函数地定义是在基类中进行地,定义时需要冠以关键字C

A.staticB.frend

C.virtualD.public

20、在C++中串流类是在头文件strstrea.h中定义地,下列不属于串流类地是)C

A.strstreamB.ostrstream

C.ofstreamD.istrstream

二、填空题(共9题16空,每空1分,共16分)

1、函数重载时,编译系统会根据__形参地类型__或__形参地个数__来区分.与返回类型无关

2、若有chara[80]。

则cin>>a表示从键盘上读入一个__字符串__到数组a中.

3、若希望用一个已有对象来构造另一个同类型地对象,可以使用__拷贝构造函数__来实现.

4、静态成员(static)属于__类__,而不属于__任何一个对象__,它被同一个类地所有对象共享.

5、类地继承方式有____继承、____继承和____继承.public(或公有)private(或私有)protected(或保护)

6、重载运算符地含义必须清楚,不能有__二义性__.

7、按照联编进行阶段地不同,联编方法可分为两种:

__动态联编__和__静态联编__.

8、当基类中地某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、__函数名__、__参数个数__、参数类型以及参数地顺序都必须与基类中地原型完全相同.

9、C++地I/O是以字节流地形式实现地,每个C++编译系统都带有一个面向对象地输入/输出软件包,这就是I/O流类库.三、判断题(共10题,每题1分,共10分)

1、C++语言支持封装性和继承性,不支持多态性.×

2、关系运算符可以用来比较两个字符地大小,也可用来比较两个字符串地大小.)×

3、字符串"sdfgh"地长度是5.√占用空间好像是6,字符串有个结尾符号占空间.

4、引用和指针都可作函数参数.√

5、友元函数说明在类体内,它是一种成员函数.×说明(定义)在类外,声明在类里面

6、友元类必须被说明为公有成员.×

7、纯虚函数是在基类中说明地虚函数,它在该基类中没有定义具体地操作内容.√

8、析构函数不能被继承.√

9、运算符重载以后,其优先级和结合性都不能改变.√

10、在C++中,函数名实际上是一个指针,它指向函数地入口.√

版权申明

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

版权为潘宏亮个人所有

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