南开大学理科面向对象程序设计2-2期末试卷及答案.docxVIP

  • 1
  • 0
  • 约7.65千字
  • 约 14页
  • 2026-03-15 发布于北京
  • 举报

南开大学理科面向对象程序设计2-2期末试卷及答案.docx

南开大学理科面向对象程序设计2-2期末试卷及答案

考试时间:______分钟总分:______分姓名:______

选择题(每题2分,共20分)

1.以下关于虚函数的描述,正确的是()。

A.虚函数必须在基类中声明,且必须在派生类中重写

B.虚函数可以是静态成员函数

C.派生类重写虚函数时,函数参数必须与基类完全一致

D.虚函数的调用一定通过虚表实现

2.在C++中,使用模板函数时,以下说法正确的是()。

A.模板函数必须在声明时指定模板参数

B.模板函数可以隐式实例化

C.模板函数的模板参数只能是基本数据类型

D.模板函数的实例化在运行时进行

3.关于异常处理,以下描述错误的是()。

A.`try`块中可以抛出多个异常

B.`catch`块可以捕获基类异常,但派生类异常不会被捕获

C.`throw`语句可以抛出任何类型的表达式

D.未捕获的异常会导致程序终止

4.以下STL容器中,不属于顺序容器的是()。

A.`vector`

B.`list`

C.`map`

D.`deque`

5.在文件I/O中,以读写方式打开文件`file.txt`,并确保文件不存在时创建,应使用的打开模式是()。

A.`ios::in|ios::out`

B.`ios::in|ios::out|ios::trunc`

C.`ios::in|ios::out|ios::app`

D.`ios::in|ios::out|ios::ate`

6.关于继承,以下说法正确的是()。

A.派生类可以访问基类的私有成员

B.派生类构造函数必须显式调用基类构造函数

C.虚基类用于解决多继承中的二义性问题

D.派生类对象可以直接赋值给基类对象

7.以下关于`const`关键字的描述,正确的是()。

A.`const`成员函数不能修改类的任何成员

B.`const`变量必须在声明时初始化

C.指针常量和常量指针是相同的

D.`const`修饰的函数参数可以传递非常量引用

8.在C++中,以下哪个运算符不能被重载?()

A.`+`

B.``

C.`::`

D.`[]`

9.关于多态,以下说法正确的是()。

A.多态必须通过虚函数实现

B.静态多态是通过虚表实现的

C.派生类重写虚函数时,返回值类型可以不同

D.纯虚函数必须有函数体

10.使用STL的`find`算法在`vectorint`中查找元素,需包含的头文件是()。

A.`algorithm`

B.`vector`

C.`iterator`

D.`functional`

填空题(每题2分,共20分)

1.使用STL的`sort`算法对`vectorint`类型的容器`v`进行降序排序时,需传入的第三个参数是______。

2.以二进制写入方式打开文件`data.dat`,需使用的`fstream`构造函数调用是______。

3.在C++中,定义一个模板函数`templatetypenameTTmax(Ta,Tb)`,调用时若传入`int`和`double`类型,会触发______错误。

4.虚函数的声明必须在类定义中使用______关键字修饰。

5.在异常处理中,`catch(...)`块的作用是______。

6.STL中的`map`容器存储的是键值对,其中键的类型必须支持______运算。

7.派生类构造函数调用基类构造函数时,若基类有默认构造函数,则______显式调用。

8.使用`new`动态分配内存时,若分配失败,会抛出______异常。

9.在C++中,`this`指针是一个指向______的指针。

10.模板特化分为全特化和______两种。

程序阅读题(每题10分,共20分)

1.阅读以下代码,写出程序运行结果:

```cpp

#includeiostream

#includevector

usingnamespacestd;

classBase{

public:

virtualvoi

文档评论(0)

1亿VIP精品文档

相关文档