|
一、单选题(共 15 道试题,共 60 分。) V 1. 已知函数f 的原型是void f(int *a, long & b);,变量v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是
A. f(v1, &v2);
B. f(v1, v2);
C. f(&v1, &v2);
D. f(&v1, v2);
2. 在C++语言中,数据封装要解决的问题是()
A. 数据的规范化
B. 便于数据转换
C. 避免数据丢失
D. 防止不同模块之间数据的非法访问
3. 有如下程序: #include<iostream> using namespace std; class Base { int x; public; Base{int n=0}; x(n){cout<<n;} Int getX()const{return x;} }; class Derived :public Base{ int y; public; Derived(int m, int n): y(m), Base(n){cout<<m;} Derived(int m): y(m){cout<<m;}
A. 375
B. 357
C. 0375
D. 0357
4. 类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的()
A. TM* a;
B. TN& a;
C. TM a;
D. TN a;
5. 在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()
A. fail
B. eof
C. bad
D. good
6. 假定AB为一个类,则该类的拷贝构造函数的声明语句为
A. AB &(AB x)
B. AB(AB x)
C. AB(AB &)
D. AB(AB * x)
7. 执行语句 char ch[] = "Hello"; char * p = &ch[0]; cout << p; 结果是输出()
A. 一个地址
B. H
C. Hello
D. 乱码
8. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()
A. 派生类的对象可以赋给基类的对象
B. 派生类的对象可以初始化基类的引用
C. 派生类的对象可以直接访问基类中的成员
D. 派生类的对象的地址可以赋给指向基类的指针
9. 假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为()
A. 3
B. 4
C. 6
D. 9
10. 有如下类声明:class Base{protected;int amount;public;Base(int n=0): amount(n){}int getAmount()const { retum amount; }};class Derived: public Base {protected;int value;public;Derived(int m, int n): value(m). Base(n){}Int getData()const{ return value+amount; }};已知
A. x.value+ x.getAmount()
B. x.getData()-x.gctAmount()
C. x.getData()-x.amount
D. x.value+x.amount
11. 用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是()
A. 0
B. 负数
C. 正数
D. 不确定
12. 有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5 的是()
A. a[2]
B. a[3]
C. *(p+2)
D. *p+4
13. 下列关于虚基类的描述,错误的是()
A. 设置虚基类的目的是为了消除二义性
B. 虚基类的构造函数在非虚基类之后调用
C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用
D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数
14. 下列哪种函数可以是虚的()
A. 自定义的构造函数
B. 拷贝构造函数
C. 静态成员函数
D. 析构函数
15. 有如下类定义: class MyClass{ Int value; public; MyClass(int n): value (n) {} int gerValue()const{ return value;} }; 则类MyClass 的构造函数的个数是()
A. 1 个
B. 2 个
C. 3 个
D. 4 个
二、多选题(共 5 道试题,共 20 分。) V 1. 模板定义中的类型参数可以用作()
A. 局部变量类型
B. 函数参数类型
C. 函数返回值类型
D. 数据成员类型
BCD
2. 关于类中重载赋值运算符的正确说法是()
A. 由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
B. 在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
C. 只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
D. 通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
BD
3. 在类的静态成员函数的实现体中,可以访问或调用()
A. 本类中的静态数据成员
B. 本类中非静态的常量数据成员
C. 本类中其它的静态成员函数
D. 本类中非静态的成员函数
C
4. 关于公共静态数据成员,下面说法正确的是()
A. 在main函数之前创建
B. 跟某个具体对象无关
C. 可以用类名和成员名直接访问
D. 需要在类体外初始化
BCD
5. 下面关于指针变量和引用变量的说法正确的是
A. 指针变量存放的是内存地址,并且可以置为0
B. 定义引用变量时,必须同时指明具体被引用的对象或变量
C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
D. 类中的数据成员可以是指针变量,但不能是引用变量
BC
三、判断题(共 5 道试题,共 20 分。) V 1. 多态的实现分为两类:编译时的多态和运行时的多态
A. 错误
B. 正确
2. 友元函数的声明不受访问区域的影响
A. 错误
B. 正确
3. 静态成员变量所有的对象拥有一份拷贝
A. 错误
B. 正确
4. 构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。
A. 错误
B. 正确
5. 抽象类不可以继承,只能派生
A. 错误
B. 正确
|
|