一、选择题(40)
1. C++对C语言作了很多改进,下列描述中( D )使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
2. 下列描述中,( C )是错误的。
A、内联函数主要解决程序的运行效率问题;
B、内联函数的定义必须出现在内联函数第一次被调用之前;
C、内联函数中可以包括各种语句;
D、对内联函数不可以进行异常接口声明;
3. 在C++中,关于下列设置缺省参数值的描述中,( B )是正确的。
A、不允许设置缺省参数值;
B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C、只能在函数的定义性声明中指定参数的缺省值;
D、设置缺省参数值时,必须全部都设置;
4. ( D )不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
5. ( D )是析构函数的特征。
A、析构函数可以有一个或多个参数;
B、析构函数名与类名不同;
C、析构函数的定义只能在类体内;
D、一个类中只能定义一个析构函数;
6. 关于成员函数特征的下列描述中,( A )是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
7. 下列静态数据成员的特性中,( C )是错误的。
A、说明静态数据成员时前边要加修饰符static;
B、静态数据成员要在类体外进行初始化;
C、静态数据成员不是所有对象所共用的;
D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;
8. 友元的作用是(A )。
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
9. 关于new运算符的下列描述中,( D )是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
10. 关于delete运算符的下列描述中,( C )是错误的。
A、它必须用于new返回的指针;
B、使用它删除对象时要调用析构函数;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符号,不管所删除数组的维数。
11. const int *p说明不能修改(B )。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者;
12. 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,(A )是正确的;
A、void print() const;
B、const void print();
C、void const print();
D、void print(const);
13. 派生类的对象对它的基类成员中( A )是可以访问的。
A、公有继承的公有成员;
B、公有继承的私有成员;
C、公有继承的保护成员;
D、私有继承的公有成员;
14. 14、设置虚基类的目的是(B )。
A、简化程序;
B、消除二义性;
C、提高运行效率;
D、减少目标代码;
15. 下列描述中,正确的是(C )
A、虚函数是一个static 类型的成员函数;
B、虚函数是一个非成员函数;
C、抽象类是指具有纯虚函数的类;
D、抽象类可以说明其对象;
16. 下列描述中,( D )是不正确的。
A、面向对象程序设计可重用性较好;
B、对象之间通过消息进行信息传递;
C、多态性体现了行为共享;
D、面向对象方法的核心是继承;
17. 执行下列语句后的输出结果是( C )。
int hot=100;
int &rad=hot;
hot+=100;
cout<<rad<<endl;
A、0;
B、100;
C、200;
D、300;
18. 在C++中,关于下列函数参数的描述中,( B )是正确的。
A、C++语言中,实参是按照自左至右的顺序求值的;
B、若一个参数设置了默认值,则其右边的所有参数都具有默认值;
C、函数参数的默认值不允许是表达式;
D、设置参数默认值时,应该全部参数都设置;
19. 在(C )情况下适宜采用inline定义内联函数。
A、函数体含有循环语句;
B、函数体含有递归语句;
C、函数代码小,频繁调用;
D、函数代码多,不常调用;
20. 定义析构函数时,应该注意(C )。
A、其函数名与类名完全相同;
B、函数返回类型是void类型;
C、无形参,也不可重载;
D、函数体中必须有delete语句;
21. 下列关于构造函数的描述中,(A )是正确的。
A、构造函数可以设置缺省参数;
B、构造函数可以被继承;
C、构造函数可以对静态数据成员进行初始化;
D、构造函数可以说明为虚函数;
22. 友元的作用是(A )。
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
23. int * const p说明不能修改(A )。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者;
24. 关于堆运算符的下列描述中,(C )是错误的。
A、使用堆运算符可以动态建立或删除对象;
B、new运算符创建对象时要调用构造函数;
C、可以在使用new[]创建数组时,为每个数组元素指定初始值;
D、delete运算符可以作用于空指针;
25. 关于继承的描述中,(B )是正确的。
A、派生类是基类的子集;
B、析构函数不能被继承;
C、子类型关系是可逆的;
D、派生类是基类的子类型;
26. 下列关于类型转换的描述中,(A )是错误的。
A、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型;
B、逗号表达式的类型是最后一个表达式的类型;
多态性与虚函数 C、赋值表达式的类型是左值的类型;
D、由低向高的类型转换是保值映射。
27. ( D )不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
28. 在C++中,关于下列设置参数默认值的描述中,(C )是正确的。
A、不允许设置参数的默认值;
B、设置参数默认值只能在定义函数时设置;
C、设置参数默认值时,应该是先设置右边的,再设置左边的;
D、设置参数默认值时,应该全部参数都设置。
29. 关于new运算符的下列描述中,(D )是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值。
30. 重载函数在调用时选择的依据中,(D )是错误的。
A、参数个数;
B、参数的类型;
C、函数名字;
D、函数的类型。
31. 下列描述中,(D )是抽象类的特性。
A、可以说明虚函数;
B、可以进行构造函数重载;
C、可以定义友元函数;
D、不能说明其对象。
32. (A )是析构函数的特征。
A、一个类中只能定义一个析构函数;
B、析构函数名与类名不同;
C、析构函数的定义只能在类体内;
D、析构函数可以有一个或多个参数;
33. 关于delete运算符的下列描述中,(C )是错误的。
A、它必须用于new返回的指针;
B、它也适用于空指针;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符,不管所删除数组的维数。
34. const int *p说明不能修改(B )。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者。
35. 关于子类型的描述中,(A )是错误的。
A、子类型就是指派生类是基类的子类型;
B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;
C、在公有继承下,派生类是基类的子类型;
D、子类型关系是不可逆的。
36. 在下列关键字中,用于说明类中公有成员的是( A )。
A.public;
B.private;
C.protected;
D.friend
37. 在下列的各类函数中,( C )不是类的成员函数。
A.构造函数;
B.析构函数;
C.友元函数;
D.拷贝初始化构造函数
38. 作用域运算符的功能是( D )。
A. 标识作用域的级别的;
B. 指出作用域的范围的;
C .给定作用域的大小的;
D. 标识某个成员是属于哪个类的。
39. ( B )是不可以作为该类的成员的。
A.自身类对象的指针;
B. 自身类的对象;
C. 自身类对象的引用;
D. 另一个类的对象。
40. ( D )不是构造函数的特征。
A. 构造函数的函数名与类名相同;
B. 构造函数可以重载;
C. 构造函数可以设置缺省参数;
D. 构造函数必须指定类型说明。
41. ( A )是析构函数的特征。
A. 一个类中只能定义一个析构函数;
B. 析构函数名与类名不同;
C. 析构函数的定义只能在类体内;
D. 析构函数可以有一个或多个参数。
42. 通常的拷贝初始化构造函数的参数是( C )。
A. 某个对象名;
B. 某个对象的成员名;
C. 某个对象的引用名;
D. 某个对象的指针名。
43. 关于成员函数特征的下述描述中,( A )是错误的。
A. 成员函数一定是内联函数;
B. 成员函数可以重载;
C. 成员函数可以设置参数的缺省值;
D. 成员函数可以是静态的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论