C++程序设计练习题与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++g 序设计练习题
一、填空题
1.对象的三大基本特性分别为多态性、 ( ) 、封装性。
2.赋值运算符应重载为 ( ) 函数。
3.用 ( )声明的基类称为虚基类。 4.用 (
)声明的函数称为虚函数。
5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的 (
)。
6.静态成员是对象的成员, ( )函数不是类的成员。 7.在函数体之前加 (
)关键字可以防止覆盖函数改变数据成员的值。
8.一个 const 对象只能访问 ( ) 成员函数。
9.使用友元函数是为了提高程序效率,且节约了
(
)开销。
10.
类名为“ ClassName ”的类,其拷贝构造函数的原型说明是
( )。
11.由关键字 private 、public 和 protected 限定成员的访问权限分别是 (
)、(
)和(
)。缺
省关键字时成员的访问权限为 ( )。
12. 如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为
默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的
( 13.
静态成员函数是使用关键字 ( )说明的成员函数。
14.
一个函数的原型声明为“ void FunName(int=0, double=0, char='x'); ”,则
调用 FunName 函数的方法
共有 (
)种。
15.
编译时多态性是通过 (
)实现的;运行时多态性是通过 ( )实现
的。
16.
C++通过(
)实现编译时多态性,通过 ( )实现运行时多态性。
17•在C++中,声明类的关键字是( )。 18 .声明C++模板的关键字是(
)。
19. 调用函数原型声明为“
void FunName(short,
int=0, float=1.0); ”的方法有 ( )种。
20. 处理 C+ +异常的方法:采用 ( )结构。
21 .用关键字 (
)、(
)和(
)限定的成员,其访问权限分别为:公有的、私有的和保护的。 缺省关键字时,成员的访问权限为 (
)。
22. 在 C++ 中,处理 ( )的方法是采用 try-catch 结构。
23. 在 C++ 中,用关键字 ( )说明内置函数。
24. 在 C++ 中,声明友元函数的关键字是 (
)。
25.
将公共基类说明为 ( )时,多重派生过程中公共基类在派生类中就只有一个拷
贝了。
26.
在 C++ 中,如果函数调用在前、定义在后,就必须先对函数进行 (
)。
27.
在成员函数头之后、函数体之前加 ( )修饰的成员函数称为类的常
成员函数。
28.
包含纯虚函数的类称为抽象类,这种类只能用作 ( )
来派生新类。由于抽象类的特殊性,我们 可以说明抽象类的 (
),但不能说明抽象类的 (
)。
29.
说明函数类型为“ double ”、函数名为“ vifun ”且无参数的纯虚函数的表达形式为
( )。
30.
说明静态成员要使用关键字 ( )。
(
);如果虚基类没有
)函数。
31 .当函数调用在前定义在后时,必须先对函数进行( )说明。
32.类名为“ ClassN”的类的拷贝构造函数的函数原型说明为( )。
33.抽象类是包含( )的类,必须注意:不能说明抽象类的( ),但可说明抽象类的( )。
34.流插入运算符<<只能重载为友元函数,重载流插入运算符<<的函数名为( )。
35.要防止在该成员函数中改变数据成员的值,就要在类的成员函数名之后、函数体之前加上关键字
36.类和对象的关系可表述为:类是对象的 ( ),而对象则是类的 ( )。
37.在 C++ 中,三种继承方式的说明符号为 (
)、(
)和(
),如果不加说明,则默认的继
承方式为 ( ) 。
38.如果只想保留公共基类的一个复制,就必须使用关键字 (
)把这个公共基类声明为虚基类。
39.若要把 void myfun( ) 定义为类 A 的友元函数,则应在类 A 的声明中加入语句 ( )。
40.类的静态成员分为 (
)和(
)。
41.运算符重载要求保持其原来的操作数个数、 (
)、 (
)和语法结构。
42.通过关键字 (
)可以声明模板,通过关键字 (
)指定函数模板的类型参数。 43•请列出C++中两种用户自定义的数据类型: (
)、(
)。
44 .构造函数的作用是
(
)。
45 .后置自增运算符“ ++ ”重载为类的成员函数
.(设类名为ClassName)的形式为(
)。
二
、单选题
1. 继承机制的作用是 (
)
A) 信息隐藏
B) 数据封装 C) 定义新类
D)
数据抽象 2.
类的析构函数的作用 曰, 是 ( )
A) 一般成员函数 B) 类的初始化
C) 对象的初始化
D)
删除对象创建的所有对象 3. 类的析构函数是在
(
)调用的。
A) 类创建时 B) 创建对象时
C) 删除对象时
D)
不自动调用
4.在 (
)情况下适宜采用 inline 定义内联函数。
A) 函数体含有循环语句 B) 函数体含有递归语句 C) 函数代码少、频繁调用
D) 函数代码多、不常调用
5 •如果类A 被说明成类B 的友元,则() A) 类 A 的成员即类 B 的成员 B) 类 B 的成员即类 A 的成员
C)类A 的成员函数不得访问类
B 的成员D)类B 不一定是类A 的友元
6 .在类中声明转换函数时不能指定 ()
A) 参数
B) 访问权限
C) 操作
D) 标识符
7.在公有继承的情况下,基类成员在派生类中的访问权限
( )
A) 受限制 B) 保持不变 C) 受保护
D)
不受保护 &在C++类体系中,
不能被派生类继承的有
( )
A) 转换函数
B) 构造函数
C) 虚函数
D)
静态成员函数 9.假定 ClassN 为一 个类,则执行“ ClassN x; ”语句时将自动调用该类的 ( ) A) 有参构造函数 B) 无参构造函数
C) 拷贝构造函数
D)
赋值构造函数 10. C++ 语言建立类族是通过 (
)
A) 类的嵌套 B) 类的继承
C) 虚函数 D)
抽象类
11. 重载一元运算符--为类A 的成员运算符,若有类 A 的对象obj ,则表达式--obj 被C++编译器解释 为( )。
12 •以下有四种关于类的说法,其中不正确的是 (
A) 构造函数可以指定参数,但不能指定函数类型 C) 析构函数不可以指定参数,但可以指定函数类型 13.面向对象程序设计讲求封装性,在 C++中封装是借助于()实现的。 A) 结构 B) 数组 C) 类
D) 函数
A) obj.operator -- ( ) B) operator -- (obj) C) obj::operator -- ( ) D) obj:operator -- ( ) )。
B) 一个类可以有多个构造函数 D) 一个类只能有一个析构函数