全国高等教育自学考试面向对象程序设计试题.docx
- 文档编号:367029
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:15
- 大小:19.05KB
全国高等教育自学考试面向对象程序设计试题.docx
《全国高等教育自学考试面向对象程序设计试题.docx》由会员分享,可在线阅读,更多相关《全国高等教育自学考试面向对象程序设计试题.docx(15页珍藏版)》请在冰豆网上搜索。
全国高等教育自学考试面向对象程序设计试题
全国2003年10月高等教育自学考试面向对象程序设计试题
课程代码:
02328
一、单项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列特性中,C与C++共有的是( )
A.继承
B.封装
C.多态性
D.函数定义不能嵌套
2.通常情况下,函数模板中的类型参数个数不能是( )
A.0
B.2
C.4
D.3
3.在下列成对的表达式中,运算符“+”的意义不相同的一对是( )
A.5.0+2.0和5.0+2
B.5.0+2.0和5+2.0
C.5.0+2.0和5+2
D.5+2.0和5.0+2
4.类的指针成员的初始化是通过函数完成的,这个函数通常是( )
A.析构函数
B.构造函数
C.其它成员函数
D.友元函数
5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )
A.constchar*p=“ABCD”;
B.charconst*p=“ABCD”;
C.char*constp=“ABCD”;
D.constchar*constp=“ABCD”;
6.静态成员函数没有( )
A.返回值
B.this指针
C.指针参数
D.返回类型
7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( )
A.都是虚函数
B.只有被重新说明时才是虚函数
C.只有被重新说明为virtual时才是虚函数
D.都不是虚函数
8.下面叙述不正确的是( )
A.派生类一般都用公有派生
B.对基类成员的访问必须是无二义性的
C.赋值兼容规则也适用于多重继承的组合
D.基类的公有成员在派生类中仍然是公有的
9.在C++中实现封装是借助于( )
A.枚举
B.类
C.数组
D.函数
10.所有在函数中定义的变量,都是( )
A.全局变量
B.局部变量
C.静态变量
D.寄存器变量
二、填空题(本大题共10小题,每小题2分,共20分)
不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
11.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有______个类型参数。
12.在单继承和多继承方式中,面向对象的程序设计应尽量使用______继承。
13.语句序列ifstreamdatafile;datafile.open(“data.dat”);的功能可用一个语句实现,这个语句是______。
14.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。
此时const不是指定函数的返回值,而是修饰______指针。
15.一个抽象类的派生类可以实例化的必要条件是实现了所有的______。
16.在C++中,虚函数帮助实现了类的______性。
17.通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。
18.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义______。
19.在联合中,所有数据成员具有______的地址,任一时刻只有______个数据成员有效。
20.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句______。
三、改错题(本大题共5小题,每小题2分,共10分)
21.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。
classA{
inta;
public;
A(intaa):
a=aa{}
};
22.下面的程序先把字符串“Lookout!
”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Lookout!
。
程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。
#include
voidmain(){
ofstreamoutf(“D:
\tem.dat”,ios:
:
trunc);
outf<<“Lookout!
”;
outf.close();
ifsteaminf(“D:
\tem.dat”);
chark[20]; inf>>k; count< inf.close(); } 23.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。 #include classTest{ public; staticintx; }; intx=20;//对类成员初始化 voidmain() { cout< : x; } 24.下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。 #include #include classA{ public: A(constchar*nm){strcpy(name,nm);} private: charname[80]; }; classB: publicA{ public: B(constchar*nm): A(nm){} voidPrintName()const; }; voidB: : PrintName()const{ cout<<“name: ”< } voidmain(){ Bb1(“wangli”); b1.PrintName(); } 25.用下横线标出下面程序main函数中的错误所在行,并说明错误原因。 #include classLocation{ private: intX,Y; public; voidinit(intinitX,intinitY); intsumXY(); }; voidLocation: : init(intinitX,intinitY) { X=initX; Y=initY; } intLocation: : sumXY() { returnX+Y; } voidmain() { LocationA1; intx,y; A1.init(5,3); x=A1.X;y=A1.Y; cout< } 四、完成程序题(本大题共5小题,每小题4分,共20分)。 根据题目要求,完成程序填空。 26.在下面程序横线处填上适当内容,以使该程序执行结果为: 12 88 #include template classTany{ public: ① ; voidpr(){ if(sizeof(int)==② ) count<<(x>y? x: y)< else cout<<(x>y? y: x)< } }; voidmain(){ Tanydobj={12.0,88.0}; dobj.pr(); Tanyiobj={12,88}; iobj.pr(); } 27.在下面的横线处填上适当内容,使程序完整。 #include #include classloc{ private: floatx,y; public; loc(① ) { x=x1; y=y1; } floatgetx(){returnx;} floatgety(){returny;} ② floatdis(loc&,loc&); }; floatloc: : dis(loc&a,loc&b) { flostdx=a.x-b.x; flostdy=a.y-b.y; returnsqrt(dx*dx+dy*dy); } voidmain() { locpl(3.5,4.5),p2(5.5,6.5); floatd=loc: : dis(p1,p2); cout<<“Thedistanceis”< } 28.在下面程序中的横线处填上适当内容,使程序完整。 #include classvehicle { protected: intsize; intspeed; public; voidsetSpeed(ints){speed=s;} ① getSpeedLevel(){returnspeed/10;} }; classcar: publicvehicle { public: intgetSpeedLeve(){returnspeed/5;} }; classtruck: publicvehicle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 高等教育 自学考试 面向 对象 程序设计 试题