2002年10月全国高等教育自学考试面向对象程序设计试题.doc

上传人:b****2 文档编号:1159284 上传时间:2022-10-18 格式:DOC 页数:19 大小:40.50KB
下载 相关 举报
2002年10月全国高等教育自学考试面向对象程序设计试题.doc_第1页
第1页 / 共19页
2002年10月全国高等教育自学考试面向对象程序设计试题.doc_第2页
第2页 / 共19页
2002年10月全国高等教育自学考试面向对象程序设计试题.doc_第3页
第3页 / 共19页
2002年10月全国高等教育自学考试面向对象程序设计试题.doc_第4页
第4页 / 共19页
2002年10月全国高等教育自学考试面向对象程序设计试题.doc_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

2002年10月全国高等教育自学考试面向对象程序设计试题.doc

《2002年10月全国高等教育自学考试面向对象程序设计试题.doc》由会员分享,可在线阅读,更多相关《2002年10月全国高等教育自学考试面向对象程序设计试题.doc(19页珍藏版)》请在冰豆网上搜索。

2002年10月全国高等教育自学考试面向对象程序设计试题.doc

一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题干的括号内。

每小题2分,共20分)

1.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()

A.类B.对象C.函数体D.数据块

2.面向对象的程序设计语言必须具备的关键要素是()

A.抽象和封装B.抽象和多态性

C.抽象、封装、继承和多态性D.抽象、封装和继承性

3.类的构造函数被自动调用执行的情况是在定义该类的()

A.成员函数时B.数据成员时

C.对象时D.友元函数时

4.设有函数模板

template

QSum(Qx,Qy){

return(x)+(y);

}

则下列语句中对该函数模板错误的使用是()

A.Sum(10,2);B.Sum(5.0,6.7);

C.Sum(15.2f,16.0f);D.Sum(″AB″,″CD″);

5.已知类A是类B的友元,类B是类C的友元,则()

A.类A一定是类C的友元

B.类C一定是类A的友元

C.类C的成员函数可以访问类B的对象的任何成员

D.类A的成员函数可以访问类B的对象的任何成员

6.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为()

A.operator*(i.operator++(),k)B.operator*(operator++(i),k)

C.i.operator++().operator*(k)D.k.operator*(operator++(i))

7.下列说法中正确的是()

A.类定义中只能说明函数成员的函数头,不能定义函数体

B.类中的函数成员可以在类体中定义,也可以在类体之外定义

C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中

D.在类体之外定义的函数成员不能操作该类的私有数据成员

8.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()

A.私有成员B.公有成员

C.保护成员D.保护成员或私有成员

9.对基类和派生类的关系描述中,错误的是()

A.派生类是基类的具体化B.基类继承了派生类的属性

C.派生类是基类定义的延续D.派生类是基类的特殊化

10.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A:

:

func()将()

A.调用类A中的函数func()

B.调用类B中的函数func()

C.根据p所指的对象类型而确定调用类A中或类B中的函数func()

D.既调用类A中函数,也调用类B中的函数

二、填空题(每小题2分,共20分)

11.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为__________。

12.模板定义中标识类型的参数必须用关键字_________修饰。

13.表达式count<

14.通过C++语言中的_________机制,可以从现存类中构建其子类。

15.要在调用虚函数的时候强制进行静态联编,可以通过在调用中对虚函数加_________实现。

16.封装要求一个对象应具备明确的功能,并具有_________以便和其它对象相互作用。

17.在删除一个动态对象时,将自动调用该动态对象所属类的_________函数。

18.静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是_________。

19.在下面的类定义中,私有成员有_________。

classLocation{

intX,Y;

protected:

intzeroX,zerxY;

intSetZero(intzeroX,intzeroY);

private:

intlength,height;

public:

voidinit(intinitX,intinitY);

intGetX();

intGetY();

};

20.类的私有成员只能被它的成员函数和_________访问。

三、改错题(每小题2分,共10分)

21.此类定义有一处错误,请指出错误并改正。

classABC{

inta;

public:

ABC(intaa)a(aa){}

};

22.下面程序通过调用函数模板实现计算两个正整数的最大公约数,把main函数中错误找出并改正过来。

#include

template

Tgcd(Tx,Ty){

while(x!

=y)

if(x>y)x-=y;

elsey-=x;

returnx;

}

voidmain()

{

inta;

doubled;

cin>>a>>d;

cout<

}

23.指出下面程序中的错误,并说明出错原因。

#include

classConstFun{

public:

voidConstFun(){}

constintf5()const{return5;}

intObj(){return45;}

intval;

intf8();

};

intConstFun:

:

f8(){returnval;}

voidmain()

{

constConstFuns;

inti=s.f5();

cout<<″Value=″<

}

24.指出下面程序中的错误,并说明错误原因。

#include

classA{

public:

voidfun(){cout<<″a.fun″<

};

classB{

public:

voidfun(){cout<<″b.fun″<

voidgun(){cout<<″b.gun″<

};

classC:

publicA,publicB{

private:

intb;

public:

voidgun(){cout<<″c.gun<<″endl;}

};

voidmain(){

cobj;

obj.fun();

obj.gun();

}

25.指出下面程序段中的错误,并说明出错原因。

classLocation{

intX,Y;

protected:

intzeroX,zeroY;

intSetZero(intzeroX,intzeroY){X=zeroX;Y=zeroY;}

private:

intlength,height;

public:

floatradius;

voidinit(intinitX,intinitY){length=initX;height=initY;}

intGetX(){returnX;}

intGetY(){returnY;}

};

intmain(){

LocationretangleA={25,20,3,5,6,7,3};

return0;

}

四、完成程序题(每小题4分,共20分)根据题目要求填空,完成程序。

26.在下面程序段横线处填上适当的内容。

classA{

________

intn;

public:

A(intnn=0):

n(nn){

if(n==0)a=0;

elsea=newint[n];

}

________//定义析构函数,释放动态数组空间

};

27.在下面程序横线处填上适当内容,使程序执行结果为:

200__100

程序如下:

#include

template________

Tf(Tx,Ty){

if(sizeof(T)==__________)

returnx+y;

else

returnx*y;

}

voidmain(){

cout<

}

28.下面程序三次调用同一函数sum,在横线处填上适当内容,使输出结果为:

S=2

S=5

S=9

程序如下:

#include

voidsum(inti)

{

staticints;

____________;

cout<<″S=″<

}

voidmain(void)

{

inti;

for(i=0;________)

sum(i);

}

29.请在下面横线处填上适当的内容,使程序的输出为:

7.00000

7

程序如下:

#include

viodmain(){

doublex=7;

cout<<______________<

cout<

}

30.在下面程序横线处填上适当的内容,使该程序输出结果为:

CreatingB

endofB

endofA

程序如下:

#include

classA

{

public:

A(){}

______________{cout<<″endofA″<

};

calssB:

publicA

{

public:

B(){________}

~B(){cout<<″endofB″<

};

v

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1