面向对象程序设计试题10.docx
- 文档编号:25403296
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:15
- 大小:19.60KB
面向对象程序设计试题10.docx
《面向对象程序设计试题10.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计试题10.docx(15页珍藏版)》请在冰豆网上搜索。
面向对象程序设计试题10
2004年10月高等教育自学考试面向对象程序设计试题
课程代码:
02328
一、单项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在面向对象的程序设计中,首先在问题域中识别出若干个( )
A.函数B.类
C.文件D.过程
2.定义类模板时要使用关键字( )
A.constB.new
C.deleteD.template
3.在下列成对的表达式中,运算结果类型相同的一对是( )
A.9.0/2.0和9.0/2B.9/2.0和9/2
C.9.0/2和9/2D.9/2和9.0/2.0
4.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明( )
A.f1和f2都是静态函数B.f1是静态函数,f2不是静态函数
C.f1不是静态函数,f2是静态函数D.f1和f2都不是静态函数
5.调用一成员函数时,使用动态联编的情况是( )
A.通过对象调用一虚函数B.通过指针或引用调用一虚函数
C.通过对象调用一静态函数D.通过指针或引用调用一静态函数
6.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为( )
A.1和0B.1和4
C.4和0D.4和1
7.在派生类中能够直接访问的是基类的( )
A.公有成员和私有成员B.保护成员和私有成员
C.不可访问的和私有的成员D.公有成员和保护成员
8.下列不具有访问权限属性的是( )
A.非类成员B.类成员
C.数据成员D.函数成员
9.在类定义中private,protected,public关键词出现的次数为( )
A.任意多次B.至多一次
C.public至少出现一次D.至少一次
10.C++语言鼓励程序员在程序设计时将( )
A.数据和操作分别封装B.不同类型的数据封装在一起
C.数据和操作封装在一起D.不同作用的操作封装在一起
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
11.在用C++进行程序设计时,最好用___________________代替malloc。
12.函数模板中紧随template之后尖括号内的类型参数都要冠以保留字________________。
13.在ios类中定义的用于控制输入输出格式的枚举常量中,用于代表十进制、八进制和十六进制的3个枚举常量是dec、oct和___________________。
14.如果重载了运算符+,则相应的运算符函数名是___________________。
15.由static修饰的数据成员为该类的所有对象___________________。
16.为了实现多态性,派生类需重新定义基类中的___________________。
17.编译时的多态性通过___________________函数实现。
18.在派生类中实现基类成员的初始化,需要由派生类的构造函数调用_________________来完成。
19.在C++中,访问指针所指向的对象的成员使用运算符___________________。
20.重载函数在参数类型或参数个数上不同,但___________________相同。
三、改错题(本大题共5小题,每小题2分,共10分)
21.下面的类Complex定义中有一处错误,如更正了错误,程序的输出是5+8i。
请用下横线标出错误所在行并给出修改意见。
#include
#include
classComplex{//3
doublereal;//4
doubleimag;//5
public:
//6
Complex(doubler=0.0,doublei=0.0):
real(r),imag(i){}//7
voidshow(){cout<
′
+′:
′-′)< friendComplex&operator+=(Complexc1,Complexc2){//9 c1.real+=c2.real;c1.imag+=c2.imag;//10 returnc1;//11 }//12 };//13 //14 voidmain(){//15 Complexc(3,5);//16 c+=Complex(2,3);//17 c.show();//18 }//19 22.下面的程序有一处错误,请用下横线标出错误所在行并给出修改意见。 #include //2 classshape{//3 public: //4 intarea(){return0;}//5 };//6 //7 classrectangle: publicshape{//8 public: //9 inta,b;//10 voidsetLength(intx,inty){a=x;b=y;}//11 intarea(){returna*b;}//12 };//13 //14 voidmain(){//15 rectangler;//16 r.setLength(3,5);//17 shape*s=r;//18 cout< cout< }//21 23.下面的程序有一处错误,请用下横线标出错误所在行并提出修改意见。 #include classCU{//2 enum{INT,FLOAT}type;//3 unionvalue{//4 intivalue;//5 floatfvalue;//6 };//7 public: //8 CU(intx): type(INT),ivalue(x){}//9 CU(floaty): type(FLOAT),fvalue(y){}//10 Voidprint(){//11 if(type==INT)//12 cout< else//14 cout< }//16 };//17 //18 voidmain(){//19CUfCU((float)5.6);//20 CUiCU(8);//21 fCU.print();//22 cout< iCU.print();//24 }//25 24.下面的类定义中有一处错误,请用下横线标出错误所在行并说明错误原因。 classA{//1 inta,b;//2 public: //3A(intaa=0,intbb){//4 a=aa;b=bb;//5 }//6 };//7 25.下面的类定义中有一处错误,请用下横线标出错误所在行并说明错误原因。 classLocation{//1intX,Y;//2 protected: //3 intSetZero(intzeroX,intxeroY);//4 private: //5 intlength,height;//6 public: //7 voidLocation(intinitX,intinitY);//8 intGetX();//9 intGetY();//10 };//11 四、完成程序题(本大题共5小题,每小题4分,共20分)。 根据题目要求,完成程序填空。 26.在下面程序横线处填上适当字句,以使该程序执行结果为: 5 4 3 2 1 0 5.5 4.4 3.3 2.2 1.1 #include template voidf(① ){ ② ;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 试题 10