南京大学金陵学院2009-2010学年C++期末(袁杰老师)

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

南京大学金陵学院期末试卷

2009~2010 学年第一学期

课程名称:面向对象程序设计与 Visual C++ 教师姓名:袁杰试卷类型:闭卷

专业:______________学号:_____________姓名:_______________成绩___________

一、主观题(全都是不定项选择,错选得0分,理由不正确得0分):(80分)9.已知classMyClass{

1.下列说法正确的有:(BD )public:

A.函数模版不能含有常规形参

B.函数模版的一个实例就是一个函数定义

C.类模版的成员函数不能是模版函数

D.用类模版定义对象时,不能省略模版实参

2.已知Value是一个类,value是Value类的一个对象,下面以非成员函数形式重载的运算符函数原型中,正确的有:(A)

A.Value operator+(Value v, inti);

B.Value operator+(Valuev=value, inti);

C.Value operator+(Value v,inti=0);

D.Value operator+(Value v=value, inti=0);

理由是:___参数不能初始化

3.下面是一个模版声明的开始部分:

Template double…

MyClass() {cout<<4;}

}a,b[3],*p[3];

上述程序段输出为_____4444_______

理由是:________________________________________ 10.以下乘法运算符重载定义中正确的是:(BCD)A.MyClass operator*(double,double); B.MyClass operator*(double,MyClass); C.MyClass operator*(MyClass,double); D.MyClass operator*(MyClass,MyClass);

理由是:___操作数中至少有一个是自定义类型____ 11. 已知

class Constants{

public:

由此可知:(A )static double getPI() {return 3.1416;} A.这可能是一个函数模版的声明}constant;

B.这可能是一个类模版的声明以下能输出3.1416的有:(BC )

C.这既可能是一个函数模版的声明,也可能是一个类模版的声明

D.这肯定是一个错误的模版声明

理由是:___函数的模声明为template

4.派生类以protected方式继承基类,基类的protected A. cout<getPI();

B. cout<

C. cout<

D. cout<

理由是:________________________________________ 12.下列模版的定义正确的有:(A)

成员和public成员在派生类中的访问属性为:(D ) A. template T Get(T x){return x;}

A.public和public C.protected和public B.public和protected

D.protected和protected

B. template classGet(T x){return x;}

C. template TGet(T x){return x;}

理由是:基类的私有成员公有成员都以protected的身份出现5. C++中的模版包括:(C)

A.对象模版和类模版B.对象模版和函数模版

B.函数模版和类模版D.对象、函数和类模版

6.面向对象程序设计中,信息隐蔽可以通过(C)

A.继承B.多态性C.封装D.模版

7.

8.已知

classMyClass{

int value;

public:

MyClass(int n, int m=0){value=m-n;}

MyClass(int n):value(n){};

intgetValue()const {return value;}

};

MyClass的构造函数有_____2___个。D. template T Get(T x){return x;}

理由是:________________________________________ 13.以下程序输出结果是:_____0375___________

class Base{

int x;

public:

Base(int n=0):x(n){cout<

intgetX()const{return x;}

};

classDerive:public Base{

int y;

public:

Derive(intm,int n):y(m),Base(n){cout<

Derive(int m):y(m){cout<

};

void main(){

理由是:________________________________________

}

Derive d1(3),d2(5,7);

相关文档
最新文档