《C++面向对象程序设计》试卷及答案.docxVIP

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

《C++面向对象程序设计》试卷及答案.docx

《C++面向对象程序设计》试卷及答案

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

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

1.下列关于C++类的描述中,正确的是()。

A.成员函数必须在类体内定义

B.构造函数可以显式调用返回值类型

C.私有成员变量只能被类的成员函数访问

D.友元函数破坏了类的封装性,因此应避免使用

2.在C++中,关于继承的说法,错误的是()。

A.公有继承保留基类的公有成员为派生类的公有成员

B.私有继承将基类的所有成员变为派生类的私有成员

C.保护继承将基类的公有成员变为派生类的保护成员

D.继承不能改变基类成员的访问权限

3.下列函数中,不能作为虚函数的是()。

A.构造函数

B.析构函数

C.普通成员函数

D.静态成员函数

4.在C++中,关于模板的说法,正确的是()。

A.模板函数可以实例化为不同类型的函数

B.模板类只能有一个模板参数

C.模板必须在类体内定义

D.模板实例化时必须显式指定类型

5.下列关于构造函数的描述,正确的是()。

A.构造函数可以有返回值类型

B.构造函数可以重载

C.构造函数可以声明为虚函数

D.构造函数不能有参数

6.在C++中,关于多态的说法,正确的是()。

A.多态通过函数重载实现

B.多态通过虚函数实现

C.多态只能在基类和派生类之间实现

D.多态不需要虚函数关键字

7.下列关于析构函数的描述,错误的是()。

A.析构函数没有返回值类型

B.析构函数可以重载

C.析构函数可以声明为虚函数

D.析构函数在对象销毁时自动调用

8.在C++中,关于友元函数的说法,正确的是()。

A.友元函数是类的成员函数

B.友元函数可以访问类的私有成员

C.友元函数必须声明在类体内

D.友元函数破坏了类的封装性

9.下列关于运算符重载的说法,错误的是()。

A.运算符重载可以改变运算符的优先级

B.运算符重载可以改变运算符的结合性

C.运算符重载可以改变运算符的操作数个数

D.运算符重载必须使用成员函数或友元函数

10.在C++中,关于静态成员变量的说法,正确的是()。

A.静态成员变量属于类的每个对象

B.静态成员变量必须在类外初始化

C.静态成员变量可以通过对象访问

D.静态成员变量不能被修改

判断题(每题1分,共10分)

1.纯虚函数必须在抽象类中定义其函数体。()

2.构造函数可以重载但析构函数不能。()

3.静态成员函数可以直接访问类的非静态成员。()

4.虚函数声明时必须使用virtual关键字。()

5.在C++中,类默认的继承方式是公有继承。()

6.模板函数可以自动推断模板参数类型。()

7.友元函数可以继承。()

8.运算符重载函数的参数个数取决于运算符的操作数个数。()

9.在C++中,this指针指向当前对象。()

10.析构函数的调用顺序与构造函数的调用顺序相反。()

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

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

```cpp

#includeiostream

usingnamespacestd;

classBase{

public:

Base(intx):val(x){}

virtualvoidprint(){coutBase:valendl;}

protected:

intval;

};

classDerived:publicBase{

public:

Derived(intx,inty):Base(x),extra(y){}

voidprint()override{coutDerived:val,extraendl;}

private:

intextra;

};

intmain(){

Base*p=newDerived(10,20);

p-print();

de

文档评论(0)

1亿VIP精品文档

相关文档