面向对象程序设计综合练习题a文档格式.docx
- 文档编号:22576805
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:101
- 大小:109.30KB
面向对象程序设计综合练习题a文档格式.docx
《面向对象程序设计综合练习题a文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计综合练习题a文档格式.docx(101页珍藏版)》请在冰豆网上搜索。
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.以下正确的描述是(
C
)。
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)成员名进行访问。
A.私有
2-9.在关键字public后面定义的成员为类的(
B)成员。
2-10.类中定义的成员默认为(
B)访问属性。
A.public
B.private
C.protected
D.friend
2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(
2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(
A.x.a
B.x.a()
C.x->
a
D.x->
a()
2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(
C)。
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
)成员。
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.(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);
D
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.类的析构函数是一个对象被(
B
)时自动调用的。
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中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(
A.a.operator==(b)
B.b.operator==(a)
C.operator==(a,b)
D.operator==(b,a)
4-11.如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 综合 练习题