21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《程序设计基础(下)》在线作业
1.[单选题] 对于任意一个类,析构函数的个数最多为( )。
A.0
B.1
C.2
D.3
答:——B——
2.[单选题] 撤消对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
答:——C——
3.[单选题] 在下列选项中( )不是ostream类的对象。
A.cin
B.cerr
C.clog
D.cout
答:——A——
4.[单选题] 面向对象程序设计思想的主要特征中不包括( )。
A.封装性
B.多态性
C.继承性
D.功能分解,逐步求精
答:————
5.[单选题] 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A.派生类的对象可以赋给基类对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类的成员
D.派生类的对象的地址可以赋给指向基类的指针
答:————
6.[单选题] 当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。
A.ios::in
B.ios::out
C.ios::trunk
D.ios::binary
答:————
7.[单选题] 关于多继承二义性的描述中,错误的是()。
A.一个派生类的基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B.解决二义性的最常用的方法是对成员名的限定法
C.基类和派生类同时出现的同名函数,也存在二义性问题
D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类, 对该基类成员进行访问时,可能出现二义性
答:————
8.[单选题] 二叉树是非线性数据结构,所以( )。
A.它不能用顺序存储结构存储
B.它不能用链式存储结构存储
C.顺序存储结构和链式存储结构都能存储
D.顺序存储结构和链式存储结构都不能使用
答:————
9.[单选题] 对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为( )。
A.0
B.1
C.n
D.n+1
答:————
10.[单选题] 在下述结论中,正确的是( )
①只有一个结点的二叉树的度为0;
②二叉树的度为2;
③二叉树的左右子树可任意交换;
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③
B.②③④
C.②④
D.①④
答:————
11.[单选题] 若让元素a,b,c,d依次进栈,则出栈次序不可能出现( )的情况。
A.c,b,a,d
B.b,a,d,c
C.d,c,b,a
D.a,d,b,c
答:————
12.[单选题] 关于this指针的说法错误的是( )。
A.this指针必须显示说明
B.当创建一个对象后,this指针就指向该对象
C.成员函数拥有this指针
D.静态成员函数不拥有this指针
答:————
13.[单选题] 有关析构函数的说法不正确的是( )。
A.析构函数有且仅有一个
B.析构函数和构造函数一样可以有形参
C.析构函数的功能是用来释放一个对象
D.析构函数无任何函数类型
答:————
14.[单选题] 下列关于成员访问权限的描述中,不正确的是( )。
A.公有数据成员和公有成员函数都可以通过类对象直接访问
B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问
C.保护成员在派生类中可以被访问,而私有成员不可以
D.类或派生类的成员函数可以访问保护成员
答:————
15.[单选题] 在一棵完全二叉树中,根结点的编号为1,按照由上到下由左到右的顺序为二叉树结点编号。若编号为5的结点存在左孩子,则左孩子结点的编号为( )。
A.9
B.10
C.11
D.12
答:————
16.[单选题] 下列关于成员函数特征的描述中,错误的是( )。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值奥鹏南开答案q599792222 或请进 opzy.net
D.成员函数可以是静态的
答:————
17.[单选题] 已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为add1,则第I 个结点的地址为( )。
A.add1+(I-1)*m
B.add1+I*m
C.add1-I*m
D.add1+(I+1)*m
答:————
18.[单选题] 在一个链接队列中,假设f和r 分别是队头和队尾指针,则删除一个结点的运算时( )。
A.r=f->next;
B.r=r->next;
C.f=f->next;
D.f=r->next;
答:————
19.[单选题] 下列程序中说明的公有成员是( )
class Location
{
int X;
public:
void init(int initX,int initY);
private:
int Y;
public:
int GetX();
int GetY();
};
A.X
B.init(int initX,int initY)
C.GetX(),GetY()
D.B和C都是
答:————
20.[单选题] 在C++中,打开一个文件就是将这个文件与一个()建立关联;关闭一个文件就是取消这种关联。
A.流
B.类
C.结构
D.对象
答:————
21.[多选题] 图的遍历方法主要包括:
A.深度优先遍历
B.广度优先遍历
C.后序遍历#逐层遍历
答:————
22.[多选题] 二叉树的遍历方法包括:
A.先序遍历
B.中序遍历
C.后续遍历
D.逐层遍历
答:————
23.[多选题] 下面哪些数据结构属于非线性结构
A.线性表
B.树
C.图
D.集合
答:————
24.[多选题] 下列插入和提取运算符重载的函数原型中,正确的是( )。
A.istream& operator>>(istream&, 自定义类型&)
B.istream& operator<<(istream&, 自定义类型&)
C.ostream& operator>>(ostream&, 自定义类型&)
D.ostream& operator<<(ostream&, 自定义类型&)
答:————
25.[多选题] 下列打开文件的语句中,能对打开文件进行写操作的选项包括( )。
A.fstream f(“file.txt”);
B.ofstream f(“file.txt”);
C.ifstream f(“file.txt”);
D.ifstream f(“file.txt”,ios::out);
答:————
26.[多选题] 下面描述中,正确的是( )。
A.可以定义ios类的对象
B.istream对象用来实现输入操作
C.ios是fstream的直接基类
D.istream是ifstream的直接基类
答:————
27.[多选题] 下面关于自定义类的运算符重载的说法中,正确的是( )。
A.C++中的所有运算符都可以重载
B.不仅可以重载C++中已有的运算符,还可以创建新的运算符
C.运算符重载实质上就是函数重载
D.运算符重载的函数名是operator
答:————
28.[多选题] 下面对构造函数的错误描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数不可以重载
D.构造函数可以设置默认参数
答:————
29.[多选题] 下列输入输出流类对象中,带缓冲区支持的包括( )。
A.cin
B.cerr
C.clog
D.cout
答:————
30.[多选题] 已知Circle类定义如下所示,则下列说法正确的是( )。
class Circle
{
public:
double m_x,m_y;
double m_radius;
void setCenter(double x,double y)
{
m_x=x;
m_y=y;
}
void setRadius(double radius)
{
m_radius=radius;
}
double getArea( )
{
return 3.14 * m_radius * m_radius;
}
};
A.m_x、m_y和m_radius都是Circle类的成员变量
B.setCenter、setRadius和getArea都是Circle类的成员函数
C.类定义体后面的分号可以省略
D.将double m_radius;改为double m_radius=1;,则表示m_radius成员变量的初值为1
答:————
31.[多选题] 在派生类中可以直接访问基类的()。
A.公有成员
B.保护成员
C.私有成员
D.友元成员
答:————
32.[多选题] 下列关于类的继承描述中,( )是错误的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,但一个派生类只能由一个基类
答:————
33.[多选题] 下列说法中正确的是( )。
A.成员函数的声明必须放在类体中
B.成员函数的声明可以放在类体中也可以放在类体外
C.成员函数的实现必须放在类体中
D.成员函数的实现可以放在类体中也可以放在类体外
答:————
34.[多选题] 下面对构造函数的正确描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
答:————
35.[多选题] 如果类A继承了类B,则类B称为()。
A.派生类
B.基类
C.子类
D.父类
答:————
36.[判断题] 在通信、数据压缩等领域被广泛应用的哈夫曼树采用的是二叉树结构。
A.对
B.错
答:————
37.[判断题] 一般将C++中的类声明和类实现分别放到两个文件中。
A.对
B.错
答:————
38.[判断题] 队列是操作受限的线性表,只允许在表的一端进行元素插入操作、在另一端进行元素删除操作。
A.对
B.错
答:————
39.[判断题] 二叉树是有序树。
A.对
B.错
答:————
40.[判断题] 在用class定义一个类时,数据成员和成员函数的默认访问权限是public。
A.对
B.错
答:————
41.[判断题] 类的成员函数中可以直接访问对象成员中的私有成员。
A.对
B.错
答:————
42.[判断题] 析构函数不能被继承。
A.对
B.错
答:————
43.[判断题] 在有n个顶点的有向图中,每个顶点的度最大可达n-1。
A.对
B.错
答:————
44.[判断题] 多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。
A.对
B.错
答:————
45.[判断题] 图的生成树即是树也是图。
A.对
B.错
答:————
46.[判断题] 运算符重载实际上是对已有的运算符重新定义其功能。
A.对
B.错
答:————
47.[判断题] 模板定义中标识类型的参数必须用关键字Type修饰。
A.对
B.错
答:————
48.[判断题] 说明或定义对象时,类名前面不需要加class关键字。
A.对
B.错
答:————
49.[判断题] 预定义的提取符和插入符是可以重载的。
A.对
B.错
答:————
50.[判断题] 使用指向对象的指针来访问类的成员,则必须使用的运算符是->。
A.对
B.错
答:————