面向对象程序设计及C++ 期末试卷B
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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); }