面向对象程序设计复习试题40答案41.docx

上传人:b****5 文档编号:7810623 上传时间:2023-01-26 格式:DOCX 页数:49 大小:38.49KB
下载 相关 举报
面向对象程序设计复习试题40答案41.docx_第1页
第1页 / 共49页
面向对象程序设计复习试题40答案41.docx_第2页
第2页 / 共49页
面向对象程序设计复习试题40答案41.docx_第3页
第3页 / 共49页
面向对象程序设计复习试题40答案41.docx_第4页
第4页 / 共49页
面向对象程序设计复习试题40答案41.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

面向对象程序设计复习试题40答案41.docx

《面向对象程序设计复习试题40答案41.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习试题40答案41.docx(49页珍藏版)》请在冰豆网上搜索。

面向对象程序设计复习试题40答案41.docx

面向对象程序设计复习试题40答案41

语法扩充

1.1选择题

在C++中用(D)能够实现将参数值带回.

a)数组b)指针c)引用d)上述ABC都可

考虑函数原型voidtest(inta,intb=7,char*ch="*"),下面地函数调用中,属于不合法调用地是:

(C)矚慫润厲钐瘗睞枥庑赖。

A)test(5)B)test(5,8)C)test(6,"#")D)test(0,0,"*");聞創沟燴鐺險爱氇谴净。

已知:

intm=10;下列表示引用地方法中,正确地是:

(C)

A)int&Z;B)int&t=10;C)int&X=m;D)float&f=&m;残骛楼諍锩瀨濟溆塹籟。

下列不是函数重载所要求地条件是:

(D)

A)函数名相同B)参数个数不同

C)参数类型不同D)函数返回值类型不同

在C++中执行以下4条语句后输出rad值为:

(C)

staticinthot=200;

int&rad=hot;

hot=hot+100;

cout<

A)0B)100C)300D)200

系统在调用重载函数时,不能作为确定哪个重载函数被调用地依据是:

(D)

A)参数个数B)参数类型C)函数名称D)函数地返回值类型

对C++语言和C语言地兼容性,描述正确地是:

(A)

A)C++兼容CB)C++部分兼容CC)C++不兼容CD)C兼容C++

在C++中使用流进行输入输出,其中用于屏幕输出地对象是:

(C)

A)cerrB)cinC)coutD)cfile

对使用关键字new所开辟地动态存储空间,释放时必须使用(C)

A)freeB)createC)deleteD)realse

在函数调用时,如某一默认参数要指明一个特定值,则有(A)

A)其之前所有参数都必须赋值B)其之后所有参数都必须赋值

C)其前、后所有参数都必须赋值D)其前、后所有参数都不必赋值

下列哪个类型函数不适合声明为内联函数(A)

A)函数体语句较多B)函数体语句较少

C)函数执行时间较短D)函数执行时间过长

intFunc(int,int);不可与下列哪个函数构成重载(B)

A)intFunc(int,int,int);B)doubleFunc(int,int);酽锕极額閉镇桧猪訣锥。

C)doubleFunc(double,double);D)doubleFunc(int,double);彈贸摄尔霁毙攬砖卤庑。

下面地哪个保留字不能作为函数地返回类型(C)

A)voidB)intC)newD)long

一个函数功能不太复杂,但要求被频繁调用,选用(A).

A.内联函数B.重载函数C.递归函数D.嵌套函数

已知函数f地原型为:

voidf(int&a,char*b);变量s,t地定义是:

ints;chart[]="ABCD";謀荞抟箧飆鐸怼类蒋薔。

把s和t分别作为第一参数和第二参数来调用函数f,正确地调用语句是(C)

Af(&s,&t);Bf(&s,t);Cf(s,t);Df(s,&t);

若定义cin>>str。

当输入

MicrosoftVisualStudio6.0!

所得结果是str=(B).

A、MicrosoftVisualStudio6.0!

B、Microsoft

C、MicrosoftVisual

D、MicrosoftVisualStudio6.0

.函数模板(C).

A、代表某一具体函数

B、与模板函数是同一个函数

C、与某一个具体地数据类型连用

D、是模板函数实例化地结果

在C++中,关于下列设置参数默认值地描述中,正确地是(C)

A、不允许设置参数地默认值

B、设置参数默认值只能在定义函数时设置

C、设置参数默认值时,应该是先设置右边地再设置左边地

D、设置参数默认值时,应该全部参数都设置

下列表示引用地方法中,(A)是正确地.

已知:

k=1000。

A、int&x=k。

B、char&y。

C、int&z=1000。

D、float&t=&k。

有如下模板定义:

templateTfun(Tx,Ty){returnx*x+y*y;}

在下列对fun地调用中,错误地是:

(C)

A)fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8)D)fun(‘2’,’8’)厦礴恳蹒骈時盡继價骚。

通常情况下,函数模板中地类型参数个数不能是(A)

A)0个B)1个C)2个D)3个

1.2填空题

1、假定有如下定义:

intx。

若要将整型变量y定义为变量x地引用,则应使用地定义语句是_int&y=x。

________.茕桢广鳓鯡选块网羈泪。

具有相同函数名但具有不同参数表地函数称为重载函数.'

2、在进行函数调用时,将把参数地值传递给值参数,把参数地_地址_传递给引用参数.

3、执行完下列三条语句后,指针变量c指向__b___.

Inta,b,*c=&a。

int*&p=c。

p=&b。

4、假设有如下函数定义:

voidFun(intx,inty=100)。

则语旬Fun(5)语句__Fun(5,100)_等价.鹅娅尽損鹌惨歷茏鴛賴。

5、在一个C++程序中,每个变量都必须遵循__先定义后使用__地原则.

6、下面是一个求数组元素之和地程序.主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果.籟丛妈羥为贍偾蛏练淨。

函数TotalSum计算数组元素之和.请完成下列程序.

#include

__int Totalsum(int array[],int len)__。

voidmain()

{

inta[5]={2,3,6,8,10}。

__intTotal___。

Total=Totalsum(a,5)。

cout<<"Sumofarray:

"<

}

intTotalsum(intarray[],intlen)

{

____intsum=0____。

for(intI=0。

____I

I++)

____sum+=array[I]_____。

returnsum。

}

7、下面地函数Fun未使用中间变量实现了对两个数地交换,请完成下列函数地定义.

VoidFun(int&x,int&y)

{

x+=y。

y=___x-y____。

__x=x-y_____。

}

8、定义一个函数时,若只允许函数体访问形参地值而不允许修改它地值,则应把该形参声明为__常量__,即在该形参声明地前面加上__const__关键字进行修饰.預頌圣鉉儐歲龈讶骅籴。

9、在一个函数地定义或声明前加上关键字__inline__时,该函数就声明为内联函数.

1.3简答题

A、.内联函数地含义

  在函数前加上关键字inline说明了一个内联函数,这使一个函数在程序行里进行代码扩展而不被调用.这样地好处是减少了函数调用地开销,产生较快地执行速度.但是由于重复编码会产生较长代码,所以内联函数通常都非常小.如果一个函数在类说明中定义,则将自动转换成内联函数而无需用inline说明.渗釤呛俨匀谔鱉调硯錦。

B、.函数重载地含义

  在同一作用域范围内,相同地函数名通过不同地参数类型或参数个数可以定义几个函数,编译时编译器能够识别实参地个数和类型来决定该调用哪个具体函数.需要注意地是,如果两个函数仅仅返回类型不同,则编译时将会出错,因为返回类型不足以提供足够地信息以使编译程序判断该使用哪个函数.所以函数重载时必须是参数类型或者数量不同.铙誅卧泻噦圣骋贶頂廡。

C、引用与指针地区别

D、内联函数使用上地限制

E、定义带默认参数值函数地规则

F、指针与常量地关系

1.4程序阅读题

1)写出下列程序地运行结果.

#include

voidmain()

{

intx。

int&p=x。

x=10。

p=x+10。

cout<

}

结果:

20,20

2)写出下列程序地运行结果.

#include

intf(inta)

{

return++a。

}

intg(int&a)

{

return++a。

}

voidmain()

{

intm=0,n=0。

m+=f(g(m))。

n+=f(f(n))。

cout<<"m="<

cout<<"n="<

}

结果:

m=3

n=2

3)写出下列程序地运行结果.

#include

voidFun()

{

intnum=20。

cout<<"TheFun'snumis"<

}

voidmain()

{

intnum=10。

cout<<"Themain'snumis"<

Fun()。

{

intnum=30。

cout<<"TheField'snumis"<

}

cout<<"Themain'snumis"<

}

结果:

Themain'snumis10

TheFun'snumis20

TheField'snumis30

Themain'snumis10

类和对象

2.1选择题

下列地各类函数中,不是类地成员函数.(C)

A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数

作用域运算符“:

”地功能是:

(B)

A)标识作用域地级别地B)指出作用域地范围地

C)给定作用域地大小地D)标识成员是属于哪个类地

已知:

print()函数是一个类地常成员函数,它无返回值,下列表示中,是正确地.(A)

A)voidprint()const;B)constvoidprint();

C)voidconstprint():

D)voidprint(const);

在类定义地外部,可以被访问地成员有(C)

A)所有类成员B)private地类成员

C)public地类成员D)public或private地类成员

关于类和对象不正确地说法是:

(C)

A)类是一种类型,它封装了数据和操作B)对象是类地实例

C)一个类地对象只有一个D)一个对象必属于某个类

在C++中实现封装是借助于(B)

A)枚举B)类C)数组D)函数

定义析构函数时,应该注意:

(C)

A)其名与类名完全相同B)返回类型是void类型

C)无形参,也不可重载D)函数体中必须有delete语句

类claseCC1地说明如下,错误地语句是:

(A)

claseCC1{

inta=2;//(A)

CC1();//(B)

public:

CC1(intval);//(C)

~CC1();//(D)

};

类地指针成员地初始化是通过函数完成地,这个函数通常是:

(B)

A)析构函数B)构造函数C)其它成员函数D)友元函数

关于构造函数地说法,不正确地是:

(A)

A)没有定义构造函数时,系统将不会调用它B)其名与类名完全相同

C)它在对象被创建时由系统自动调用D)没有返回值

通常拷贝构造函数地参数是:

(C)

A)对象名B)对象地成员名C)对象地引用名D)对象地指针名

关于成员函数特征地描述中,错误地是:

(A)

A)成员函数一定是内联函数B)成员函数可以重载

C)成员函数可以设置参数地默认值D)成员函数可以是静态地

下列关于构造函数地描述中,错误地是:

(D)

A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行

C)构造函数可以是内联函数;D)构造函数不可以重载

有如下类声明“classA{intx;……};”,则A类地成员x是:

(B)

A)公有数据成员B)私有数据成员C)公有成员函数D)私有成员函数

类TM和类TN是两个独立地类,那么类TM中哪种形式地数据成员一定是不允许地:

(C)

A)TM*aB)TN&aC)TMaD)TNa;

以下关于this指针地叙述中正确地是:

(D)

A)任何与类相关地函数都有this指针;B)类地成员函数都有this指针;

C)类地友员函数都有this指针;D)类地非静态成员函数才有this指针;

.关于类模板地说法正确地是:

(B)

A)类模板地主要作用是生成抽象类

B)类模板实例化时,编译器将根据给出地模板实参生成一个类

C)在类模板中地数据成员具有同样类型

D)类模板中地成员函数没有返回值

.以下关键字不能用来声明类地访问权限地是:

(C)

A)publicB)privateC)staticD)protected

.类地私有成员可在何处访问(D)

A)通过子类地对象访问B)本类及子类地成员函数中

C)通过该类对象访问D)本类地成员函数中

.如果没有为一个类定义任何构造函数地情况下,下列描述正确地是:

(A)

A)编译器总是自动创建一个不带参数地构造函数B)这个类没有构造函数

C)这个类不需要构造函数D)该类不能通过编译

.一个类可包含析构函数地个数是:

(B)

A)0个B)1个C)0个或1个D)0个或多个

.一个类可包含构造函数地个数是:

(D)

A)0个B)0个或1个C)0个或多个D)1个或多个

.this指针存在地目地是:

(B)

A)保证基类公有成员在子类中可以被访问

B)保证每个对象拥有自己地数据成员,但共享处理这些数据成员地代码

C)保证基类保护成员在子类中可以被访问

D)保证基类私有成员在子类中可以被访问

.下列关于类地权限地描述错误地是:

(A)

A)类本身地成员函数只能访问自身地私有成员

B)类地对象只能访问该类地公有成员

C)普通函数不能直接访问类地公有成员,必须通过对象访问

D)一个类可以将另一个类地对象作为成员

.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确地是:

(B)

A)A类构造函数先执行B)成员构造函数先执行

C)两者并行执行D)不能确定

.假定有类AB,有相应地构造函数定义,能正确执行“ABa(4),b(5),c[3],*p[2]={&a,&b};”语句,请问执行完此语句后共调用该类构造函数地次数为(C)擁締凤袜备訊顎轮烂蔷。

A)3B)4C)5D)6

拷贝构造函数地作用是(C).

A.进行数据类型地转换B.用对象调用成员函数

C.用对象初始化对象D.用一般类型地数据初始化对象

下列静态数据成员地特性中,错误地是(D).

A.静态数据成员地声明以关键字static开头

B.静态数据成员必须在文件作用域内初始化

C.引导数据成员时,要在静态数据成员前加(类名)和作用域运算符

D.静态数据成员不是类所有对象共享地

通过指针访问类对象成员地方法是(D).

A.:

:

       B.。

       C..        D.->

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

A.返回值     B.this指针      C.指针参数       D.返回类型

在下列关键字中,用于说明类中公有成员地是(A).

A.public;B.private;C.protected;D.friend贓熱俣阃歲匱阊邺镓騷。

不是构造函数地特征(D).

A.构造函数地函数名与类名相同;        B. 构造函数可以重载;

C.构造函数可以设置缺省参数;           D. 构造函数必须指定类型说明.

是析构函数地特征(A).

A.一个类中只能定义一个析构函数;      B. 析构函数名与类名不同;

C. 析构函数地定义只能在类体内;        D. 析构函数可以有一个或多个参数.

关于成员函数特征地下述描述中,(A)是错误地.

A.成员函数一定是内联函数;            B. 成员函数可以重载;

C.成员函数可以设置参数地缺省值;        D. 成员函数可以是静态地.

下述静态数据成员地特性中,(D)是错误地.

A.说明静态数据成员时前边要加修饰符static;

B.静态数据成员要在类体外进行初始化;

C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;

D.静态数据成员不是所有对象所共用地.

2.2填空题

1、在撤销类地对象时,C++程序将自动调用该对象地__析构___函数.

2、类中地构造函数是一个特殊地成员函数,它由类地对象__自动_调用,它地作用是___为对象分配内存,数据成员初始化___.坛摶乡囂忏蒌鍥铃氈淚。

3、对类中地成员函数和属性地访问是通过__public__、__protected__和___private__这3个关键字来控制地.蜡變黲癟報伥铉锚鈰赘。

4、__delete__运算符删除new运算符所动态分配地内存空间.

5、假定用户没有给一个名为MyClass地类定义析构函数,则系统为其定义地默认析构函数形式为__MyClass()__.買鲷鴯譖昙膚遙闫撷凄。

6、类中构造函数有__一个或多__个,析构函数有___一___个.

7、类是对具有共同属性和行为地一类事物地抽象描述,共同属性被描述为类中地___数据成员___,共同行为被描述为类中地__成员函数__.綾镝鯛駕櫬鹕踪韦辚糴。

8、若要把类FriendClass定义为类MyClass地友元类,则应在类MyClass地定义中加入语句_friendclassFriendClass;___.驅踬髏彦浃绥譎饴憂锦。

9、在结构定义中,数据和成员函数默认权限是__public__.在类定义中,数据和成员函数默认权限是__private___.猫虿驢绘燈鮒诛髅貺庑。

10、在下面程序地横线处填上适当地语句,使类型该程序执行结果为10.

#include

classMyClass

{

pub1ic:

___MyClass(inta){_x=a。

}____//为x置值

__intGetNum(){returnx。

}______//取x值

private:

intx。

}。

voidmain()

{

Myclassmy(10)。

Cout<

}

11、完成下面地类定义.

ClassMyClass

{

public:

MyClass(){x=0。

}

____friend______intGetNum(___MyClass______my)。

private:

intx。

}。

intGetNum(____MyClass______my)

{

___returnmy.x。

}

12、__new__运算符对指定类型对象动态分配内存并返回该类型地__指针__.

13、若要把函数voidFriendFunction()定义为类MyClass地友元函数,则应在类MyClass地定义中加入语句__friendvoidFriendFunction()。

_______.锹籁饗迳琐筆襖鸥娅薔。

14、类地具体表现是通过定义_对象__来操作地.

15、在定义类地对象时,C++程序将自动调用该对象地__构造___函数初始化对象自身.

16、一般情况下,按照面向对象地要求,把类中地数据成员(属性)定义为__private__权限,而把成员函数(方法)定义为__public__权限.構氽頑黉碩饨荠龈话骛。

17、在类中定义和实现地函数称为_内联函数__.

18、非成员函数应声明为类地__友元函数__才能访问这个类地private成员.

2.3简答题

A、类地含义

B、构造函数地特点

C、拷贝构造函数地调用

D、析构函数地定义及其特点

E、静态成员地分类及各自地特点

2.4程序阅读题

1)写出下列程序地运行结果.

#include

classMyClass

{

charch。

public:

MyClass()。

MyClass(charcharacter)。

voidPrint()。

~MyClass()。

}。

MyClass:

:

MyClass()

{

cout<<"Thisisaconstructor!

"<

ch='a'。

}

MyClass:

:

MyClass(charcharacter)

{

cout<<"Thisisaconstructor!

"<

ch=character。

}

voidMyClass:

:

Print()

{

cout<<"Thevalueofchis"<

}

MyClass:

:

~MyClass()

{

cout<<"Thisisadestructor!

"<

}

voidmain()

{

MyClassfirst,second('b')。

first.Print()。

second.Print()。

}

运行结果:

Thisisaconstructor!

Thisisaconstructor!

Thevalueofchisa

Thevalueofchisb

Thisisadestructor!

Thisisadestructor!

2)写出下列程序地运行结果

#include

classMyClass

{

public:

MyClass()。

voidPrint()。

~MyClass()。

private:

intI。

staticintj。

}。

intMyClass:

:

j=0。

MyClass:

:

MyClass()

{

cout<<"Thisisconstructor!

"<

j+=10。

}

voidMyClass:

:

Print()

{

cout<<"Thevalueofjis"<

}

MyClass:

:

~MyClass()

{

cout<<"Thisisadestructor!

"<

}

voidmain()

{

MyClassfirst,second。

first.Print()。

secon

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

当前位置:首页 > 医药卫生 > 基础医学

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

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