答案来源:www.ybaotk.com
22秋学期(高起本1709-1803、全层次1809-2103)《程序设计基础(下)》在线作业-00003
试卷总分:100 得分:98
一、单选题 (共 20 道试题,共 40 分)
1.在一个具有n个顶点的有向图中,若所有顶点的入度之和为s,则所有顶点的度之和为( )。
A.s
B.s+1
C.s-1
D.2s
答案:
2.下面选项中,不是类的成员函数为( )。
A.构造函数
B.析构函数
C.友元函数
D.缺省参数的构造函数
答案:
3.已知一棵二叉树的先序遍历序列为AFCDGBE,中序遍历序列为CFDABGE,则该二叉树的后序遍历序列是( )。
A.CDBFEGA
B.CDFGBEA
C.CDBAFGE
D.CDFBEGA
答案:
4.下面对友元的错误描述是( )。
A.关键字friend用于声明友元
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
答案:
5.关于虚函数,下列表述正确的是( )。
A.如果在重定义虚函数时使用virtual,则该重定义函数仍然是虚函数
B.虚函数不得声明为静态函数
C.虚函数不得声明为另一个类的友元函数
D.派生类必须重新定义基类的虚函数
答案:
6.设线性表中有n个元素,( )操作,在单链表上实现要比在顺序表上实现效率更高。
A.删除所有值为x的元素
B.在最后一个元素的后面插入一个新元素
C.顺序输出前k个元素
D.交换第i个元素和第n-i-1个元素的值(i=1,1,...,n)
答案:
7.read函数的功能是从输入流中读取( )。
A.一个字符
B.当前字符
C.一行字符
D.指定若干个字符
答案:
8.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)位置插入一个新元素时,需要将( )个元素向后移动一个位置。
A.n-i
B.n-i+1
C.n-i-1
D.i
答案:
9.运算符delete删除一个动态对象时( )。
A.首先为该动态对象调用构造函数,再释放其占用的内存
B.首先释放该动态对象占用的内存,再为其调用构造函数
C.首先为该动态对象调用析构函数,再释放其占用的内存
D.首先释放动态对象占用的内存,再为其调用析构函数
答案:
10.采用顺序编号的完全二叉树,若一个分支结点的编号为i,则其右子树的根结点(即右孩子结点)编号为( )。
A.2*i
B.2*i+1
C.2*(i+1)
D.2*(i+2)
答案:
11.假设有函数模板定义如下: Template Max(T a, T b, T &c) { c=a+b; } 下列选项正确的是( )。
A.float x,y,z; Max(x,y,z);
B.const int x,y,z; Max(x,y,z);
C.int x,y; float z; Max(x,y,z);
D.float x; int y, z; Max(x,y,z);
答案:
12.有关构造函数说法不正确的是( )。
A.构造函数的名字和类的名字一样
B.在创建对象时,系统自动调用构造函数
C.构造函数无任何函数类型
D.构造函数有且只有一个
答案:
13.下列关于C++类的描述中错误的是( )。
A.类与类之间可以通过一些手段进行通信和联络
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
答案:
14.一个顺序表第一个元素的存储地址是100,每个元素的长度为4个字节,则第5个元素的地址是( )。
A.100
B.108
C.116
D.120
答案:
15.撤消对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
答案:
16.关于函数的描述中,()是正确的。
A.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
B.基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数
C.虚函数是一个成员函数
D.虚函数是一个static类型的成员函数
答案:
17.判定一个栈S(最大元素数量为m)为栈满的条件是( )。
A.S->top!=0
B.S->top==m
C.S->top==m-1
D.S->top!=m-1
答案:
18.下列对派生类的描述中,()是错误的。
A.一个派生类可以作另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
答案:
19.下面( )的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化基类的对象
D.派生类的对象的地址可以赋值给指向基类的指针
答案:
20.设线性表有n个元素,以下算法中,( )在顺序表上实现比在链表上实现效率更高。
A.输出第i(0≤i≤n-1)个元素值
B.交换第0个元素与第1个元素的值
C.顺序输出这n个元素的值
D.输出与给定值x相等的元素在线性表中的序号
答案:
二、多选题 (共 15 道试题,共 30 分)
21.下列函数中,可以作为虚函数的是()。
A.析构函数
B.成员函数
C.普通函数
D.构造函数
答案:
22.下列关于类型兼容的描述中,正确的是( )。
A.将派生类对象地址赋给基类指针后,使用基类指针可以直接访问派生类中定义的公有成员
B.将派生类对象地址赋给基类指针后,使用基类指针只能访问派生类从基类继承的公有成员
C.公有派生才具有类型兼容的特点
D.无论是公有派生还是私有派生和保护派生,都具有类型兼容的特点
答案:C
23.下列说法中正确的是( )。
A.成员函数的声明必须放在类体中
B.成员函数的声明可以放在类体中也可以放在类体外
C.成员函数的实现必须放在类体中
D.成员函数的实现可以放在类体中也可以放在类体外
答案:
24.下面关于自定义类的运算符重载的说法中,正确的是( )。
A.赋值运算符和下标运算符只能重载为类的成员函数
B.赋值运算符和下标运算符只能重载为类的友元函数
C.赋值运算符重载时一般以引用方式返回*this,表示返回赋值运算符的左操作数
D.使用重载的赋值运算符时,左操作数一定是自定义类型
答案:CD
25.基类中的保护成员在派生类中仍然是保护成员,则可能采用的继承方式为( )。
A.公有继承
B.保护继承
C.私有继承
D.友元继承
答案:
26.下面关于自定义类的运算符重载的说法中,正确的是( )。
A.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数
B.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员
C.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同
D.所有运算符都可以以类友元形式进行重载
答案:C
27.下列说法正确的是( )。
A.面向对象方法的基本观点是一切系统都是由对象构成的
B.面向对象方法的基本观点是一切系统都是由模块构成的
C.面向对象方法中通过"消息"来触发行为
D.面向对象方法中用类和对象来表示现实世界
答案:CD
28.不论派生类以何种方法继承基类,都可以使用基类的( )。
A.public成员
B.private成员
C.protected成员
D.所有成员
答案:C
29.下列函数中,可以作为虚函数的是( )。
A.普通成员函数
B.构造函数
C.静态成员函数
D.析构函数
答案:
30.已知f是以二进制读写方式打开的文件流对象,且有int型变量a,则下列选项中能正确进行文件读写操作的语句包括( )。
A.write((char*)a, sizeof(a));
B.write((char*)&a, sizeof(a));
C.read((char*)a, sizeof(a));
D.read((char*)&a, sizeof(a));
答案:
31.下列描述中,正确的是( )。
A.创建派生类对象时会先调用基类构造函数,再调用派生类构造函数
B.创建派生类对象时会先调用派生类构造函数,再调用基类构造函数
C.如果基类构造函数有参数,则必须在派生类构造函数的初始化列表中写上基类构造函数的调用语句
D.如果派生类构造函数的初始化列表中没写基类构造函数的调用,则表示调用基类的无参构造函数
答案:CD
32.下面描述中,正确的是( )。
A.可以定义ios类的对象
B.istream对象用来实现输入操作
C.ios是fstream的直接基类
D.istream是ifstream的直接基类
答案:
33.下列说法中正确的是( )。
A.一个成员函数在类体外定义,则该成员函数默认是内联函数
B.一个成员函数在类体中定义,则该成员函数默认是内联函数
C.在类体外定义成员函数需要使用::运算符指明该成员函数属于哪个类
D.类体外定义的成员函数默认为公有成员函数
答案:C
34.二叉树可以采用的存储方式包括:
A.顺序存储
B.二叉链表
C.三叉链表
D.队列
答案:C
35.当用public继承从基类派生一个类时,基类的()成员可被派生类中的成员函数访问。
A.public
B.protected
C.private
D.friend
答案:
三、答案来源:雅宝题库网(www.ybaotk.com) (共 15 道试题,共 30 分)
36.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
答案:正确
37.打开ASCII码流文件和二进制流文件时,打开方式是相同的。
答案:错误
38.二叉树就是结点度都是为2的树。
答案:错误
39.入对操作,在顺序存储结构上需要考虑"溢出"情况。
答案:正确
40.若无向图G的一个子图G'是一棵包含图G所有顶点的树,则G'称为图G的生成树。
答案:正确
41.邻接链表只能用于有向图的存储,邻接矩阵对于有向图和无向图的存储都适用。
答案:错误
42.C++语言中模板分为函数模板和类模板两种。
答案:正确
43.虚函数是用virtual关键字说明的成员函数。
答案:正确
44.运算符[]只能用成员运算符来重载,不能用友元运算符来重载。
答案:正确
45.假定类AB中有一个公用属性的静态数据成员static int bb;在类外不通过对象名给该成员bb赋值为10的写法为static int AB::bb=10;
答案:错误
46.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义构造函数。
答案:错误
47.图的一条路径中顶点的数目称为路径长度。
答案:错误
48.以app方式打开文件时,当前的读指针和写指针都定位于文件尾。
答案:正确
49.派生类中至少包含了它的所有基类的成员(除构造函数和析构函数外),在这些成员中可能有的是不可访问。
答案:正确
50.深度优先遍历类似于树的逐层遍历。
答案:错误
答案来源:www.ybaotk.com
|