电子科技大学电子科大16秋《C++语言程序设计》在线作业3
一、单选题(共 20 道试题,共 100 分。)
1. 有类模板定义如下:template
A. Dream a
B. Dream
D. Dream
2. 关于对象成员的构造函数的调用顺序,说法正确的是() A. 与它们在成员初始化列表中给出的顺序相同 B. 与析构函数的调用顺序相同
C. 与它们在类中定义说明的顺序相同 D. 以上说法都不对 正确答案:
3. 下面()不能由编译系统自动生成 A. 构造函数 B. 析构函数 C. 拷贝构造函数 D. 友元函数 正确答案:
4. 下列运算符不能重载为友元函数的是() A. = () [] -> B. + - ++ -- C. > < >= <= D. += -= *= /= 正确答案:
5. 在一个派生类对象结束其生命周期时()
A. 先调用派生类的析构函数后调用基类的析构函数 B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数 D. 如果派生类没有定义析构函数,则只调用基类的析构函数 正确答案:
6. 下列情况中,不会调用拷贝构造函数的是() A. 用一个对象去初始化同一类的另一个新对象时
B. 函数的形参是类的对象,调用函数进行形参和实参结合时 C. 函数的返回值是类的对象,函数执行返回调用时
D. 将类的一个对象赋值给该类的另一个已经存在的对象时 正确答案:
7. 若一个类中含有纯虚函数,则该类称为() A. 基类 B. 纯基类 C. 派生类 D. 抽象类 正确答案:
8. 对A *p用new A或(A *)malloc(sizeof (A))赋值,如下叙述正确的是() A. malloc分配内存后会调用构造函数初始化,但new函数不会。 B. new分配内存后会调用构造函数初始化,但malloc函数不会。 C. new和malloc分配内存后都会调用构造函数初始化。 D. new和malloc分配内存后都不会调用构造函数初始化。 正确答案:
9. 类的析构函数的作用是() A. 一般成员函数的初始化 B. 类的初始化 C. 对象的初始化
D. 删除类创建的对象 正确答案:
10. C++源程序文件的扩展名为() A. .cpp B. .c C. .c++ D. .dll
正确答案:
11. 下列运算符中不能重载的是() A. :: B. + C. << D. &&
正确答案:
12. 不能参与重载的是() A. 类 B. 函数 C. 函数模板 D. 运算符 正确答案:
13. 含有()的类称为抽象类,不能直接用它实例化对象。 A. 纯虚函数 B. 虚函数 C. 静态成员 D. 友元 正确答案:
14. 在下列函数原型中,可以作为类A构造函数的是() A. void A(int) B. int A() C. A(int)const D. A(int) 正确答案:
15. 如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A. myclass operator++() B. myclass operator++( int ) C. myclass& operator++() D. myclass& operator++( int ) 正确答案:
16. new必须与()配对使用。 A. close B. delete C. return D. exit
正确答案:
17. 下列运算符中()可以进行运算符重载 A. new B. :: C. sizeof D. ?:
正确答案:
18. 用成员函数重载一元运算符θ,则显示调用方式为() A. obj θ B. θ obj
C. obj.operator θ() D. operator θ(obj) 正确答案:
19. 若在类外有函数调用X::func();则函数func是类 X的()函数。 A. 私有静态成员函数 B. 公有非静态成员函 C. 公有静态成员函数 D. 友元函数 正确答案:
20. 运算符重载是对已有的运算符赋予多重含义,因此()
A. 可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义 B. 可以改变一个已有运算符的优先级和操作数个数
C. 只能重载C++中已经有的运算符,不能定义新运算符 D. C++中已经有的所有运算符都可以重载 正确答案: