2002年10月全国高等教育自学考试面向对象程序设计试题Word格式.doc
- 文档编号:14078401
- 上传时间:2022-10-18
- 格式:DOC
- 页数:19
- 大小:40.50KB
2002年10月全国高等教育自学考试面向对象程序设计试题Word格式.doc
《2002年10月全国高等教育自学考试面向对象程序设计试题Word格式.doc》由会员分享,可在线阅读,更多相关《2002年10月全国高等教育自学考试面向对象程序设计试题Word格式.doc(19页珍藏版)》请在冰豆网上搜索。
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<
<
hex还可表示为_________。
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;
ABC(intaa)a(aa){}
22.下面程序通过调用函数模板实现计算两个正整数的最大公约数,把main函数中错误找出并改正过来。
#include<
iostream.h>
classT>
Tgcd(Tx,Ty){
while(x!
=y)
if(x>
y)x-=y;
elsey-=x;
returnx;
voidmain()
{
doubled;
cin>
>
a>
d;
cout<
gcd(a,d)<
endl;
23.指出下面程序中的错误,并说明出错原因。
classConstFun{
voidConstFun(){}
constintf5()const{return5;
intObj(){return45;
intval;
intf8();
intConstFun:
f8(){returnval;
constConstFuns;
inti=s.f5();
″Value=″<
i<
24.指出下面程序中的错误,并说明错误原因。
classA{
voidfun(){cout<
″a.fun″<
classB{
″b.fun″<
voidgun(){cout<
″b.gun″<
classC:
publicA,publicB{
intb;
voidgun(){cout<
″c.gun<
″endl;
voidmain(){
cobj;
obj.fun();
obj.gun();
25.指出下面程序段中的错误,并说明出错原因。
intzeroX,zeroY;
intSetZero(intzeroX,intzeroY){X=zeroX;
Y=zeroY;
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.在下面程序段横线处填上适当的内容。
________
intn;
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;
cout<
f(10,20)<
″--″<
f(45.5,54.5)<
28.下面程序三次调用同一函数sum,在横线处填上适当内容,使输出结果为:
S=2
S=5
S=9
voidsum(inti)
staticints;
____________;
″S=″<
s<
voidmain(void)
inti;
for(i=0;
________)
sum(i);
29.请在下面横线处填上适当的内容,使程序的输出为:
7.00000
7
iomanip.h>
viodmain(){
doublex=7;
______________<
x;
endl<
30.在下面程序横线处填上适当的内容,使该程序输出结果为:
CreatingB
endofB
endofA
classA
A(){}
______________{cout<
″endofA″<
calssB:
publicA
B(){________}
~B(){cout<
″endofB″<
v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2002 10 全国 高等教育 自学考试 面向 对象 程序设计 试题