第 1 页 共 9 页
一、选择题(本题共 20 分,每小题 1 分)
1、下列的各类函数中,不是类的成员函数( )。
A) 构造函数 B) 析构函数 C) 友元函数 D) 拷贝初始化构造函数
2、已知: int n=10;下列表示引用的方法中,正确的是( )。
A) int &r; B) int &r=10; C) int &r=n; D) int *r=&n;
3、下列关于析构函数的说法,正确的是( )
A) 其名与类名完全相同 B) 返回类型是 void 类型
C) 函数体中必须有 delete 语句 D) 无形参,不可重载
4、已知函数原型:void fun(int a,int b=7,char z='*'); 则下面函数调用中不合法的为( )。
A) fun(5); B) fun(5,8); C) fun(5,'#'); D) fun(0,0,'*');;
5、类 A 是类 B 的友元,类 B 是类 C 的友元,则以下说法正确的是( )。
A) 类 B 是类 A 的友元 B) 类 C 是类 A 的友元
C) 类 A 是类 C 的友元 D) 以上都不对
6、关于对象成员的构造函数的调用顺序,说法正确的是( )。
A)与它们在类中说明顺序相同
B)与析构函数的调用顺序相同
C)与它们在成员初始化列表中给出的顺序相同
D)以上说法都不对
7、以下关于内联函数的说法正确的是( )
A)类的内联函数必须在类体外用关键字 inline 定义
B)类的内联函数必须在类体内定义
C)编译时将内联函数的目标代码插入每个调用该函数的地方
D)运行时将内联函数的目标代码插入每个调用该函数的地方
8、在有同名全局变量和局部变量时,可以用( )提供对全局变量的访问。
A)类运算符 B)域运算符 C) 重载 D)引用
9、假定 x 为一个类,执行 X a[3],*p[2];语句时会自动调用该类的构造函数( )次。
A) 2 B) 3 C) 4 D)5
10、下列关于 new 运算符的描述中,错误的是( )。
A) 可以 new 运算符来动态创建对象和对象数组
B) 使用 new 运算符创建的对象或对象数组,可以使用运算符 delete 删除
C) 使用 new 运算符创建对象时要调用构造函数
D) 使用 new 运算符调用对象数组时不允许指定初始值
11、下面对静态数据成员的描述中,正确的是( )。
A)类的每个对象都有自己的静态数据成员
B)静态数据成员是类的所有对象共享的数据
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用
12、如果一个类至少有一个纯虚函数,那么就称该类为( )。
A)抽象类 B)纯基类 C)派生类 D)虚类
13、若 myclass 类定义了拷贝构造函数和带一个整型参数的构造函数,还重载了赋值运算符,
则语句 myclass obj = 100;将会( )
A) 调用赋值运算符重载函数 B) 调用带一个整型参数的构造函数
C) 调用拷贝构造函数 D) 引起编译错误
14、下列哪一种情况不会调用拷贝构造函数 ( ) 。