20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.下列关于对象数组的描述中,错误的是( )。
A.对象数组的下标是从0开始的
B.对象数组的数组名是一个常量指针
C.对象数组的每个元素是同一个类的对象
D.对象数组只能赋初值,而不能在定义后赋值
2.友元关系不能( )。
A.继承
B.是类与类之间是关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
3.下列函数中,可以作为虚函数的是( )。
A.普通函数
B.构造函数
C.静态成员函数
D.析构函数
4.下面哪个基类中的成员函数表示纯虚函数( )。
A.virtual void vf(int)
B.void vf(int)=0
C.virtual void vf()=0
D.virtual void vf(int)
5.()是一个在基类中说明虚函数,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。
A.纯虚函数
B.虚析构函数
C.虚构造函数
D.静态成员函数
6.下面关于友元的描述中,错误的是( )。
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
7.一个栈的入栈序列为a,b,c,则出栈序列不可能的是( )。
A.c,b,a
B.b,a,c
C.c,a,b
D.a,c,b
8.线性表最多有( )个结点没有前驱。
A.0
B.1
C.2
D.无数个
9.关于抽象类, 下列表述正确的是( )。
A.抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
B.派生类必须实现作为基类的抽象类中的纯虚函数
C.派生类不可能成为抽象类
D.抽象类不能用于定义对象
10.已知X类.则当程序执行到语句X *array[3];时,调用了( )次构造函数。
A.0
B.1
C.2
D.3
11.对静态成员的不正确描述是( )。
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
12.基类和派生类可以分别叫做( )。
A.“大类”和“小类”
B.“父类”和“子类”
C.“小类”和“大类”
D.“子类”和“父类”
13.声明一个类的对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
14.在C++中,能被派生类继承的函数是( )。
A.成员函数
B.构造函数
C.析构函数
D.拷贝构造函数
15.在一棵完全二叉树中,根结点的编号为1,按照由上到下由左到右的顺序为二叉树结点编号。若编号为5的结点存在左孩子,则左孩子结点的编号为( )。
A.9
B.10
C.11
D.12
16.从一个结点到其后继结点之间的连线称为一个分支;从一个结点X到另一个结点Y所经历的所有分支构成结点X到结点Y( )。
A.路径长度
B.分支
C.路径
D.树的路径长度
17.下面描述中,错误的是( )。
A.虚函数是没有实现的函数
B.纯虚函数的实现在派生类中
C.抽象类是有纯虚函数的类
D.抽象类指针可以指向不同的派生类
18.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )。
A.e
B.2e
C.n的平方减e
D.n的平方2减2e
19.顺序存储结构中数据元素之间的逻辑关系是由( )表示的。
A.线性结构
B.非线性结构
C.指针
D.存储位置
20.下列关于运算符重载的描述中,()是正确的。
A.运算符重载可以改变操作数的个数
B.运算符重载可以改变优先级
C.运算符重载可以改变结合性
D.运算符重载不可以改变语法结构
二、多选题 (共 15 道试题,共 30 分)
21.下列关于类的常量成员函数的说法中,正确的是( )。
A.只有类的成员函数可以在函数头后面加const关键字
B.在常量成员函数中可以获取成员变量的值、但不能修改
C.在常量成员函数中只能访问常量数据成员
D.在类体外定义常量成员函数时,函数头后面的const关键字可以省略
22.下列( )不是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数可以重载
C.构造函数不可以设置默认参数
D.构造函数必须指定函数类型
23.下面描述中,正确的是( )。
A.多承中,多个基类必须采用相同的继承方式
B.多继承中,多个基类可以采用不同的继承方式
C.多继承中创建派生类对象时会先调用派生类构造函数,再调用各基类构造函数
D.多继承中创建派生类对象时各基类构造函数的调用顺序与基类的继承顺序一致
24.下列关于拷贝构造函数的说法中,错误的是( )。
A.拷贝构造函数是可以重载
B.用一个对象给另一个对象赋值时,拷贝构造函数会被自动调用
C.用一个对象初始化另一个对象时,拷贝构造函数会被自动调用
D.创建一个对象时,有可能同时调用拷贝构造函数和其他构造函数
25.基类中的保护成员可能是派生类的( )。
A.public成员
B.private成员
C.protected成员
D.友元成员
26.下面对对象成员的正确描述是( )。
A.在一个类中可以声明本类的对象成员
B.对象成员的声明方法与普通数据成员的声明方法相同
C.在一个类中可以声明本类的指针数据成员
D.如果对象成员的构造函数有参数,则必须在声明该对象成员的同时给其构造函数传递参数值
27.不论派生类以何种方法继承基类,都可以使用基类的( )。
A.public成员
B.private成员
C.protected成员
D.所有成员
28.下列描述正确的是( )。
A.使用基类指针释放其所指向的派生类对象时,必须将析构函数声明为虚函数
B.为了减少错误,在定义类时最好将每个类的析构函数都声明为虚函数
C.当类里包含一个虚函数时,应把析构函数也声明为虚函数
D.类中包含虚函数会增加对象的尺寸
29.下列( )是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数不可以重载
C.构造函数不可以设置默认参数
D.构造函数没有函数类型
30.下列关于类的静态数据成员的说法中,正确的是( )。
A.静态数据成员的值初始化后不能再修改
B.静态数据成员必须在类体外定义和初始化
C.使用static关键字可以将一个数据成员声明为静态数据成员
D.静态数据成员的访问控制权限可以是公有、私有或保护
31.下列关于类的继承描述中,( )是正确的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
32.下面描述中,错误的是( )。
A.在基类定义的public成员在保护继承的派生类中可见,也能在类外被访问
B.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C.在基类定义的public和protected成员在保护继承的派生类中可见
D.在派生类中不可见的成员要变成可访问的,需要进行访问声明
33.关于类和对象不正确的说法包括( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象可以属于多个类
34.下列函数中,可以作为虚函数的是()。
A.析构函数
B.成员函数
C.普通函数
D.构造函数
35.二叉树的遍历方法包括:
A.先序遍历
B.中序遍历
C.后续遍历
D.逐层遍历
三、判断题 (共 15 道试题,共 30 分)
36.运算符重载实际上是对已有的运算符重新定义其功能。
37.在线性表的链式存储结构中,插入和删除操作时,元素移动次数与插入和删除元素的位置有关。
38.线性表的逻辑顺序与物理顺序总是一致的。
39.当一个函数的返回值是类对象时,则该函数执行结束后会自动调用拷贝构造函数初始化一个临时对象。
40.线性结构的数据在进行元素插入、删除等操作后可能会变成非线性结构。
41.可以在队列的任意位置插入元素。
42.在计算机中存储二叉树的方法主要有两种,分别是顺序表示法和链式表示法。
43.类的私有成员只能被它的成员函数和友元函数访问。
44.在公有继承中,基类中只有公有成员对派生类对象是可见的。
45.使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。
46.栈是操作受限的线性表,只允许在表的一端进行元素插入操作、在另一端进行元素删除操作。
47.线性表的链式存储结构中,表中元素的逻辑顺序与物理顺序一定相同。
48.多重继承中的二义性问题是由于一个派生类从不同基类中继承了同名成员变量或相同函数原型的成员函数。
49.类非成员函数形式的运算符重载函数通常采用友元函数,是为了在运算符重载中方便访问类中的非公有成员。
50.构造函数说明为纯虚函数是没有意义的。
转载请注明:奥鹏作业之家 » 南开20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业【标准答案】