继承练习
1.在派生类对基类继承的传递性中,C 是错误的。 (2分)
A 在公有继承方式下,直接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员
B 在公有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员
C 在私有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员
D 不管是私有继承还是公有继承,基类中的私有成员在派生类的作用域内都是不可能见的。
2.下列有关继承和派生的叙述中,正确的是: C (2分)
A 派生类不能访问通过私有继承的基类的保护成员
B 多继承的虚基类不能够实例化
C如果基类没有默认构造函数,派生类就应当定义带形参的构造函数
D 类的的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
第一次上机课
3.设x和y均为bool量,则x&&y为真的条件是(A)。 (2分)
A它们均为真
B其中一个为真
C它们均为假
D其中一个为假
4.设int x;,则经过(C)后,语句*px=0;可将x值置为0。 (2分)
A int * px;
B int const * px=&x;
C int * const px=&x;
D const int * px=&x;
第三次上机课
2-1
在以下哪种情形,复制构造函数会被调用。 ( B )(2分)
A当一个对象采用引用方式,作为参数传递给一个函数
B当一个函数采用值方式,返回一个对象
C当一个对象赋值给另一个对象
D以上答案都不对
2-2
对于以下关于友元的说法(D) (2分)
A如果函数fun被声明为类A的友元函数,则该函数成为A的成员函数
B如果函数fun被声明为类A的友元函数,则该函数能访问A的保护成员,但不能访问私有成员
C如果函数fun被声明为类A的友元函数,则fun的形参类型不能是A。
D以上答案都不对
2-3
对于类之间的友元关系:(D) (2分)
A如果类A是类B的友元,则B的成员函数可以访问A的私有成员
B如果类A是类B的友元,则B也是A的友元。
C如果类A是类B的友元,并且类B是类C的友元,则类A也是类C的友元。
D以上答案都不对。
2-4
友元的作用是 (A)(2分)
A提高程序的运用效率
B加强类的封装性
C实现数据的隐藏性
D增加成员函数的种类
2-5
若有以下调用语句,则不正确的fun( )函数的首部是:(D) (2分)
int main( ) { int a[50]={1},n=20; fun(n,&a[9]); … }
A void fun(int m,int x[ ])
B void fun(int s,int h[41])
C void fun(int p,int *s)
D void fun(int n,int a)
2-6
若有如下函数调用语句: func(rec1,rec2+rec3,(rec4,rec5)); 则该函数调用语句中,含有的实参个数是:(A) (2分)
A 3
B 4
C 5
D 有语法错误
2-7
给定以下类声明,哪个成员函数可能改变成员变量data? (D)(2分)
class A {
public:
void f1 (int d);
void f2 (const int &d);
void f3 (int d) const;
private:
int data;
};
A f1
B f2
C f3
D f1和f2
2-8
以下程序中,new语句干了什么。(C) (2分)
int** num;
num = new int* [20];
A 分配了长度为20的整数数组空间,并将首元素的指针返回。
B 分配了一个整数变量的空间,并将其初始化为20。
C 分配了长度为20的整数指针数组空间,并将num[0]的指针返回。
D 存在错误,编译不能通过。
第二次上机课
2-1
重载函数在调用时选择的依据中,错误的是(D)。 (2分)
A 函数的参数
B 参数的类型
C 函数的名字
D 函数的类型
2-2
对定义重载函数的下列要求中,( C )是错误的。 (2分)
A要求参数的个数不同
B要求参数中至少有一个类型不同
C要求函数的返回值不同
D要求参数个数相同时,参数类型不同
2-3
下列函数中,(C )不能重载。 (2分)
A成员函数
B非成员函数
C析构函数
D构造函数
2-4
下列对重载函数的描述中,( A )是错误的。 (2分)
A重载函数中不允许使用默认参数
B重载函数中编译根据参数表进行选择
C不要使用重载函数来描述毫无相干的函数
D构造函数重载将会给初始化带来多种方式
const的作用2-5
下列运算符中,( C )运算符不能重载。 (2分)
A &&
B [ ]
C ::
D <<
2-6
下列关于运算符重载的描述中,( D )是正确的。 (2分)
A运算符重载可以改变操作数的个数
B运算符重载可以改变优先级
C运算符重载可以改变结合性
D运算符重载不可以改变语法结构
第四次上机
1-1
因为静态成员函数不能是虚函数,所以它们不能实现多态。 (5分)
T
1-2
函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。 (1分)
T
1-3
重载函数可以带有默认值参数,但是要注意二义性。 (1分)
T
1-4
多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。 (1分)
T
1-5
对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。 (1分)
F
1-6
对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。 (1分)
T
1-7
重载运算符可以保持原运算符的优先级和结合性不变。 (1分)
T
1-8
预定义的提取符和插入符是可以重载的。 (5分)
T
1-9
模板函数可以用同名的另一模板函数重载。(5分)
T
1-10
重载operator+时,返回值的类型应当与形参类型一致。 比如以下程序中,operator+的返回值类型有错:
class A {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论