19秋《C 语言程序设计》在线作业1-0001
试卷总分:100 得分:100
一、 单选题 (共 20 道试题,共 100 分)
1.下列情况中,不会调用拷贝构造函数的是()
A.用一个对象去初始化同一类的另一个新对象时
B.函数的形参是类的对象,调用函数进行形参和实参结合时
C.函数的返回值是类的对象,函数执行返回调用时
D.将类的一个对象赋值给该类的另一个已经存在的对象时
正确答案:?
2.已知类X中的一个成员函数说明如下:void Set(X & a); 其中,X & a的含义是()
A.指向类X的指针为a
B.将a的地址赋给变量Set
C.a是类X的对象引用,用来作为Set()的形参
D.变量X与a按位相与作为函数Set()的参数
正确答案:?
3.下列()是C++语言的有效标识符。
A.No.1
B.12345
C._No1
D.int
正确答案:?
4.下列运算符重载时,只能采用类成员函数形式的有()
A.<<
B.+
C.[]
D.==
正确答案:?
5.下列运算符中不能重载的是()
A.::
B.+
C.<<
D.&&
正确答案:?
6.在main()函数中,若有函数调用func(…),而func在类A中定义,则func函数是A类的()函数。
A.友元
B.构造
C.静态公有成员
D.析构
正确答案:?
7.下面()不能由编译系统自动生成
A.构造函数
B.析构函数
C.拷贝构造函数
D.友元函数
正确答案:?
8.若有float f=6.8;int i= int(f); 则i的值为()
A.6
B.7
C.6.8
D.不确定
正确答案:?
9.模板对类型的参数化提供了很好的支持,因此()
A.类模板的主要作用是生成抽象类
B.类模板实例化时,编译器将根据给出的模板实参生成一个类
C.在类模板中的数据成员都具有同样类型
D.类模板中的成员函数都没有返回值
正确答案:?
10.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()
A.友元函数
B.虚函数
C.构造函数
D.析构函数
正确答案:?
11.下面有关类说法不正确的是()
A.在一个类中不能说明具有类类型的数据成员
B.一个类可以有多个构造函数
C.一个类只有一个析构函数,且析构函数不能被指定参数
D.一个类中public、protected和private三者说明的顺序可以任意,且可以被使用多次,也可以不使用
正确答案:?
12.下列有关继承和派生的叙述中,正确的是()
A.如果一个派生类公有继承其基类,则该派生类对象可以直接访问基类的私有成员
B.派生类的成员函数可以访问基类的所有成员
C.基类对象可以赋值给派生类对象
D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
正确答案:?
13.空类就是没有()的类。
A.类名
B.任何成员
C.数据成员
D.成员函数
正确答案:?
14.说明友元函数的关键字为()
A.inline
B.virtual
C.friend
D.define
正确答案:?
15.用成员函数重载一元运算符θ,则显示调用方式为()
A.obj θ
B.θ obj
C.obj.operator θ()
D.operator θ(obj)
正确答案:?
16.下面对于友元函数描述正确的是()
A.实现必须在类的内部定义
B.是类的成员函数
C.破坏了类的封装性和隐藏性
D.不能访问类的私有成员
正确答案:?
17.若一个类中含有纯虚函数,则该类称为()
A.基类
B.纯基类
C.派生类
D.抽象类
正确答案:?
18.说明内联函数的关键字为()
A.inline
B.virtual
C.static
D.define
正确答案:?
19.对A?*p用new?A或(A?*)malloc(sizeof?(A))赋值,如下叙述正确的是()
A.malloc分配内存后会调用构造函数初始化,但new函数不会。
B.new分配内存后会调用构造函数初始化,但malloc函数不会。
C.new和malloc分配内存后都会调用构造函数初始化。
D.new和malloc分配内存后都不会调用构造函数初始化。
正确答案:?
20.在一个派生类对象结束其生命周期时()
A.先调用派生类的析构函数后调用基类的析构函数
B.先调用基类的析构函数后调用派生类的析构函数
C.如果基类没有定义析构函数,则只调用派生类的析构函数
D.如果派生类没有定义析构函数,则只调用基类的析构函数
正确答案:?