面向对象程序设计及C++ 期末试卷B

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京邮电大学 学年第 二 学期

《面向对象程序设计及C++》期末试卷2

院(系) 班级 学号 姓名 (★温馨提醒:

① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!)

一、填空题(共10分,每空1分)

1、面向对象程序设计思想中的几个主要特征是:抽象和 ① 、 ② 、 ③ 。

2、C++为类的成员函数提供了一个名字为 ④ 的指针,当创建一个对象时,系统将这种指针初始化为指向该对象。

3、假设AB 为一个类,则该类的拷贝构造函数的原型是 ⑤ 。

4、C++中有三种继承方式,如果基类的公有成员到派生类中仍是公有成员,则应使用 ⑥ 继承方式;如果基类的保护成员到派生类中变成私有成员,则应使用 ⑦ 继承方式。

5、cout 是C++中的标准输出流对象,它在标准头文件 ⑧ 里定义。

6、通过在虚函数参数表后加 ⑨ ,可以定义为纯虚函数。含有纯虚函数的类称为 ⑩ 。

二、单选题(共20分,每题2分)

1、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是 。 A 、参数的个数 B 、参数的类型

C 、参数的顺序

D 、函数的返回类型

2、下列定义引用类型变量时, 是正确的。 已知:int k=1000;

A 、int &x=k;

B 、char &y;

C 、int &z=1000;

D 、float &t=&k;

装 订 线 内 不 要 答 题

遵 守

考 试 规 则,诚 信 考 试,绝 不

作 弊

3、下列几个运算符以类的成员函数形式重载时,哪一个与其他3个的形

式参数个数不一样。

A、后缀++

B、前缀++

C、+

D、/

4、关于析构函数的定义,正确的是。

A、析构函数可以有一个或多个参数

B、析构函数返回类型是void

C、析构函数无参数,也不可重载

D、析构函数体中必须有delete

5、下列哪一项能声明为虚函数。

A、静态函数

B、友元函数

C、构造函数

D、析构函数

6、考虑下面的函数原型:void fun(int a,int b=7,char z='*'); 下面函数调用中不合法的。

A、fun (5) ;

B、fun (5,8) ;

C、fun (5,'#') ;

D、fun ( , ,'*') ;

7、下列语句中错误的是。

A、int *p=new int(10) ;

B、int *p=new int[40](10) ;

C、int *p=new int ;

D、int *p=new int[10] ;

8、在公有派生方式下,下列叙述不正确的是。

A、派生类的对象可以赋给基类的对象

B、派生类对象的地址可以直接赋给指向基类的指针

C、派生类的对象可以直接访问基类的成员

D、派生类的对象可以初始化基类的引用

9、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的

隐含打开方式为_______。

A、ios::in

B、ios::out

C、ios::trunk

D、ios::binary

10、设有类A和类B,其定义如下:

class A{

private:

int i;

public:

A( int x)

{ i=x; }

};class B{

private:

A a1,a2; int b;

public:

B( int x,int y,int z):a2(x),a1(y)

{ b=z; }

};

在声明类B对象b1时,其数据成员a1,a2,b被初始化的顺序为______。

A、a1,a2,b

B、a2,a1,b

C、b,a1,a2

D、b,a2,a1

三、读程题(共30分,每空2分)

1、以下程序运行后的输出结果是。

#include

int x=100;

void main()

{

int x=200;

::x+=x;

cout<<::x<

}

2、以下程序运行后输出的第一行是,第二行是,第三行是。

#include

class Sample

{

int x,y;

public:

Sample(int a=0,int b=0)

{

x=a; y=b;

}

Sample(const Sample &S)

{

x=2*S.x;

y=2*S.y;

}

void disp( )

{

cout<

}

};

void f(Sample S)

{

S.disp( );

}

void main( )

{

Sample s1(2,3),s2=s1;

s1.disp( );

s2.disp( );

f(s1);

}

相关文档
最新文档