南开20春学期(1709、1803、1809、1903、1909、2003)《程序设计基础(下)》在线作业答案

下列说法中错误的是

A.公有继承时基类中的public成员在派生类中仍是public成员

B.私有继承时基类中的protecte成员在派生类中仍是protected成员

C.私有继承时基类中的public成员在派生类中是private成员

D.保护继承时基类中的public成员在派生类中是protected成员


正确答案:B


在多继承中,公用派生和私有派生对于基类成员在派生类中的可访问性与单继承规则

A.完全相同

B.完全不同

C.部分相同,部分不同

D.以上都不对


正确答案:A
解析:C++语言中为了简化继承关系,规定多重继承中可访问性规则同单继承规则。


下列关于派生类的构造函数的叙述中,正确的是( )。

A.派生类通过成员初设列表的方法调用基类的构造函数,实现对基类的初始化

B.派生类构造函数的调用顺序先基类后子对象构造函数

C.派生类构造函数的调用顺序先子对象构造函数后基类,

D.派生类构造函数是不能继承基类的


正确答案:C


下面描述中,错误的是()。

A.在派生类中不可见的成员要变成可访问的,需要进行访问声明

B.在基类定义的public成员在保护继承的派生类中可见,也能在类外被访问

C.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

D.在基类定义的public和protected成员在保护继承的派生类中可见


正确答案:BC


下列关于派生类和基类的描述中,正确的是( )。

A.派生类成员函数只能访问基类的公有成员

B.派生类成员函数只能访问基类的公有和保护成员

C.派生类成员函数可以访问基类的所有成员

D.派生类对基类的默认继承方式是公有继承


正确答案:B
B。【解析】派生类成员函数不能访问基类的private成员,只能由基类的对象来访问。这才体现了C++的数据封装特性。


20春学期(1709、1803、1809、1903、1909、2003)程序设计基础(下)在线作业试卷总分:100 得分:100一、单选题 (共 20 道试题,共 40 分)1.在下述结论中,正确的是( )。A.在树中,互为堂兄弟的结点拥有相同的双亲B.二叉树的度为2C.二叉树的左右子树可任意交换D.深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树答案:D2.关于对象成员的构造函数的调用顺序,说法正确的是( )。A.与它们在成员初始化列表中给出的顺序相同B.与析构函数的调用顺序相同C.与它们在类中说明顺序相同D.以上说法都不对答案:C3.下面叙述错误的是( )。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合答案:C4.树中各结点度的最大值称为树的( )。A.路径B.度C.层D.深度答案:B5.已知一棵二叉树的先序遍历序列为AFCDGBE,中序遍历序列为CFDABGE,则该二叉树的后序遍历序列是( )。A.CDBFEGAB.CDFGBEAC.CDBAFGED.CDFBEGA答案:D6.下列的模板说明中,正确的是( )。A.templateB.templateC.templateD.template答案:C7.利用数组aN顺序存储一个栈时,用top表示栈顶指针,用top=-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作是( )。A.top-; atop=x;B.atop=x; top-;C.top+; atop=x;D.atop=x; top+;答案:C8.下面说法中正确的是( )。A.当声明的内容不同时,声明同一个名字的两个类是允许的B.不完全声明的类也可以实例化C.声明同一个名字的两个类时,要求声明的内容也相同D.声明同一个名字的两个类是错误的答案:D9.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为( )。A.eB.2eC.n的平方减eD.n的平方2减2e答案:B10.对于先序遍历与中序遍历结果相同的二叉树为( )。A.一般二叉树B.所有结点只有左子数的二叉树C.根结点无左孩子的二叉树D.所有结点只有右子树的二叉树答案:B11.在一个顺序循环队列中,队尾指针指向队尾元素的( )位置。A.前一个B.后一个C.当前D.最后答案:B12.在一个具有n个顶点的有向图中,若所有顶点的出度之和为s,则所有顶点的度之和为( )。A.sB.s+1C.s-1D.2s答案:D13.下面( )的叙述不符合赋值兼容规则。A.派生类的对象可以赋值给基类的对象B.基类的对象可以赋值给派生类的对象C.派生类的对象可以初始化基类的对象D.派生类的对象的地址可以赋值给指向基类的指针答案:B14.下面对析构函数的正确描述是( )。A.系统不能提供默认的析构函数B.析构函数必须由用户定义C.析构函数没有参数D.析构函数可以设置默认参数答案:C15.下列关于栈的叙述正确的是( )。A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对答案:A16.如果一个类至少有一个纯虚函数,那么就称该类为()。A.抽象类B.派生类C.纯基类D.以上都不对答案:A17.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为( )。A.3B.4C.6D.7答案:D18.read函数的功能是从输入流中读取( )。A.一个字符B.当前字符C.一行字符D.指定若干个字符答案:D19.下列说法中错误的是( )。A.公有继承时基类中的public成员在派生类中是public的B.公有继承时基类中的private成员在派生类中是不可访问的C.私有继承时基类中的public成员在派生类中是private的D.私有继承时基类中的public成员在派生类中是protected的答案:D20.下列( )是图型结构。A.操作系统中的文件目录结构B.城市交通网络C.实数集合D.n维向量答案:C二、多选题 (共 15 道试题,共 30 分)21.下列描述中正确的是( )。A.文件操作通过文件指针来操作文件中不同位置的数据B.文本文件的数据存储格式与内存中的数据存储格式一致C.二进制文件的数据存储格式与内存中的数据存储格式一致D.关闭文件流可以使用文件流的close()成员函数答案:ACD22.假设A为抽象类,下列语句( )是错误的。A.A fun(int);B.A *p;C.int fun(A);D.A Obj;答案:ACD23.对静态成员的正确描述是( )。A.静态成员不属于对象,是类的共享成员B.静态数据成员要在类外定义和初始化C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D.非静态成员函数也可以操作静态数据成员答案:ABD24.下列插入和提取运算符重载的函数原型中,正确的是( )。A.istream& operator(istream&, 自定义类型&)B.istream& operator(ostream&, 自定义类型&)D.ostream& operator(ostream&, 自定义类型&)答案:AD25.下面属于析构函数特征的是( )。A.析构函数可以重载B.对象销毁前会自动调用析构函数C.如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数()D.析构函数的函数类型为void答案:BC26.下面选项中,是类的成员函数为( )。A.构造函数B.析构函数C.友元函数D.缺省参数的构造函数答案:ABD27.下面对友元的错误描述是( )。A.关键字virtual用于声明友元B.一个类的成员函数可以是另一个类的友元C.友元函数访问对象的成员不受访问特性影响D.友元函数通过this指针访问对象成员答案:AD28.当用public继承从基类派生一个类时,基类的()成员可被派生类中的成员函数访问。A.protectedB.publicC.privateD.friend答案:AB29.下列描述中,正确的是( )。A.创建派生类对象时会先调用基类构造函数,再调用派生类构造函数B.创建派生类对象时会先调用派生类构造函数,再调用基类构造函数C.如果基类构造函数有参数,则必须在派生类构造函数的初始化列表中写上基类构造函数的调用语句D.如果派生类构造函数的初始化列表中没写基类构造函数的调用,则表示调用基类的无参构造函数答案:ACD30.下列关于类的静态数据成员的说法中,正确的是( )。A.静态数据成员的值初始化后不能再修改B.静态数据成员必须在类体外定义和初始化C.使用static关键字可以将一个数据成员声明为静态数据成员D.静态数据成员的访问控制权限可以是公有、私有或保护答案:BCD31.已知in是ifstream对象,则下列语句正确的是( )。A.in.seekg(5);B.in.seekg(5, ios:beg);C.in.seekg(5, ios:end);D.in.seekg(-5);答案:AB32.基类中的保护成员在派生类中仍然是保护成员,则可能采用的继承方式为( )。A.公有继承B.保护继承C.私有继承D.友元继

下面叙述不正确的是

A.基类的保护成员在派生类中仍然是保护的成员

B.基类的保护成员在公有派生类中仍然是保护的

C.基类的保护成员在私有派生类中仍然是私有的

D.对基类成员的访问必须是无二义性


正确答案:A
解析:C++语言中如果基类的成员是保护的,它被继承后在子类中该成员可能是保护的,也可能不是,主要看继承的权限是public还是protected或 private的。


下列说法中错误的是( )。

A.公有继承时基类中的public成员在派生类中仍是public成员

B.私有继承时基类中的protected成员在派生类中仍是protected成员

C.私有继承时基类中的public成员在派生类中仍是private成员

D.保护继承时基类中的public成员在派生类中仍是protected成员


正确答案:B
解析:此题考查的是派生类中的访问权限。继承方式包括公有继承、保护继承和私有继承。私有继承时基类中的protected成员在派生类中变成了private成员,所以选项B)叙述错误。


下列关于派生类的构造函数的叙述中,正确的是( )。

A.派生类通过成员初设列表的方法调用基本类的构造函数,实现对基本类的初始化

B.派生类构造函数的调用顺序先基类后子对象构造函数

C.派生类构造函数的调用顺序先子对象构造函数后基类

D.派生类构造函数是不能继承基类的


正确答案:C


下列关于基类和派生类关系的叙述中,正确的是

A.每个类最多只能有一个直接基类

B.派生类中的成员可以访问基类中的任何成员

C.基类的构造函数必须在派生类的构造函数体中调用

D.派生类除了继承基类的成员,还可以定义新的成员


正确答案:D
解析:派生类可以只有一个直接基类,也可以同时有多个直接基类,A错。基类中的私有成员在派生类中是隐藏的,只能在基类内部访问,派生类中的成员不能访问基类中的私有成员,B错。基类的构造函数在派生类构造函数的成员初始化列表中调用,C错。D项正确。


下列描述中错误的是( )。

A.派生类可以使用private派生

B.对基类成员访问必须是无二义性的

C.赋值兼容规则也适合于多继承

D.基类和派生类中存在同名函数,将出现二义性


正确答案:D
解析:基类和派生类存在同名函数,符合支配规则,不存在二义性。

更多 “南开20春学期(1709、1803、1809、1903、1909、2003)《程序设计基础(下)》在线作业答案” 相关考题
考题 下面叙述不正确的是( )A.派生类一般都用公有派生 B.对基类成员的访问必须是无两义性的 C.赋值兼容则也适用于多重继承的组合 D.基类的公有成员在派生类中仍然是公有的答案:D解析:

考题 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( )。A.完全相同B.完全不同C.部分相同D.以上都不对正确答案:A解析:在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则完全相同。

考题 单选题下面叙述不正确的是()A 派生类一般都用公有派生B 对基类成员的访问必须是无二义性的C 赋值兼容规则也适用于多重继承的组合D 基类的公有成员在派生类中仍然是公有的正确答案:C解析:暂无解析

考题 下列关于继承的描述,错误的是( )。A.派生类中继承的基类成员的访问权限在派生类保持不变B.派生类的成员除了自己的成员外,还包含它的基类的成员C.派生类是基类的组合D.析构函数不能被继承正确答案:A解析:在继承中,基类的构造函数和析构函数不能被继承。派生类中包含了基类中的成员,是对基类定义的扩展和延续,可以说派生类是基类的组合。派生类继承了积累的全部数据成员和除构造函数和析构函数外的所有函数成员。派生类不能访问基类的私有成员,而对基类的公有成员和保护成员的访问权限则随派生类对基类的继承方式而改变。

考题 下面叙述不正确的是A.派生类一般都用公有派生 B.对基类成员的访问必须是无两义性的 C.赋值兼容规则也适用于多重继承的组合 D.基类的公有成员在派生类中仍然是公有的答案:D解析:C++语言中如果基类的成员是公有的,它被继承后在子类中该成员可能是公有的,也可能不是,主要看继承的权限。

考题 下面叙述错误的是( )。A.对基类成员的访问能力在private派生类中和public派生类中是相同的B.基类的private成员在public派生类中不可访问C.基类中的public成员在protected派生类中是protected的D.基类中的public成员在protected派生类中仍然是public的正确答案:D

考题 下列叙述中,错误的是( )。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合正确答案:C解析:在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对基类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类中的访问属性。所以本题选择选项C)。

考题 下面叙述错误的是( )。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合正确答案:C

考题 单选题下列关于类成员对象构造函数调用顺序的叙述中,正确的是(  )。A 与它们在初始化列表中的顺序相同B 与它们在类中声明的顺序相同C 与析构函数的调用顺序相同D 顺序不确定正确答案:D解析:类成员对象构造函数的调用按照其在类中定义的顺序进行,与成员对象在初始化列表中的顺序无关。

考题 关于对象成员的构造函数的调用顺序,说法正确的是 ______。A.与它们在成员初始化的类表中给出的顺序相同B.与析构函数的调用顺序相同C.与它们在类中说明的顺序相同D.以上说法都不对正确答案:C