《面向对象程序设计》习题三答案
一、单项选择题(本大题共 25小题,每小题 2 分,共 50分)
1、用“ >>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符
A 、空格或逗号 B 、逗号或回车 C 、逗号或分号 D 、空格或回车
2、 C++中声明常量的关键字是(A )。
A 、 const B 、 extern C 、 public D 、 enum
3、 以下叙述中正确的是( B )
A、 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B、 使用con st定义的常量名有类型之分,其值在程序运行时是不可改变的
C、 在程序中使用内置函数使程序的可读性变差
D在定义函数时可以在形参表的任何位置给出缺省形参值
4、 下列的符号常变量定义中,错误的定义是( C )。
A、 const M=10; B、 const int M=20;
C、 const char ch; D 、 const bool mark=true;
5、 函数原型语句正确的是( B )。
A、 int Function(void a)
B、 void Function (int);
C、 int Function(a);
D、 void int(double a);
6、 在关键字 private 后面定义的成员为类的( A )成员。
A、私有 B、公用 C、保护 D、任何
7、 在一个类的定义中,包含有( C )成员的定义。
A、数据 B 、函数 C、数据和函数 D、数据或函数
8、 在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A、私有 B、公用 C、保护 D、任何
9、 在关键字 public 后面定义的成员为类的( B )成员。
A、私有 B、公用 C、保护 D、任何
10、 类中定义的成员默认为( B )访问属性。
A 、 public B、 private C、 protected D、 friend 11、每个类( C )构造函数
A 、只能有一个 B 、可以有公用的
C、可以有多个 D 、只可有缺省的
12、 对类对象成员的初始化是通过构造函数中给出的( B )实现的。
A、函数体 B 、参数初始化表
C、参数表 D 、参数初始化表或函数体
13、 假定AB为一个类,则执行“ AB X; ”语句时将自动调用该类的(B ).。
A、有参构造函数 B 、无参构造函数
C、复制构造函数 D 、赋值重载函数
14、 假定AB为一个类,则执行 “AB x(a,5); ”语句时将自动调用该类的( A ) 0
A、带参构造函数 B、无参构造函数
C、复制构造函数 D、赋值重载函数
15、 假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数, 则执行“CTest objTest; ”语句时将自动调用该类的( B )0
A析构函数的定义、 有参构造函数 B 、无参构造函数
C、复制构造函数 D 、赋值构造函数
16、 在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( B )0
A 、作为友元函数重载的 1 元运算符
B、 作为成员函数重载的1元运算符
C 、作为友元函数重载的 2 元运算符
D作为成员函数重载的2元运算符
17、 在成员函数中进行双目运算符重载时,其参数表中应带有( B )个参数0
A、 0 B、 1 C、 2 D、 3
18、 双目运算符重载为普通函数时,其参数表中应带有( C )个参数0
A、 0 B、 1 C、 2 D、 3
19、 如果表达式 a+b 中的“ +”是作为成员函数重载的运算符, 若采用运算符函数调用格式, 则可 表示为( A )0
A、 +(b) B、 +(a)
C 、 operator+(a,b) D、 operator(a+b)
20、 如果表达式a==b中的“==”是作为普通函数重载的运算符, 若采用运算符函数调用格式,则 可表示为( C )0
A、 ==(b) B 、 ==(a)
21、派生类的成员函数可以直接访问基类的( B )成员。
A、所有 B 、公有和保护
C、保护和私有 D、私有
22、 派生类可以访问其基类的( D )。
A、公用成员 B 、保护成员 C 、私有派生 D 、公用和保护成员
23、 对于类中定义的成员,其隐含访问权限为( C )。
A 、 public B 、 ptotected C 、 private D 、 static
24、 在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为( A )方 式。
A、私有继承 B、非私有继承 C、保护继承 D、公用继承
25、 在公用继承的情况下,基类成员在派生类中的访问权限( B )
A、受限制 B 、保持不变 C 、受保护 D 、不受保护
二、判断题(本大题共25小题,每小题2分,共50分,正确填“ T”,错误填“ F”)
1、 字符串 "sdfgh" 的长度是 5。( T )
2、 将字符串常量存放到字符串变量时,包含字符串本身和结束符“ \0 ”。( F )
3、 关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。 ( T )
4、 使用 new 运算符创建数组时,可以为该数组指定初始值( F )。
5、 在设计类时一般把数据成员设置为私有的, 把函数成员设置为公用的,从而实现了公用接口和 私有实现的分离。( T )
6、 析构函数必须指定返回类型以及函数参数。( F )
7、 如果定义了一个类的对象数组, 该数组有 10 个元素,则要调用 10 次构造函数来对每个元素初 始化。( T )。
8、 友元函数说明在类体内,它是一种成员函数。( F )
9、 友元类必须被说明为公用成员。( F )
10、 运算符重载以后,其优先级和结合性都不能改变。( T )
11、 重载单目运算符作为类的成员函数,函数没有参数。( T )
12、 将运算符“ +”函数重载为类的成员函数,交换律不适用。( T )
13、 不能通过派生类对象引用从私有基类继承过来的任何成员。( T )
14、若类B是类A的私有派生类,类C是类B的私有派生类,则类C可访问类A的公用成员。(F )
15、在声明派生类时,派生类把基类的的构造函数也一起继承过来。( F )
16、派生类能够继承基类的析构函数。( F )
17、使用虚函数可以避免多重继承产生的二义性。( T )
18、当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的 相同类型的同名函数也是虚函数。( T )
19、纯虚函数是在基类中说明的虚函数,它在该基类中必须定义具体的操作内容。( F )
20、不可以定义抽象类的对象。 ( T )
21、使用字符串流时必须打开文件。( F )
22、程序运行过程出现异常是由于语法错误引起的。( F )
23、在C++勺异常处理方法中,try块和catch块必须作为一个整体出现。(T )
24在C++中,在文件中只能用“ #include <iostream>包含头文件iostream,而不能用“#include <>包含头文件 iostream 。( F )
25、C++中的所有运算符都允许重载。(F )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论