面向对象程序设计综合练习题aWord文档下载推荐.docx

上传人:b****6 文档编号:16930189 上传时间:2022-11-27 格式:DOCX 页数:68 大小:124.95KB
下载 相关 举报
面向对象程序设计综合练习题aWord文档下载推荐.docx_第1页
第1页 / 共68页
面向对象程序设计综合练习题aWord文档下载推荐.docx_第2页
第2页 / 共68页
面向对象程序设计综合练习题aWord文档下载推荐.docx_第3页
第3页 / 共68页
面向对象程序设计综合练习题aWord文档下载推荐.docx_第4页
第4页 / 共68页
面向对象程序设计综合练习题aWord文档下载推荐.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

面向对象程序设计综合练习题aWord文档下载推荐.docx

《面向对象程序设计综合练习题aWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计综合练习题aWord文档下载推荐.docx(68页珍藏版)》请在冰豆网上搜索。

面向对象程序设计综合练习题aWord文档下载推荐.docx

 

D.doublefun(intx,y);

1-12.下面有关重载函数的说法中正确的是(C)。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

1-13.函数重载是指(A)。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

1-14.采用重载函数的目的是(D)。

A.实现共享B.减少空间

C.提高速度 

D.使用方便,提高可读性

1-15.以下关于函数模板叙述正确的是(C)。

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义

D.用函数模板定义的函数没有类型

1-16.以下正确的描述是( 

)。

A.不允许设置参数的默认值

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

C.设置参数的默认值时,应该设置右边的参数

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

1-17.(B)是给变量取一个别名,它引入了变量的同义词。

A.指针B.引用

C.枚举D.结构

1-18.假定变量x定义为“intx=5;

”,要使rx成为x的引用(别名),rx应定义为( 

D)。

A.intrx=x;

B.intrx=&

x;

C.int*rx=&

D.int&

rx=x;

1-19.下列对引用的陈述中不正确的是( 

C)。

A.每一个引用都是其所引用对象的别名,因此必须初始化

B.形式上针对引用的操作实际上作用于它所引用的对象

C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行

D.不需要单独为引用分配存储空间

1-20.下列(C)的调用方式是引用调用。

A.形参和实参都是变量 

B.形参是指针,实参是地址值

C.形参是引用,实参是变量 

D.形参是变量,实参是地址值

1-21.在(C)情况下适宜采用inline定义内置函数。

A.函数体含有循环语句

B.函数体含有递归语句

C.函数代码少、且频繁调用

D.函数代码多、不常调用

1-22.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A)。

A.内置函数B.重载函数

C.递归函数D.函数模板

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

C.递归函数D.嵌套函数

1-24.说明内置函数的关键字是(A)。

A.inlineB.virtual

C.defineD.static

1-37.对于动态分配内存空间描述正确的是(D)。

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

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

C.用new分配的内存空间是不连续的

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

1-38.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( 

A)。

A.int*p=newint[30];

B.int*p=newint(30);

C.int*p=new[30];

D.*p=newint[30];

2-1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

2-2.面向对象软件开发中使用的OOA表示( 

A.面向对象分析 

B.面向对象设计 

C.面向对象语言 

D.面向对象方法

2-3.面向对象软件开发中使用的OOD表示( 

B)。

A.面向对象分析 

D.面向对象方法

2-4.关于面向对象系统分析,下列说法中不正确的是( 

A.术语“面向对象分析”可以用缩写OOA表示

B.面向对象分析阶段对问题域的描述比设计阶段更详细

C.面向对象分析包括问题域分析和应用分析两个步骤

D.面向对象分析需要识别对象的内部和外部特征

2-5.下列关于成员函数特征的描述中,(A)是错误的。

A.成员函数一定是内置函数

B.成员函数可以重载

C.成员函数可以设置参数的默认值

D.成员函数可以是静态的

2-6.在关键字private后面定义的成员为类的( 

A)成员。

A.私有 

B.公用 

C.保护 

D.任何

2-7.在一个类的定义中,包含有( 

C)成员的定义。

A.数据 

B.函数 

C.数据和函数 

D.数据或函数

2-8.在类作用域中能够通过直接使用该类的( 

D)成员名进行访问。

2-9.在关键字public后面定义的成员为类的( 

B)成员。

2-10.类中定义的成员默认为( 

B)访问属性。

A.public 

B.private 

C.protected 

D.friend

2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( 

A.x(a) 

B.x[a] 

C.x->

D.x.a

2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( 

A.x.a 

B.x.a() 

D.x->

a()

2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为( 

A.px(a) 

B.px[a] 

C.px->

D.px.a

2-14.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( 

B.x.a() 

C.x->

GetValue() 

D.x.GetValue()

2-14.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( 

A.intAA:

:

a() 

B.intAA:

a()

C.AA:

D.AA:

inta()

2-15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( 

B)放在函数原型或函数头的前面。

A.in 

B.inline 

C.inLine 

D.InLiner

2-16.下列特性不是面向对象程序设计语言所特有的是(D)。

A.数据封装B.继承

C.多态性D.模板

3-1.关于构造函数,下列说法不正确的是(D)。

A.构造函数名字和类名相同

B.构造函数在创建对象时自动执行

C.构造函数无任何函数返回类型

D.构造函数有且只有一个

3-2.类的构造函数是在定义该类的一个( 

C)时被自动调用执行的。

A.成员函数 

B.数据成员 

C.对象 

D.友元函数

3-3.一个类的构造函数通常被定义为该类的( 

)成员。

A.公用 

B.保护 

C.私有 

D.友元

3-4.关于构造函数特点描述中,错误的是(A)。

A.定义构造函数必须指出类型

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

C.一个类中可以定义0个至多个构造函数

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

3-5.对于一个类的构造函数,其函数名与类名(A)。

A.完全相同B.基本相同

C.不相同 

D.无关系

3-6.每个类(C)构造函数。

A.只能有一个B.可以有公用的

C.可以有多个D.只可有缺省的

3-7.对类对象成员的初始化是通过构造函数中给出的(B)实现的。

A.函数体B.参数初始化表

C.参数表 

D.参数初始化表或函数体

3-8.假定AB为一个类,则执行“ABx;

”语句时将自动调用该类的(B).。

A.有参构造函数B.无参构造函数

C.复制构造函数D.赋值重载函数

3-9.假定AB为一个类,则执行“ABx(a,5);

”语句时将自动调用该类的( 

A.带参构造函数 

B.无参构造函数 

C.复制构造函数 

D.赋值重载函数

3-10.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTestobjTest;

”语句时将自动调用该类的(B)。

A.有参构造函数B.无参构造函数

C.复制构造函数D.赋值构造函数

3-11.构造函数不具备的特征是(D)。

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定类型说明

3-12.假定一个类的构造函数为“B(intax,intbx):

a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);

x=y;

”语句序列后x.a的值为(C)。

A.1B.2C.3 

D.4

3-13.假定一个类的构造函数为“A(intaa,intbb){a=aa;

b=aa*bb;

}”,则执行“A 

x(4,5);

”语句后,x.a和x.b的值分别为( 

A.4和5 

B.5和4 

C.4和20 

D.20和5

3-14.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;

b=bb;

}”,则执行“Ax(4);

A.1和0 

B.1和4 

C.4和1 

D.4和0

3-15.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为( 

A.AB(){} 

B.AB():

a(0){}

C.AB(intaa=0){a=aa;

D.AB(intaa){}

3-16.类的析构函数是一个对象被( 

)时自动调用的。

A.建立 

B.撤消 

C.赋值 

D.引用

3-17.能够释放对象所占资源的是(A)。

A.析构函数 

C.构造函数 

D.静态成员函数

3-18.类的析构函数的作用是(D).。

A.一般成员函数B.类的初始化

C.对象的初始化D.对象释放后的操作

3-19.对于一个类的析构函数,其函数名与类名( 

A.完全相同 

B.完全不同 

C.只相差一个字符 

D.无关系

3-20.一个类的析构函数通常被定义为该类的( 

C)成员。

C.公用 

3-21.定义析构函数时,应该注意(C)。

A.其名与类名完全相同

B.返回类型是void类型

C.无形参,也不可重载

D.函数体中必须有delete语句

3-22.类的析构函数可以带有( 

)个参数。

A.0 

B.1 

C.2 

D.任意

3-23.类的析构函数是在(C)调用的。

A.类创建时B.创建对象时

C.对象生命期结束时D.不自动调用

3-24.当一个类对象离开它的作用域时,系统自动调用该类的( 

A.无参构造函数 

B.带参构造函数 

C.拷贝构造函数 

D.析构函数

3-25.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为( 

C.n 

D.n-1

3-26.假定AB为一个类,则执行“ABa[10];

”语句时调用该类无参构造函数的次数为( 

D)。

C.9 

D.10

3-27.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( 

A.int 

B.char 

C.AA 

D.AA*

3-28.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( 

A.abc 

B.*this 

C.this 

D.this&

3-29.假定AB为一个类,则执行“AB*px=newAB[n];

”语句时将( 

A.动态分配一个数组 

B.动态分配一个对象

C.静态分配一个数组 

D.静态分配一个对象

3-30.设px是指向一个类对象的指针变量,则执行“deletepx;

”语句时,将自动调用该类的( 

A.无参构造函数 

C.析构函数 

D.复制构造函数

3-31.对于在类中定义的静态数据成员,下面正确的说法是(C)。

A.该类的每一个对象中都有一个静态数据成员

B.对象创建时产生

C.在类外进行初始化

D.既可以在类外初始化,也可以在类内初始化

3-32.一个类的静态数据成员所表示属性( 

A.是类的或对象的属性 

B.只是对象的属性

C.只是类的属性 

D.类和友元的属性

3-33.类的静态成员的访问控制( 

A.只允许被定义为private

B.只允许被定义为private或protected

C.只允许被定义为public

D.可允许被定义为private、protected或public

3-34.静态成员函数对类的数据成员访问( 

A.是不允许的 

B.只允许是静态数据成员 

C.只允许是非静态数据成员 

D.可允许是静态数据成员或非静态数据成员

3-35.被非静态成员函数访问的类的数据成员( 

A.可以是非静态数据成员或静态数据成员 

B.不可能是类的静态数据成员

C.只能是类的非静态数据成员 

D.只能是类的静态数据成员

3-36.静态数据成员的初始化是在( 

D)中进行的。

A.构造函数 

B.任何成员函数

C.所属类 

D.全局区

3-37.由于数据隐藏的需要,静态数据成员通常被说明为(A)。

A.私有的B.公用的

C.保护的D.不可访问的

3-38.复制构造函数的参数通常是(C)。

A.无特殊要求

B.指向对象的指针

C.自己类对象的常引用

D.对象

3-39.通常,复制构造函数的参数是(C)。

A.某个对象名

B.某个对象的成员

C.某个对象的引用名

D.某个对象的引用名

3-40.关于常成员的描述中,错误的是(B)。

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

B.常数据成员必须是公用的

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

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

3-41.引入友元的主要目的是为了( 

A.增强数据安全性 

B.提高程序的可靠性

C.提高程序的效率和灵活性 

D.保证类的封装性

3-42.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( 

A.需加上类域的限定 

B.不需加上类域的限定

C.类域的限定可加可不加 

D.不需要任何限定

3-43.类成员的访问权限中,(C)只能被本类的成员函数和其友元函数访问。

A.shareB.public

C.privateD.protected

3-44.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( 

A.只能是公有成员 

B.只能是保护成员

C.只能是除私有成员之外的任何成员 

D.具有任何权限的成员

3-45.下面不是描述类的成员函数的是(C)。

A.构造函数B.析构函数

C.友元函数D.复制构造函数

3-46.下列函数中,(C)不是类的成员函数。

3-47.如果类A被说明成类B的友元,则(D)。

A.类A的成员即类B的成员

B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员

D.类B不一定是类A的友元

4-1.关于运算符重载,下列说法正确的是( 

A.重载时,运算符的优先级可以改变。

B.重载时,运算符的结合性可以改变。

C.重载时,运算符的功能可以改变。

D.重载时,运算符的操作数个数可以改变。

4-2.下列关于运算符重载的描述中,错误的是(B)。

A.运算符重载不可以改变操作数的个数

B.运算符重载不可以改变运算符的功能

C.运算符重载不可以改变结合方向

D.运算符重载不可以改变运算优先级

4-3.关于运算符重载,下列说法正确的是(B)。

A.所有运算符都可以重载

B.通过重载,可以使运算符应用于自定义的数据类型

C.通过重载,可以创建原来没有的运算符号

D.通过重载,可以改变运算符的优先级

4-4.在一个类中可以对一个运算符进行(D)重载。

A.1种B.2种以下

C.3种以上D.多种

4-5.不能参与重载的运算符是(A)。

A.类B.函数

C.函数模板D.运算符

4-6.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( 

A.作为友元函数重载的1元运算符 

B.作为成员函数重载的1元运算符

C.作为友元函数重载的2元运算符 

D.作为成员函数重载的2元运算符

4-7.在成员函数中进行双目运算符重载时,其参数表中应带有( 

D.3

4-8.双目运算符重载为普通函数时,其参数表中应带有( 

C)个参数。

4-9.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( 

A.a.operator+(b) 

B.b.operator+(a)

C.operator+(a,b) 

D.operator(a+b)

4-10.如果表达式a==b中的“==”是作为普通函数重载

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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