2024年6月1日发(作者:贺梦秋)
《面向对象程序设计》第12章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、面向对象软件开发中使用的OOD表示( )
A、面向对象分析
C、面向对象语言
B、面向对象设计
D、面向对象方法
2、在面向对象方法中,对象执行它的操作是通过( )
A、自动执行
C、由外部强制执行
B、接受消息请求
D、外界直接访问其成员
3、对象的两大要素是()
A、数据和数据结构
C、属性和操作
B、名字和函数
D、操作和方法
4、关于对象模型的说法正确的事( )
A、对象模型是类、对象、类或对象之
间关系的定义集
C、对象模型表示类/对象之间的结构
关系
B、对象模型表示系统静态的数据性质
D、对象模型是客观对象的物理模型
5、面向对象分析的任务是( )
A、需求分析
C、定义问题领域类
B、建立用例模型
D、定义角色
第二题、多项选择题(每题2分,5道题共10分)
1、下面那些是面向对象的特征?( )
A、结构
B、类
C、重用
D、继承
2、下面哪些属于UML的图( )
A、用例图
B、类图
C、结构图
D、流程图
3、关于封装的说法正确的是( )
A、封装实现了信息隐藏
B、封装使对象与外界隔绝
C、封装使类不可见
D、封装将对象的属性和操作结合在一起
4、对象之间存在的关系包括( )
A、部分与整体
B、一般与特殊
C、实例连接
D、消息连接
5、下面的说法正确的是( )
A、软件就是程序,程序就是软件
B、软件开发的过程就是程序设计的过程
C、软件是程序、支持程序运行的数据以及与程序有关的文档资料的集合。
D、程序设计仅仅是软件开发过程的一个阶段。
第三题、判断题(每题1分,5道题共5分)
1、面向对象设计过程一般仍分为结构设计和详细设计。
正确 错误
2、UML 是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
正确 错误
3、UML不是一种可视化的程序设计语言而是一种可视化的建模语言.
正确 错误
4、UML用若干个视图构造系统的模型,每个视图描述系统的一个方面。
正确 错误
5、类的关联关系通常采用函数设计方式。
正确 错误
《面向对象程序设计》第11章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、STL中算法访问容器的中介是( )
A、容器
C、算法
B、迭代器
D、数组
2、允许程序员以相同的方式处理不同的数据结构的是( )
A、容器
C、算法
B、迭代器
D、数组
3、列表list属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
4、映射(map)属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
5、多重映射(multimap)属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
第二题、多项选择题(每题2分,5道题共10分)
1、按照算法对容器的影响可以将算法分成( )
A、可变序列算法
B、非可变序列算法
C、排序算法
D、数值计算算法
2、下面属于容器的头文件是( )
A、vector
B、list
C、quene
D、set
3、下面的说法正确的是( )
A、STL中有sort函数,所以程序员不能定义名字叫sort的函数
B、STL中的sort函数在名字空间之外
C、程序员可以在自定义的名字空间内定义sort函数
D、使用STL的sort函数可以在源程序的开头加入using namespace std
4、下面属于顺序容器的是( )
A、向量
B、双队列
C、堆栈
D、列表
5、如果char str[]=“China!Great Wall”,生成string类型s并且s的字符串内容也是“China!Gr
eat Wall”的语句是( )
A、string s(str);
B、string s(str,1);
C、string s(str, 1,11);
D、string s=str;
第三题、判断题(每题1分,5道题共5分)
1、迭代器是算法访问容器的中介。
正确 错误
2、算法就是一个按照一组定义明确的步骤来解决某个问题的处理过程。
正确 错误
3、向量(vector)、双队列(deque)、列表(list)都是顺序容器
正确 错误
4、堆栈(stack)、队列(queue)和多重映射(multimap)属于容器适配器
正确 错误
5、双向容器是指除了具有前向迭代器外,还具有逆向迭代器
《面向对象程序设计》第10章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、关于异常对象的说法正确的是( )
B、以传值方式传递异常对象时,抛出
的是局部临时对象
C、以引用方式传递异常对象时,抛出
的是局部静态对象
2、C++库中所有异常类的基类是( )
A、ios_base::failure
C、dynamic_cast
A、异常对象需要先建立,再抛出
D、以指针方式传递异常对象时,抛出
的是全局临时对象
B、exception
D、bad_cast
3、C++中异常处理的默认模式是( )
A、终止模式
C、挂起模式
B、恢复模式
D、暂停模式
4、关于重新抛出错误的说法是( )
A、重新抛出是指抛出原来的异常
C、只能在catch块中抛出
B、用throw语句再次抛出原来的异常
D、重新抛出时不能改变异常信号的值
5、为保证程序中的全局变量不与开发商提供的全局变量重名,可以采取的措施是( )
A、查阅手册,不起同样的名字 B、引入命名空间
C、避开不用 D、让开发商改名
第二题、多项选择题(每题2分,5道题共10分)
1、异常处理的优点是( )
A、提高程序可读性
B、程序的控制不会因产生异常而随意跳转
C、正常处理代码和异常处理代码隐式分离
D、与函数调用返回的控制方法一致
2、下面与异常处理相关的关键字有( )
A、Try
B、Catch
C、try
D、catch
3、下面的说法正确的是()
A、引发异常用关键字throw
B、在被调用函数中检测到异常条件用throw都可以引发异常
C、被调用函数只有在try块中用throw才可以引发异常
D、检测到的异常由catch捕获并处理
4、try子句的作用是( )
A、代码的保护段
B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后
C、try子句产生异常
D、try子句中的throw表达式产生异常
5、下面说法正确的是( )
A、函数声明void f(int i) throw ( int,char)说明函数f会引发int和char
类型的异常
B、函数声明void f(int i) throw ( ) 不会引发任何类型的异常
C、函数声明void f(int i) throw ( )和void f(int i)是一样的
D、函数声明void f(int i)说明该函数不会引发异常
第三题、判断题(每题1分,5道题共5分)
1、异常如果没有要求程序立即进行处理,将会引起程序错误甚至崩溃的现象。
正确 错误
2、C++的异常处理机制就是捕捉异常进行异常处理。
正确 错误
3、抛出异常的模块并不负责异常的处理,该异常的处理可以程序中的任何位置。
正确 错误
4、C++引入了关键字throw和catch,用于进行异常处理。
正确 错误
5、异常信号传递方式有三种:传值方式、引用方式和指针方式。
正确 错误
面向对象程序设计》第08章在线测试 剩余时间: 34:00
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、面向对象方法的多态性是指( )。
A、一个类可以派生出多个特殊类
C、针对一消息,不同的对象可以以适合自身的方式
加以响应
B、一个对象在不同的运行环境中可以有不同的变体
D、一个对象可以是由多个其他对象组合而成的
2、下列关于虚函数与函数重载区别的叙述中不正确的是( )
A、函数说明形式上不同 B、函数重载允许是非成员函数,虚函数只能是成员
函数
C、函数重载的调用依据参数和类型的差别,虚函数
则依据对象
D、函数重载的本体可以在类外定义,虚函数不可以
3、类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p->A::func() 将 ( )
A、调用类 A 中的函数 func()
C、根据 p 所指的对象类型而确定调用类 A 中或类
B 中的函数 func()
B、调用类 B 中的函数 func()
D、既调用类 A 中函数,也调用类 B 中的函数
4、关于纯虚函数和抽象类的描述中,( )是错误的。
A、纯虚函数是一种特殊的虚函数,它没有具体的实
现;
C、一个基类说明有纯虚函数,该基类的派生类一定
不再是抽象类;
5、下面的说法正确的是( )
A、虚函数是成员函数
C、构造函数和析构函数都可以定义为虚函数
B、抽象类是指具有纯虚函数的类;
D、抽象类只能作为基类来使用,其纯虚函数的实现
由派生类给出。
B、虚函数可以是静态成员函数
D、虚函数可以是内联函数
第二题、多项选择题(每题2分,5道题共10分)
1、在派生类中重新定义虚函数时必须在 ( ) 方面与基类保持一致。
A、参数类型
B、参数个数
C、操作内容
D、返回值
2、下面说法正确的是( )
A、静态绑定在编写程序的时候完成
B、动态绑定在程序执行的时候完成
C、静态绑定在程序编译阶段完成
D、动态绑定是动态链接生成的
3、下面的说法正确的是( )
A、纯虚函数不需要定义
B、纯虚函数在派生类中实现
C、纯虚函数在基类中定义为0
D、纯虚函数是不具体实现的虚函数
4、下面的说法正确的是( )
A、抽象类只能做基类
B、抽象类是继承层次中的根
C、抽象类用abstract定义
D、抽象类中至少有一个虚函数
5、关于抽象类的说法正确的是( )
A、抽象类可以生成类对象
B、抽象类不能用作参数类型、函数返回类型或显式转换的类型
C、不能定义抽象类指针和引用
D、抽象类只能作为其他类的基类
第三题、判断题(每题1分,5道题共5分)
1、虚函数是用virtual 关键字说明的成员函数。
正确 错误
2、构造函数说明为纯虚函数是没有意义的。
正确 错误
3、纯虚函数是一种特殊的虚函数,它没有具体的实现
正确 错误
4、一个基类说明有纯虚函数,该基类的派生类一定不再是抽象类;
正确 错误
5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
正确 错误
《面向对象程序设计》第09章在线测试 剩余时间: 40:09
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、cout是I0流库预定义的:
A、类
C、包含文件
B、对象
D、常量
2、在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是( )
A、fail
C、bad
B、eof
D、good
3、在C++程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。
A、istream
C、iostream
B、ostream
D、fstream
4、在C++程序中使用的cout标识符是系统类库中定义的( )类中的一个对象。
A、istream
C、iostream
B、ostream
D、fstream
5、seekg(-40,ios::cur)的意思是(A)
A、读写位置从当前位置前移40个字节
C、读写位置从当前位置上移40个字节
B、读写位置从当前位置后移40个字节
D、读写位置从当前位置下移40个字节
第二题、多项选择题(每题2分,5道题共10分)
1、下面的说法正确的是( )
A、缓冲流就是缓冲区
B、缓冲流当缓冲区满时才刷新流的数据
C、非缓冲流不处理数据
D、非缓冲流也要使用缓冲区
2、下面提供输入操作的类是( )
A、ios
B、istream
C、iostream
D、ostream
3、下面属于标准错误输出的流是( )
A、cin
B、cout
C、clog
D、cerr
4、关于运算符“<<”的说法正确的是( )
A、“<<”如果用于cout后,则表示输出操作
B、“<<”也叫做插入运算符
C、“<<”运算符可以重载
D、“<<”是从流中提取一个字符序列
5、 下面的说法正确的是(AC)
A、cerr是标准错误输出流
B、cerr和cout一样是可以缓冲的
C、cerr不能重定向
D、cout也不能重定向
第三题、判断题(每题1分,5道题共5分)
1、系统在主存中开辟的、用来临时存放输入输出数据的区域,叫做输入输出缓冲区(简称缓冲区)。
正确 错误
2、二进制文件的写操作用成员函数write()
正确 错误
3、hex、oct、dec只对下一个输出有效
正确 错误
4、ostrstream是向字符数组的输出流,istrstream是从字符数组的输入流
正确 错误
5、ofstream是用于读文件的文件流
正确 错误
《面向对象程序设计》第07章在线测试 剩余时间: 40:23
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、下面叙述不正确 的是 ( )
A、派生类都用公有派生产生
C、赋值兼容规则也适用于多重继承的组合
B、对基类成员的访问必须是无二义性的
D、基类的公有成员在派生类中仍然是公有的
2、若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的 ( )
A、私有成员
C、保护成员
B、公有成员
D、保护成员或私有成员
3、对基类和派生类的关系描述中, 错误 的是 ( )
A、派生类是基类的具体化
C、派生类是基类定义的延续
B、基类继承了派生类的属性
D、派生类是基类的特殊化
4、假设ClassY:publicX,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为( )
A、X,Y; Y,X
C、Y,X; X,Y
B、X,Y; X,Y
D、Y,X; Y,X
5、派生类的成员函数可以直接访问基类的( )成员。
A、所有 B、公有和保护
C、保护和私有 D、私有
第二题、多项选择题(每题2分,5道题共10分)
1、对于公有继承,基类中的私有成员在派生类中将 ( )。
A、不能够直接使用成员名访问
B、能够通过成员运算符访问
C、仍然是基类的私有成员
D、变为派生类的私有成员
2、下列对派生类的描述中正确的说法是:( )。
A、派生类至少有一个基类
B、派生类可作为另一个派生类的基类
C、派生类除了包含它直接定义的成员外,还包含其基类的成员
D、派生类所继承的基类成员的访问权限保持不变
3、派生类的对象对其基类中( )不可以直接访问。
A、公有继承的公有成员
B、公有继承的私有成员
C、公有继承的保护成员
D、私有继承的公有成员
4、含有虚基类的派生类的构造函数调用次序错误的是( )
A、虚基类,基类,派生类, 对象成员
B、基类,派生类,对象成员,虚基类
C、对象成员,基类,虚基类,派生类
D、基类,虚基类,对象成员,派生类
5、已知有下面的类定义: class A {…}; class B {…}; class C:public B, virtual public A{…}; C c;撤销c的时候,析构函数调用
顺序错误的是( )
A、ABC
B、CBA
C、BAC
D、CAB
第三题、判断题(每题1分,5道题共5分)
1、基类的保护成员在派生类中仍然是保护成员。
正确 错误
2、基类的保护成员在私有派生类中是私有成员。
正确 错误
3、私有继承时基类中的public成员在派生类中是private的。
正确 错误
4、在公有继承中,基类中只有公有成员对派生类是可见的。
正确 错误
5、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。
正确 错误
《面向对象程序设计》第06章在线测试 剩余时间: 30:16
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、设有函数模板 template<class Q> Q Sum(Q x, Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是 ( )
A、Sum(10,2);
C、Sum(15.2f, 16.0f);
B、Sum(5.0,6.7) ;
D、Sum( ″ AB ″ , ″ CD ″ );
2、以下关于函数模板叙述正确的是( )。
A、函数模板也是一个具体类型的函数
C、通过使用不同的类型参数,函数模板可以生成不
同类型的函数
B、函数模板的类型参数与函数的参数是同一个概念
D、用函数模板定义的函数没有类型
2024年6月1日发(作者:贺梦秋)
《面向对象程序设计》第12章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、面向对象软件开发中使用的OOD表示( )
A、面向对象分析
C、面向对象语言
B、面向对象设计
D、面向对象方法
2、在面向对象方法中,对象执行它的操作是通过( )
A、自动执行
C、由外部强制执行
B、接受消息请求
D、外界直接访问其成员
3、对象的两大要素是()
A、数据和数据结构
C、属性和操作
B、名字和函数
D、操作和方法
4、关于对象模型的说法正确的事( )
A、对象模型是类、对象、类或对象之
间关系的定义集
C、对象模型表示类/对象之间的结构
关系
B、对象模型表示系统静态的数据性质
D、对象模型是客观对象的物理模型
5、面向对象分析的任务是( )
A、需求分析
C、定义问题领域类
B、建立用例模型
D、定义角色
第二题、多项选择题(每题2分,5道题共10分)
1、下面那些是面向对象的特征?( )
A、结构
B、类
C、重用
D、继承
2、下面哪些属于UML的图( )
A、用例图
B、类图
C、结构图
D、流程图
3、关于封装的说法正确的是( )
A、封装实现了信息隐藏
B、封装使对象与外界隔绝
C、封装使类不可见
D、封装将对象的属性和操作结合在一起
4、对象之间存在的关系包括( )
A、部分与整体
B、一般与特殊
C、实例连接
D、消息连接
5、下面的说法正确的是( )
A、软件就是程序,程序就是软件
B、软件开发的过程就是程序设计的过程
C、软件是程序、支持程序运行的数据以及与程序有关的文档资料的集合。
D、程序设计仅仅是软件开发过程的一个阶段。
第三题、判断题(每题1分,5道题共5分)
1、面向对象设计过程一般仍分为结构设计和详细设计。
正确 错误
2、UML 是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
正确 错误
3、UML不是一种可视化的程序设计语言而是一种可视化的建模语言.
正确 错误
4、UML用若干个视图构造系统的模型,每个视图描述系统的一个方面。
正确 错误
5、类的关联关系通常采用函数设计方式。
正确 错误
《面向对象程序设计》第11章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、STL中算法访问容器的中介是( )
A、容器
C、算法
B、迭代器
D、数组
2、允许程序员以相同的方式处理不同的数据结构的是( )
A、容器
C、算法
B、迭代器
D、数组
3、列表list属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
4、映射(map)属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
5、多重映射(multimap)属于( )
A、顺序容器
C、前向容器
B、关联容器
D、双向容器
第二题、多项选择题(每题2分,5道题共10分)
1、按照算法对容器的影响可以将算法分成( )
A、可变序列算法
B、非可变序列算法
C、排序算法
D、数值计算算法
2、下面属于容器的头文件是( )
A、vector
B、list
C、quene
D、set
3、下面的说法正确的是( )
A、STL中有sort函数,所以程序员不能定义名字叫sort的函数
B、STL中的sort函数在名字空间之外
C、程序员可以在自定义的名字空间内定义sort函数
D、使用STL的sort函数可以在源程序的开头加入using namespace std
4、下面属于顺序容器的是( )
A、向量
B、双队列
C、堆栈
D、列表
5、如果char str[]=“China!Great Wall”,生成string类型s并且s的字符串内容也是“China!Gr
eat Wall”的语句是( )
A、string s(str);
B、string s(str,1);
C、string s(str, 1,11);
D、string s=str;
第三题、判断题(每题1分,5道题共5分)
1、迭代器是算法访问容器的中介。
正确 错误
2、算法就是一个按照一组定义明确的步骤来解决某个问题的处理过程。
正确 错误
3、向量(vector)、双队列(deque)、列表(list)都是顺序容器
正确 错误
4、堆栈(stack)、队列(queue)和多重映射(multimap)属于容器适配器
正确 错误
5、双向容器是指除了具有前向迭代器外,还具有逆向迭代器
《面向对象程序设计》第10章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、关于异常对象的说法正确的是( )
B、以传值方式传递异常对象时,抛出
的是局部临时对象
C、以引用方式传递异常对象时,抛出
的是局部静态对象
2、C++库中所有异常类的基类是( )
A、ios_base::failure
C、dynamic_cast
A、异常对象需要先建立,再抛出
D、以指针方式传递异常对象时,抛出
的是全局临时对象
B、exception
D、bad_cast
3、C++中异常处理的默认模式是( )
A、终止模式
C、挂起模式
B、恢复模式
D、暂停模式
4、关于重新抛出错误的说法是( )
A、重新抛出是指抛出原来的异常
C、只能在catch块中抛出
B、用throw语句再次抛出原来的异常
D、重新抛出时不能改变异常信号的值
5、为保证程序中的全局变量不与开发商提供的全局变量重名,可以采取的措施是( )
A、查阅手册,不起同样的名字 B、引入命名空间
C、避开不用 D、让开发商改名
第二题、多项选择题(每题2分,5道题共10分)
1、异常处理的优点是( )
A、提高程序可读性
B、程序的控制不会因产生异常而随意跳转
C、正常处理代码和异常处理代码隐式分离
D、与函数调用返回的控制方法一致
2、下面与异常处理相关的关键字有( )
A、Try
B、Catch
C、try
D、catch
3、下面的说法正确的是()
A、引发异常用关键字throw
B、在被调用函数中检测到异常条件用throw都可以引发异常
C、被调用函数只有在try块中用throw才可以引发异常
D、检测到的异常由catch捕获并处理
4、try子句的作用是( )
A、代码的保护段
B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后
C、try子句产生异常
D、try子句中的throw表达式产生异常
5、下面说法正确的是( )
A、函数声明void f(int i) throw ( int,char)说明函数f会引发int和char
类型的异常
B、函数声明void f(int i) throw ( ) 不会引发任何类型的异常
C、函数声明void f(int i) throw ( )和void f(int i)是一样的
D、函数声明void f(int i)说明该函数不会引发异常
第三题、判断题(每题1分,5道题共5分)
1、异常如果没有要求程序立即进行处理,将会引起程序错误甚至崩溃的现象。
正确 错误
2、C++的异常处理机制就是捕捉异常进行异常处理。
正确 错误
3、抛出异常的模块并不负责异常的处理,该异常的处理可以程序中的任何位置。
正确 错误
4、C++引入了关键字throw和catch,用于进行异常处理。
正确 错误
5、异常信号传递方式有三种:传值方式、引用方式和指针方式。
正确 错误
面向对象程序设计》第08章在线测试 剩余时间: 34:00
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、面向对象方法的多态性是指( )。
A、一个类可以派生出多个特殊类
C、针对一消息,不同的对象可以以适合自身的方式
加以响应
B、一个对象在不同的运行环境中可以有不同的变体
D、一个对象可以是由多个其他对象组合而成的
2、下列关于虚函数与函数重载区别的叙述中不正确的是( )
A、函数说明形式上不同 B、函数重载允许是非成员函数,虚函数只能是成员
函数
C、函数重载的调用依据参数和类型的差别,虚函数
则依据对象
D、函数重载的本体可以在类外定义,虚函数不可以
3、类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p->A::func() 将 ( )
A、调用类 A 中的函数 func()
C、根据 p 所指的对象类型而确定调用类 A 中或类
B 中的函数 func()
B、调用类 B 中的函数 func()
D、既调用类 A 中函数,也调用类 B 中的函数
4、关于纯虚函数和抽象类的描述中,( )是错误的。
A、纯虚函数是一种特殊的虚函数,它没有具体的实
现;
C、一个基类说明有纯虚函数,该基类的派生类一定
不再是抽象类;
5、下面的说法正确的是( )
A、虚函数是成员函数
C、构造函数和析构函数都可以定义为虚函数
B、抽象类是指具有纯虚函数的类;
D、抽象类只能作为基类来使用,其纯虚函数的实现
由派生类给出。
B、虚函数可以是静态成员函数
D、虚函数可以是内联函数
第二题、多项选择题(每题2分,5道题共10分)
1、在派生类中重新定义虚函数时必须在 ( ) 方面与基类保持一致。
A、参数类型
B、参数个数
C、操作内容
D、返回值
2、下面说法正确的是( )
A、静态绑定在编写程序的时候完成
B、动态绑定在程序执行的时候完成
C、静态绑定在程序编译阶段完成
D、动态绑定是动态链接生成的
3、下面的说法正确的是( )
A、纯虚函数不需要定义
B、纯虚函数在派生类中实现
C、纯虚函数在基类中定义为0
D、纯虚函数是不具体实现的虚函数
4、下面的说法正确的是( )
A、抽象类只能做基类
B、抽象类是继承层次中的根
C、抽象类用abstract定义
D、抽象类中至少有一个虚函数
5、关于抽象类的说法正确的是( )
A、抽象类可以生成类对象
B、抽象类不能用作参数类型、函数返回类型或显式转换的类型
C、不能定义抽象类指针和引用
D、抽象类只能作为其他类的基类
第三题、判断题(每题1分,5道题共5分)
1、虚函数是用virtual 关键字说明的成员函数。
正确 错误
2、构造函数说明为纯虚函数是没有意义的。
正确 错误
3、纯虚函数是一种特殊的虚函数,它没有具体的实现
正确 错误
4、一个基类说明有纯虚函数,该基类的派生类一定不再是抽象类;
正确 错误
5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
正确 错误
《面向对象程序设计》第09章在线测试 剩余时间: 40:09
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、cout是I0流库预定义的:
A、类
C、包含文件
B、对象
D、常量
2、在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是( )
A、fail
C、bad
B、eof
D、good
3、在C++程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。
A、istream
C、iostream
B、ostream
D、fstream
4、在C++程序中使用的cout标识符是系统类库中定义的( )类中的一个对象。
A、istream
C、iostream
B、ostream
D、fstream
5、seekg(-40,ios::cur)的意思是(A)
A、读写位置从当前位置前移40个字节
C、读写位置从当前位置上移40个字节
B、读写位置从当前位置后移40个字节
D、读写位置从当前位置下移40个字节
第二题、多项选择题(每题2分,5道题共10分)
1、下面的说法正确的是( )
A、缓冲流就是缓冲区
B、缓冲流当缓冲区满时才刷新流的数据
C、非缓冲流不处理数据
D、非缓冲流也要使用缓冲区
2、下面提供输入操作的类是( )
A、ios
B、istream
C、iostream
D、ostream
3、下面属于标准错误输出的流是( )
A、cin
B、cout
C、clog
D、cerr
4、关于运算符“<<”的说法正确的是( )
A、“<<”如果用于cout后,则表示输出操作
B、“<<”也叫做插入运算符
C、“<<”运算符可以重载
D、“<<”是从流中提取一个字符序列
5、 下面的说法正确的是(AC)
A、cerr是标准错误输出流
B、cerr和cout一样是可以缓冲的
C、cerr不能重定向
D、cout也不能重定向
第三题、判断题(每题1分,5道题共5分)
1、系统在主存中开辟的、用来临时存放输入输出数据的区域,叫做输入输出缓冲区(简称缓冲区)。
正确 错误
2、二进制文件的写操作用成员函数write()
正确 错误
3、hex、oct、dec只对下一个输出有效
正确 错误
4、ostrstream是向字符数组的输出流,istrstream是从字符数组的输入流
正确 错误
5、ofstream是用于读文件的文件流
正确 错误
《面向对象程序设计》第07章在线测试 剩余时间: 40:23
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、下面叙述不正确 的是 ( )
A、派生类都用公有派生产生
C、赋值兼容规则也适用于多重继承的组合
B、对基类成员的访问必须是无二义性的
D、基类的公有成员在派生类中仍然是公有的
2、若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的 ( )
A、私有成员
C、保护成员
B、公有成员
D、保护成员或私有成员
3、对基类和派生类的关系描述中, 错误 的是 ( )
A、派生类是基类的具体化
C、派生类是基类定义的延续
B、基类继承了派生类的属性
D、派生类是基类的特殊化
4、假设ClassY:publicX,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为( )
A、X,Y; Y,X
C、Y,X; X,Y
B、X,Y; X,Y
D、Y,X; Y,X
5、派生类的成员函数可以直接访问基类的( )成员。
A、所有 B、公有和保护
C、保护和私有 D、私有
第二题、多项选择题(每题2分,5道题共10分)
1、对于公有继承,基类中的私有成员在派生类中将 ( )。
A、不能够直接使用成员名访问
B、能够通过成员运算符访问
C、仍然是基类的私有成员
D、变为派生类的私有成员
2、下列对派生类的描述中正确的说法是:( )。
A、派生类至少有一个基类
B、派生类可作为另一个派生类的基类
C、派生类除了包含它直接定义的成员外,还包含其基类的成员
D、派生类所继承的基类成员的访问权限保持不变
3、派生类的对象对其基类中( )不可以直接访问。
A、公有继承的公有成员
B、公有继承的私有成员
C、公有继承的保护成员
D、私有继承的公有成员
4、含有虚基类的派生类的构造函数调用次序错误的是( )
A、虚基类,基类,派生类, 对象成员
B、基类,派生类,对象成员,虚基类
C、对象成员,基类,虚基类,派生类
D、基类,虚基类,对象成员,派生类
5、已知有下面的类定义: class A {…}; class B {…}; class C:public B, virtual public A{…}; C c;撤销c的时候,析构函数调用
顺序错误的是( )
A、ABC
B、CBA
C、BAC
D、CAB
第三题、判断题(每题1分,5道题共5分)
1、基类的保护成员在派生类中仍然是保护成员。
正确 错误
2、基类的保护成员在私有派生类中是私有成员。
正确 错误
3、私有继承时基类中的public成员在派生类中是private的。
正确 错误
4、在公有继承中,基类中只有公有成员对派生类是可见的。
正确 错误
5、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。
正确 错误
《面向对象程序设计》第06章在线测试 剩余时间: 30:16
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、设有函数模板 template<class Q> Q Sum(Q x, Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是 ( )
A、Sum(10,2);
C、Sum(15.2f, 16.0f);
B、Sum(5.0,6.7) ;
D、Sum( ″ AB ″ , ″ CD ″ );
2、以下关于函数模板叙述正确的是( )。
A、函数模板也是一个具体类型的函数
C、通过使用不同的类型参数,函数模板可以生成不
同类型的函数
B、函数模板的类型参数与函数的参数是同一个概念
D、用函数模板定义的函数没有类型