一、单选题(共 20 道试题,共 60 分。)V
1. 关于new运算符的下列描述中,()是错的。
A. 它可以用来动态创建对象和对象数组
B. 使用它创建的对象和对象数组可以使用运算符delete删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时必须指定初始值
满分:3 分
2. 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A. 派生类的对象可以赋给基类的对象
B. 派生类的对象可以初始化基类的引用
C. 指向派生类对象的基类指针可以直接访问派生类中的成员
D. 派生类的对象的地址可以赋给指向基类的指针
满分:3 分
3. C++程序的执行总是从()开始的。
A. main函数
B. 第一行
C. 头文件
D. 函数注释
满分:3 分
4. 关于函数模板,描述错误的是()。
A. 函数模板必须由程序员实例化
B. 函数模板的实例化由编译器实现
C. 一个类定义中,只要有一个函数模板,则这个类是类模板
D. 若类模板的成员函数是函数模板,则类模板实例化后,成员函数也随之实例化
满分:3 分
5. 如果类A被说明成类B的友元,则()。
A. 类A的成员即类B的成员
B. 类B的成员即类A的成员
C. 类A的成员函数不得访问类B的成员
D. 类B不一定是类A的友元
满分:3 分
6. 下列不是描述类的成员函数的是()。
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
满分:3 分
7. 下列()的调用方式是引用调用。
A. 形参是引用,实参是变量
B. 形参和实参都是变量
C. 形参是变量,实参是地址值
D. 形参是指针,实参是地址值
满分:3 分
8. 撤销包含有对象成员的派生类对象时,自动调用析构函数的执行顺序依次为()的析构函数。
A. 基类、自己所属类、对象成员所属类
B. 对象成员所属类、基类、自己所属类
C. 自己所属类、对象成员所属类、基类
D. 基类、对象成员所属类、自己所属类
满分:3 分
9. 应在下列程序划线处填入的正确语句是()。 #include class Base { public: void fun(){cout<<"Base::fun"<<ENDL;} }; class Derived:public Base { void fun() {_____________ //显示调用基类的函数fun() cout<<"Derived::fun"<<ENDL; } };
A. fun();
B. Base.fun();
C. Base::fun();
D. Base->fun();
满分:3 分
10. 当使用fstream流类定义一个流对象并打开一个磁盘文件时, 文件的隐含打开方式为()。
A. ios::in
B. ios::out
C. ios::in|ios::out
D. 以上都不对
满分:3 分
11. 在下面有关静态成员函数的描述中,正确的是()。
A. 在静态成员函数中可以使用this指针
B. 在建立对象前,就可以为静态数据成员赋值
C. 静态成员函数在类外定义时,要用static前缀
D. 静态成员函数只能在类外定义
满分:3 分
12. 假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=aa*bb;}”, 则执行“A x(3,6);”语句后,x.a和x.b的值分别为()。
A. 3和6
B. 6和3
C. 3和18
D. 6和18
满分:3 分
13. 如有以下模板类定义: Template <class T> class sum { T a, b; Public: Sum (T x, T y); } 则在类体外定义构造函数正确的是()。
A. template <class T> sum::sum(T x,T y) { a=x; b=y; }
B. template <typename T> sum(T x,T y) { a=x; b=y; }
C. template <class T> sum<T>::sum(T x,T y) { a=x; b=y; }
D. sum<T>::sum(T x,T y) { a=x; b=y; }
满分:3 分
14. ()是析构函数的特征。
A. 一个类中只能定义一个析构函数
B. 析构函数在对象创建时调用
C. 析构函数的定义只能在类体内
D. 析构函数可以有一个或多个参数
满分:3 分
15. 若已知char str[20],有语句 cin>>str;,当输入为:This is a cat,则str中的内容为()。