单选题(共16题,共48分)
开始说明:
结束说明:
1.(3分)
下列选项中,哪一项是可变序列算法( B)。
A、for_each()
B、sort()
C、accumulate()
D、find()
2.(3分)
关于多态,下列说法中错误的是(D )。
A、继承中的多态是动态多态
B、多态的本质是指函数的多种实现形态
C、由重载函数实现的多态是编绎时多态
D、动态多态是由纯虚函数实现的
3.(3分)
关于迭代器,下列说法错误的是(D )。
A、删除容器中的元素,可能会使原有迭代器失效
B、反向迭代器可以从容器末尾向容器首部进行迭代
C、vector容器的iterator迭代器是随机迭代器
D、迭代器就是指针
4.(3分)
关于虚函数的实现多态的机制,下列说法中错误的是(C )。
A、虚函数是通过动态绑定实现多态的
B、在编译包含虚函数的类时,编译器会在类中添加一个隐藏的虚函数指针,指向虚函数表
C、创建对象时,虚函数指针不占用对象内存空间
D、在继承时,派生类会继承基类的虚函数指针
5.(3分)
关于虚函数,下列说法中错误的是( D)。
A、虚函数是运行时多态
B、声明虚函数的方法就是在成员函数原型前添加virtual关键字
C、虚函数只能是类中的成员函数,但不可以是静态成员函数
D、派生类对基类虚函数重写时,可以不必与基类中虚函数的原型完全一致
6.(3分)
关于类模板的模板参数,下列说法错误的是( )。
A、可以作为数据成员类型
B、可以作为成员函数的返回类型
C、可以作为成员函数的参数类型
D、以上说法都正确
7.(3分)
以下( )成员函数表示虚函数。
A、virtual int vf(int);
B、void vf(int)=0;
C、virtual void vf()=0;
D、virtual void vf(int) { };
8.(3分)
下列模板声明中,正确的是( )。
A、template<typename T1,T2>
B、template<classT1,T2>
C、template< T1, T2>
D、template<typename T1, typename T2>
9.(3分)
关于queue容器适配器,下列描述正确的是( )。
A、queue具有先入后出的特点
B、queue可以一次删除多个元素
C、queue不支持迭代器操作
D、queue不支持pop方法
10.(3分)
关于array容器,下列描述错误的是( )。
A、array容器初始化后,大小固定,不可修改
B、array容器中元素不可以进行修改
C、array容器和数组类型一样不进行边界检查
D、array容器可以调用fill()函数进行初始化
11.(3分)
下列选项中不属于vector容器操作方法的是( )。
A、emplace_back
B、pop_back
C、insert
D、push_front
12.(3分)
如果一个类至少有一个纯虚函数,那么就称该类为( )。
A、抽象类
B、虚函数
C、派生类
D、以上都不对
13.(3分)
关于虚函数的描述中,正确的是()。
A、虚函数是一个静态成员函数
B、虚函数是一个非成员函数
C、虚函数即可以在函数说明定义,也可以在函数实现时定义
D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
14.(3分)
关于纯虚函数和抽象类的描述中,错误的是( )。
A、纯虚函数是一种特殊的虚函数,它没有具体的实现
B、抽象类是指具体纯虚函数的类
C、一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类
D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
15.(3分)
下面4个选项中,( )是用来声明虚函数的。
A、virtual
B、public
C、using
D、false
16.(3分)
类模板的使用实际上是将类模板实例化成为一个( )。
A、函数
B、对象
C、类
D、抽象类
判断题(共26题,共52分)
开始说明:
结束说明:
17.(2分)
虚函数可以声明为类的静态成员函数。
√
×
18.(2分)
一个类中,只要有一个函数模板则这个类是类模板。
√
×
19.(2分)
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化。
√
×
20.(2分)
STL是由微软开发出来的。
√
×
21.(2分)
函数模板必须由程序员实例化为可执行的模板函数。
√
×
22.(2分)
deque是两端开口的,支持从两端插入、删除数据,并支持元素的随机访问。
√
×
23.(2分)
纯虚函数是一种特殊的虚函数,它没有具体的实现。
√
×
24.(2分)
模板的特化包括偏特化、全特化两种形式。
√
×
25.(2分)
虚函数即可以在函数说明定义,也可以在函数实现时定义。
√
×
26.(2分)
类模板派生时需要指定模板形参类型,根据模板形参类型创建具体的类作为基类。
√
×
27.(2分)
构造函数可以声明为虚函数。
√
×
28.(2分)
函数重载也是C++中的一种多态实现形式。
√
×
29.(2分)
编译时的多态性可以通过使用虚函数和指针获得。
√
×
30.(2分)
set与multiset都是集合,都是存储一组相同数据类型的元素。
√
×
31.(2分)
STL中的容器适配器包括stack、queue、 priority_queue三种。
√
×
32.(2分)
multiset用来存储一组无重复的元素,而set允许存储有重复的元素。
√
×
33.(2分)
当删除双端队列中的元素时,由于不需要发生元素的移动,因此效率也是非常高的。
√
×
34.(2分)
声明了纯虚函数的类可以创建对象。
√
×
35.(2分)
把普通函数声明为类模板的友元函数,这样的友元函数称为非模板友元函数。
√
×
36.(2分)
类模板的派生类对象初始化与普通类一致。
√
×
37.(2分)
函数模板中声明的对象或变量不能与模板形参同名。
√
×
38.(2分)
函数模板可以像函数一样进行重载。
√
×
39.(2分)
关键字template用于声明模板。
√
×
40.(2分)
STL中的for_each()算法用于对指定区间的元素执行同一种操作。
√
×
41.(2分)
抽象类是指具有纯虚函数的类。
√
×
42.(2分)
迭代器是泛化的指针,STL算法利用迭代器对容器中的元素序列进行操作,迭代器提供了访问容器中每个元素的方法。
√
×
浙江电大C++语言程序设计_形考3-0001最新答案
随机题搜索:
觉得这篇文章对你有用的话,就打赏一下支持文章作者
评论0