c面向对象程序设计试题和答案经典题目

  • 格式:doc
  • 大小:46.00 KB
  • 文档页数:17

下载文档原格式

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

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

1、观看以下程序:

class point{

public:

void show() {cout<<”point”<

};

void main()

{

point p1;

point *p;

p=&p1;

______p1.show()_________//通过对象p1访问show函数_______p.show()_______//通过指针p访问show函数

}

2、在C++类中可以包含___公共___、___保护_____和___私

有__三种具有不同访问控制权的成员。

3、定义类时,在类头中将使用关键字__class _____来表示

类定义的开始。

4、如果一个类中至少有一个纯虚函数,则该类称为_______

抽象类_________。

5、C++类的组成包括数据成员和______成员函数________,

友元__是___(是、不是)该类的成员函数。

6、友员函数是用关键字_____friend_______修饰的非成员

函数。

7、若有:

int i;

int &j=i;

i=10;

j=i+1;

则i=____11_____,j=___11______。

1 / 17

8、 new的功能是_______分配内存空间______,delete

的功能是______释放内存空间______________。

二、选择题(每小题1.5分,共30分)

1、下列特性中不是面向对象程序设计语言所特有的是( D )。

(A)数据封装(B)继承(C)多态性(D)模板

2、( B )是给变量取一个别名,它引入了变量的同意词。(A)指针(B)引用(C)枚举(D)结构

3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。

(A)share (B)public (C)private (D)protected

4、关于构造函数,下列说法不正确的是()。

(A)构造函数名字和类名相同

(B)构造函数在创建对象时自动执行

(C)构造函数无任何函数返回类型

(D)构造函数有且只有一个

5、派生类可以访问其基类的()。

(A)公有成员(B)保护成员

(C)私有派生(D)公有和保护成员

6、下列关于运算符重载的描述中,错误的是()。

(A)运算符重载不可以改变操作数的个数

(B)运算符重载不可以改变运算符的功能

(C)运算符重载不可以改变结合方向

(D)运算符重载不可以改变运算优先级

7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()(A)面向过程(B)面向对象(C)安全性(D)

复用性

8、对于类中定义的成员,其隐含访问权限为()。

A.public B.protected

C.private D.static

9、下面有关重载函数的说法中正确的是()

(A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同;

(C)重载函数必须有不同的形参列表(D)重载函数名可以不同;

10、有如下的对类“CSample”的说明,其中()是错误的。

class CSample {

A.int a=23;

B.CSample();

public:

C.CSample(int val);

D.~ CSample();

11、在int a=3,int *p=&a;中,*p的值是( )

A.变量a的地址值

B.无意义

C.变量p的地址值

D.3

12、每个类()构造函数。

(A)只能有一个(B)只可有公有的

(C)可以有多个(D)只可有缺省的

13、在一个类中可以对一个操作符进行()重载。

(A)1 种(B)2 种以下(C)3 种以下(D)多种

3 / 17

14、在公有继承的情况下,基类非私有成员在派生类中的访问

权限()

(A)受限制(B)保持不变(C)受保护(D)不受保护

15、应在下列程序划线处填入的正确语句是()

#include

class Base

{public:

void fun(){cout<<"Base::fun"<

};

class Derived:public Base

{ void fun()

{_____________//显示调用基类的函数fun()

cout<<"Derived::fun"<

}

};

(A)fun(); (B)Base.fun(); (C)Base::fun(); (D)Base->fun();

16、执行下面的程序将输出()

#include

class BASE{

char c;

public:

BASE(char n):c(n){}

virtual ~BASE(){cout<

};

class DERIVED:public BASE{

char c;

public:

DERIVED(char n):BASE(n+1),c(n){}

~DERIVED(){cout<

};

int main()

{DERIVED a('X');