答案南开大学春《程序设计基础下》在线作业.docx
《答案南开大学春《程序设计基础下》在线作业.docx》由会员分享,可在线阅读,更多相关《答案南开大学春《程序设计基础下》在线作业.docx(9页珍藏版)》请在冰豆网上搜索。
答案南开大学春《程序设计基础下》在线作业
1.下列类中()是输入/输出流类iostream的派生类。
A.fstream
B.ofstream
C.ifstream
D.ostream
答案:
A
2.下面描述中,错误的是()。
A.在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C.在基类定义的public和protected成员在保护继承的派生类中可见
D.在派生类中不可见的成员要变成可访问的,需要进行访问声明
答案:
B
3.在一个链接队列中,假设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
4.运算符delete删除一个动态对象时()。
A.首先为该动态对象调用构造函数,再释放其占用的内存
B.首先释放该动态对象占用的内存,再为其调用构造函数
C.首先为该动态对象调用析构函数,再释放其占用的内存
D.首先释放动态对象占用的内存,再为其调用析构函数
答案:
C
5.关于类和对象不正确的说法是()。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
答案:
C
6.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。
编号为47的结点X的双亲的编号为()。
A.23
B.24
C.25
D.无法确定
答案:
A
7.在一个链接队列中,假设f和r分别是队头和队尾指针,则删除一个结点的运算时()。
A.r=f->next;
B.r=r->next;
C.f=f->next;
D.f=r->next;
答案:
C
8.在一个具有n个顶点的有向图中,若所有顶点的入度之和为s,则所有顶点的度之和为()。
A.s
B.s+1
C.s-1
D.2s
答案:
D
9.继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A.规律性
B.传递性
C.重复性
D.多样性
答案:
B
10.在下列关键字中,用以说明类中公有成员的是()。
A.public
B.private
C.protected
D.friend
答案:
A
11.下面对析构函数的正确描述是()。
A.系统不能提供默认的析构函数
B.析构函数必须由用户定义
C.析构函数没有参数
D.析构函数可以设置默认参数
答案:
C
12.在二叉树的第i层上至多有()个结点(i≥1)。
A.2的i次方减1
B.2的i-1次方
C.2的i次方加+1
D.2的i+1次方
答案:
B
13.下列虚基类的声明中正确的是()。
A.classvirtualB:
publicA
B.virtualclassB:
public
C.classB:
publicAvirtual
D.classB:
virtualpublicA
答案:
D
14.C++有()种联编方式。
A.1
B.2
C.3
D.4
答案:
B
15.下列说法中错误的是()。
A.公有继承时基类中的public成员在派生类中是public的
B.公有继承时基类中的private成员在派生类中是不可访问的
C.私有继承时基类中的public成员在派生类中是private的
D.私有继承时基类中的public成员在派生类中是protected的
答案:
D
16.友元关系不能()。
A.继承
B.是类与类之间是关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
答案:
A
17.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()。
A.public成员
B.private成员
C.protected成员
D.友元
答案:
A
18.下面关于友元的描述中,错误的是()。
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
答案:
D
19.有关析构函数的说法不正确的是()。
A.析构函数有且仅有一个
B.析构函数和构造函数一样可以有形参
C.析构函数的功能是用来释放一个对象
D.析构函数无任何函数类型
答案:
B
20.撤消对象时,系统自动调用()函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
答案:
C
21.如果类A继承了类B,则类A称为()。
A.派生类
B.继承类
C.子类
D.父类
答案:
AC
22.下列函数中,不可以作为虚函数的是()。
A.普通函数
B.构造函数
C.静态成员函数
D.析构函数
答案:
ABC
23.下面哪些数据结构属于非线性结构()
A.线性表
B.树
C.图
D.集合
答案:
BCD
24.在派生类中可以直接访问基类的()。
A.公有成员
B.保护成员
C.私有成员
D.友元成员
答案:
AB
25.下面关于自定义类的运算符重载的说法中,正确的是()。
A.赋值运算符和下标运算符只能重载为类的成员函数
B.赋值运算符和下标运算符只能重载为类的友元函数
C.赋值运算符重载时一般以引用方式返回*this,表示返回赋值运算符的左操作数
D.使用重载的赋值运算符时,左操作数一定是自定义类型
答案:
ACD
26.已知Derived是Base的公有派生类,且已定义两个对象Derivedd;和Baseb;,则下列语句中正确的是()。
A.d=b
B.b=d
C.Derived*d=&b
D.Base&b=d
答案:
BD
27.下面关于自定义类的运算符重载的说法中,正确的是()。
A.除了后增后减单目运算符外,其他运算符重载为类的成员函数时,函数参数个数比运算符实际操作数个数少一个
B.运算符重载为类的成员函数时,函数中的this指针指向第一个运算数
C.只有运算符的第一个运算数是自定义类类型时,才能将该运算符重载为类的成员函数
D.所有运算符都可以以类成员函数形式进行重载
答案:
ABC
28.已知f是以二进制读写方式打开的文件流对象,且有int型变量a,则下列选项中能正确进行文件读写操作的语句包括()。
A.f.write((char*)a,sizeof(a));
B.f.write((char*)&a,sizeof(a));
C.f.read((char*)a,sizeof(a));
D.f.read((char*)&a,sizeof(a));
答案:
BD
29.系统提供的默认拷贝构造函数实现的是“浅拷贝”,下列关于浅拷贝的说法中正确的是()。
A.当一个类中有指针成员变量时,浅拷贝有可能会导致一片内存被重复释放
B.当一个类中有指针成员变量时,浅拷贝有可能导致一个对象中保存的数据不正确
C.如果一个类中只有int型和double型的成员变量,则浅拷贝不会出现任何问题
D.如果一个类中有一个成员变量是char型数组,则使用浅拷贝会存在问题
答案:
ABC
30.不论派生类以何种方法继承基类,都可以使用基类的()。
A.public成员
B.private成员
C.protected成员
D.所有成员
答案:
AC
31.已知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
答案:
AB
32.下面选项中,是类的成员函数为()。
A.构造函数
B.析构函数
C.友元函数
D.缺省参数的构造函数
答案:
ABD
33.下面描述中,正确的是()。
A.多重继承中,派生类对象被销毁时析构函数的调用顺序与派生类对象创建时构造函数的调用顺序相反
B.多重继承中,派生类对象被销毁时析构函数的调用顺序与派生类对象创建时构造函数的调用顺序一致
C.多重继承中创建派生类对象时各基类构造函数的调用顺序与基类构造函数在初始化列表中的出现顺序一致
D.多重继承中,如果派生类的初始化列表中没有某个基类构造函数的调用语句,则表示调用该基类的无参构造函数
答案:
AD
34.下列函数中,可以作为虚函数的是()。
A.普通成员函数
B.构造函数
C.静态成员函数
D.析构函数
答案:
AD
35.下列成员中,不能被派生类继承的包括()。
A.公有成员
B.构造函数
C.保护成员
D.析构函数
答案:
BD
36.类模板可以生成若干个模板类,每个模板类又可定义若干个对象。
()
A.正确
B.错误
答案:
A
37.n个结点的无向图,若它有n(n-1)/2条边,则它一定是连通图。
()
A.正确
B.错误
答案:
A
38.一个结点的后继的数目称为该结点的度;树中各结点度的最大值称为树的度。
()
A.正确
B.错误
答案:
A
39.可以在队列的任意位置插入元素。
()
A.正确
B.错误
答案:
B
40.非线性结构即可以用顺序存储结构存储、也可以用非顺序存储结构存储。
()
A.正确
B.错误
答案:
B
41.线性表中的一个结点可以有多个前驱和多个后继。
()
A.正确
B.错误
答案:
B
42.强连通图的各顶点间均可达。
()
A.正确
B.错误
答案:
A
43.二叉树就是结点度为小于等于2的树。
()
A.正确
B.错误
答案:
A
44.二叉树就是结点度都是为2的树。
()
A.正确
B.错误
答案:
B
45.运算符重载实际上是对已有的运算符重新定义其功能。
()
A.正确
B.错误
答案:
A
46.图说的是数据的逻辑结构。
()
A.正确
B.错误
答案:
A
47.构造函数和析构函数都不能重载。
()
A.正确
B.错误
答案:
B
48.多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。
()
A.正确
B.错误
答案:
A
49.在私有继承中,基类中所有成员对派生类的对象都是不可见的。
()
A.正确
B.错误
答案:
A
50.二叉树指的是数据的逻辑结构。
()
A.正确
B.错误
答案:
B