南开20秋学期《程序设计基础下》在线作业 3.docx
《南开20秋学期《程序设计基础下》在线作业 3.docx》由会员分享,可在线阅读,更多相关《南开20秋学期《程序设计基础下》在线作业 3.docx(11页珍藏版)》请在冰豆网上搜索。
南开20秋学期《程序设计基础下》在线作业3
20秋学期(1709、1803、1809、1903、1909、2003、2009)《程序设计基础(下)》在线作业
在一棵度为4的树中,度为4的结点个数为1,度为3的结点个数为1,度为2的结点个数为2,度为1的结点数为0,则度为0的结点个数为()。
A:
5
B:
6
C:
7
D:
8
答案:
D
在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为()。
A:
k
B:
k+1
C:
k+2
D:
2k
答案:
B
如果以链表作为队列的存储结构,则出队操作时()。
A:
必须判别队列是否满
B:
判别队列元素的类型
C:
必须判别队列是否空
D:
对队列不作任何判别
答案:
C
二叉树是非线性数据结构,所以()。
A:
它不能用顺序存储结构存储
B:
它不能用链式存储结构存储
C:
顺序存储结构和链式存储结构都能存储
D:
顺序存储结构和链式存储结构都不能使用
答案:
C
在一个链接队列中,假设f和r分别是队头和队尾指针,则插入一个s结点的运算时()。
A:
f->next=s;f=s;
B:
r->next=s;r=s;
C:
s->next=r;r=s;
D:
s->next=f;f=s;
答案:
B
设链式栈中结点的结构为(data数据域,next指针域),且top是指向栈顶的指针。
若想将链式栈的栈顶结点出栈,并将出栈结点数据域data的值保存到x中,则应执行下列()操作。
A:
x=top->data;top=top->next;
B:
top=top->next;x=top->data;
C:
x=top;top=top->next;
D:
x=top->data;
答案:
A
友元访问类对象的成员时使用()。
A:
类的成员名
B:
“this->成员名”的形式
C:
“类名:
:
成员名”的形式
D:
“对象名.成员名”的形式
答案:
D
关于函数模板,描述错误的是()。
A:
函数模板必须由程序员实例化为可执行的函数模板
B:
函数模板的实例化由编译器实现
C:
一个类定义中,只要有一个函数模板,则这个类是类模板
D:
类模板的成员函数都是函数模板
答案:
A
下列关于对象数组的描述中,错误的是()。
A:
对象数组的下标是从0开始的
B:
对象数组的数组名是一个常量指针
C:
对象数组的每个元素是同一个类的对象
D:
对象数组只能赋初值,而不能在定义后赋值
答案:
D
在一个具有n个顶点的无向图中,要连通全部顶点至少需要()条边。
A:
n
B:
n+1
C:
n-1
D:
n/2
答案:
C
已知X类中的一个成员函数说明如下:
voidSet(X*a);其中,X*a的含义是()。
A:
a是指向X类对象的指针,用来作为Set()的形参
B:
将X*a的计算结果传递给Set()函数
C:
a是X类对象的引用,用来做为Set()的形参
D:
以上都不对
答案:
A
派生类的构造函数的成员初始化列表中,不能包含()。
A:
基类的构造函数
B:
派生类中子对象的初始化
C:
基类的子对象初始化
D:
派生类中一般数据成员的初始化
答案:
C
在一个无向图中,若两顶点之间的路径长度为k,则该路径上的边数为()。
A:
k
B:
k+1
C:
k+2
D:
2k
答案:
A
数据结构在计算机存储空间中的存放形式称为()。
A:
数据元素之间的关系
B:
数据结构
C:
数据的存储结构
D:
数据的逻辑结构
答案:
C
关于抽象类,下列表述正确的是()。
A:
抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
B:
派生类必须实现作为基类的抽象类中的纯虚函数
C:
派生类不可能成为抽象类
D:
抽象类不能用于定义对象
答案:
D
下列关于构造函数的描述中,错误的是()。
A:
构造函数可以设置默认参数
B:
构造函数在说明类变量时自动执行
C:
构造函数可以对静态数据成员进行初始化
D:
构造函数可以重载
答案:
C
关于下面程序段说法正确的是()
classX
{
private:
intn;
public:
X(X&);
};
X:
:
X(X&x){n=x.n}
Xobj1,obj2(obj1);
A:
语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2
B:
语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1
C:
X(X&x)中的&符号可以删除
D:
X(X&x)函数中不能访问对象的私有成员
答案:
A
关于this指针的说法错误的是()。
A:
this指针必须显示说明
B:
当创建一个对象后,this指针就指向该对象
C:
成员函数拥有this指针
D:
静态成员函数不拥有this指针
答案:
A
()的功能是对对象进行初始化。
A:
析构函数
B:
数据成员
C:
构造函数
D:
静态数据成员
答案:
C
下面对模板的声明,正确的是()。
A:
A.template
B:
template
C:
template
D:
template
答案:
C
下面对对象成员的正确描述是()。
A:
在一个类中可以声明本类的对象成员
B:
对象成员的声明方法与普通数据成员的声明方法相同
C:
在一个类中可以声明本类的指针数据成员
D:
如果对象成员的构造函数有参数,则必须在声明该对象成员的同时给其构造函数传递参数值
答案:
B,C
在派生类中可以直接访问基类的()。
A:
公有成员
B:
保护成员
C:
私有成员
D:
友元成员
答案:
A,B
已知in是ifstream对象,则下列语句正确的是()。
A:
in.seekg(5);
B:
in.seekg(5,ios:
:
beg);
C:
in.seekg(5,ios:
:
end);
D:
in.seekg(-5);
答案:
A,B
下列()不是构造函数的特征。
A:
构造函数在创建对象时自动调用
B:
构造函数可以重载
C:
构造函数不可以设置默认参数
D:
构造函数必须指定函数类型
答案:
C,D
下列描述中正确的是()。
A:
文件操作通过文件指针来操作文件中不同位置的数据
B:
文本文件的数据存储格式与内存中的数据存储格式一致
C:
二进制文件的数据存储格式与内存中的数据存储格式一致
D:
关闭文件流可以使用文件流的close()成员函数
答案:
A,C,D
下面对友元的正确描述是()。
A:
关键字friend用于声明友元
B:
一个类的成员函数可以是另一个类的友元
C:
友元函数访问对象的成员不受访问特性影响
D:
友元函数通过this指针访问对象成员
答案:
A,B,C
下列函数中,可以作为虚函数的是()。
A:
普通成员函数
B:
构造函数
C:
静态成员函数
D:
析构函数
答案:
A,D
关于类和对象正确的说法包括()。
A:
类是一种类型,它封装了数据和操作
B:
对象是类的实例
C:
一个类的对象只有一个
D:
一个对象必属于某个类
答案:
A,B,D
二叉树的遍历方法包括:
A:
先序遍历
B:
中序遍历
C:
后续遍历
D:
逐层遍历
答案:
A,B,C,D
已知Circle类定义如下所示,则下列说法正确的是()。
classCircle
{
public:
doublem_x,m_y;
doublem_radius;
voidsetCenter(doublex,doubley)
{
m_x=x;
m_y=y;
}
voidsetRadius(doubleradius)
{
m_radius=radius;
}
doublegetArea()
{
return3.14*m_radius*m_radius;
}
};
A:
m_x、m_y和m_radius都是Circle类的成员变量
B:
setCenter、setRadius和getArea都是Circle类的成员函数
C:
类定义体后面的分号可以省略
D:
将doublem_radius;改为doublem_radius=1;,则表示m_radius成员变量的初值为1
答案:
A,B
下列关于类的静态数据成员的说法中,正确的是()。
A:
静态数据成员的值初始化后不能再修改
B:
静态数据成员必须在类体外定义和初始化
C:
使用static关键字可以将一个数据成员声明为静态数据成员
D:
静态数据成员的访问控制权限可以是公有、私有或保护
答案:
B,C,D
下面描述中,错误的是()。
A:
虚函数是没有实现的函数
B:
纯虚函数是没有实现的函数
C:
抽象类可以用于创建对象
D:
抽象类指针可以指向不同的派生类
答案:
A,C
关于this指针的说法正确的是()。
A:
this指针必须显示说明
B:
成员函数不拥有this指针
C:
成员函数拥有this指针
D:
静态成员函数不拥有this指针
答案:
C,D
下列关于拷贝构造函数的说法中,错误的是()。
A:
拷贝构造函数是可以重载
B:
用一个对象给另一个对象赋值时,拷贝构造函数会被自动调用
C:
用一个对象初始化另一个对象时,拷贝构造函数会被自动调用
D:
创建一个对象时,有可能同时调用拷贝构造函数和其他构造函数
答案:
A,B,D
下面描述中,正确的是()。
A:
使用fstream类必须包含头文件fstream
B:
ostream对象用来实现输出操作
C:
ios是iostream的直接基类
D:
iostream是通过多重继承得到的派生类
答案:
A,B,D
在公有继承中,基类中只有公有成员对派生类对象是可见的。
A:
对
B:
错
答案:
A
广度优先遍历类似于树的先序遍历。
A:
对
B:
错
答案:
B
getline()函数从流中提取终止字符,但终止字符被丢弃。
A:
对
B:
错
答案:
A
在二叉树的三叉链表表示中,结点中设有指向其双亲结点的指针,要获取一个结点的双亲结点只要访问指向其双亲结点的指针即可。
A:
对
B:
错
答案:
B
入对操作,在顺序存储结构上需要考虑“溢出”情况。
A:
对
B:
错
答案:
A
有向图和无向图都有生成树
A:
对
B:
错
答案:
B
线性结构的数据在进行元素插入、删除等操作后可能会变成非线性结构。
A:
对
B:
错
答案:
B
若无向图G的一个子图G'是一棵包含图G所有顶点的树,则G'称为图G的生成树。
A:
对
B:
错
答案:
A
对于树中的任一结点,如果其各棵子树的相对次序被用来表示数据之间的关系,即交换子树位置会改变树所表示的内容,则称该树为有序树;否则称为无序树。
A:
对
B:
错
答案:
A
假定AB为一个类,则执行ABa[10];语句时,系统自动调用该类的构造函数的次数为10。
A:
对
B:
错
答案:
A
广度优先遍历类似于树的逐层遍历。
A:
对
B:
错
答案:
A
满二叉树是完全二叉树。
A:
对
B:
错
答案:
A
树的根结点没有前驱,但必须有后继。
A:
对
B:
错
答案:
B
具有纯虚函数的类是抽象类,它的特点是不可以定义对象。
A:
对
B:
错
答案:
A
链表的每个结点既可以存储一个基本数据类型的元素也可以存储一个自定义数据类型的元素。
A:
对
B:
错
答案:
A