继承练习
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构造函数重载将会给初始化带来多种方式
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+时,返回值的类型应当与形参类型一致。回值类型有错: class A { int x; public:
A(int t=0):x(t){ }
int operator+(const A& a1){ return x+a1.x; } }; (5分) F 1-11
虚函数是用virtual 关键字说明的成员函数。 (1分) T 1-12
将构造函数说明为纯虚函数是没有意义的。 (1分) T 1-13
抽象类是指一些没有说明对象的类。 (1分) F 1-14
动态绑定是在运行时选定调用的成员函数的。 (1分) T
operator+的返 比如以下程序中,
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++选择题练习在线全文阅读。
相关推荐: