面向对象程序设计C++期末考试试题.docx
- 文档编号:20289234
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:20
- 大小:20.56KB
面向对象程序设计C++期末考试试题.docx
《面向对象程序设计C++期末考试试题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计C++期末考试试题.docx(20页珍藏版)》请在冰豆网上搜索。
面向对象程序设计C++期末考试试题
山东师范大学2009-2010学年第一学期期末考试试题
一、单项选择题
下面每题的选项中,只有一个是正确的,请选择正确的答案填入答题纸中对应的题号后(本题共25小题,每小题1分,共25分)。
1、当一个函数无返回值时,函数的类型应定义为()。
AvoidB任意CintD无
2、作用域运算符的功能是()。
A标识作用域的级别B指出作用域的范围
C给定作用域的大小D标识某个成员是属于哪个类
3、下列的()是引用调用。
A形参是指针,实参是地址值B形参和实参都是变量
C形参是数组名,实参是数组名D形参是引用,实参是变量
4、()不是构造函数的特征
A构造函数的名和类名相同B构造函数可以重载。
C构造函数可以设置默认值D构造函数必须指定类型说明。
5、下列()不能作为类的成员。
A自身类对象的指针B自身类对象的引用
C自身类对象D另一个类的对象
6、重载函数在调用时选择的依据,()是错误的。
A.参数个数B参数的类型
CA或者BD函数的类型
7、下列静态成员的特性中,()是错误的。
A说明静态成员时,要加修饰符static
B静态数据成员要在类体外进行初始化
C引用静态数据成员时,要在静态数据成员名前加<类名>及作用域运算符
D静态数据成员不是所有对象所共用的
8、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用()是正确的。
Ap=f1Bp=A:
:
f1Cp=A:
:
f1()Dp=f1()
9、运算符->*的功能是()。
A用来表示指向对象指针对指向类成员指针的操作
B用来表示对象对指向类成员指针的操作
C用来表示指向对象指针对类成员的操作
D用来表示对象类成员的操作
10、下列定义中,()是定义指向数组的指针p.
Aintp[5]Bint(*p)[5]C(int*)p[5]Dint*p[]
11、设p为一个指向类A数据成员m的指针,A1为A的一个对象。
如果给m赋值5,()为正确的。
AA1.p=5BA1->p=5CA1.*p=5D*A1.p=5
12、已知print()函数是一个类的常成员函数,它无返回值。
下列表示中,()是正确的。
Avoidprint()constBconstvoidprint()
Cvoidconstprint()Dvoidprint(const)
13、说明constchar*ptr;中,ptr应该是()。
A指向字符常量的指针B指向字符的常量指针
C指向字符串常量的指针D指向字符串的常量指针
14、派生类的对象对它的基类成员中()是可以访问的。
A公有继承的公有成员B公有继承的私有成员
C公有继承的保护成员D私有继承的公有成员
15、下列对派生类的描述中,()是错的。
A一个派生类可以作为另一个派生类的基类
B派生类至少有一个基类
C派生类的成员除了它自己的成员以外,还包含了它的基类成员
D派生类中继承的基类成员的访问权限到派生类保持不变
16、对于int*pa[5];的描述,()是正确的。
Apa是一个指向数组的指针,所指向的数组是5个int型元素。
Bpa是一个指向某数组中第5个元素的指针,该元素是int型变量。
Cpa[5]表示某个数组的第5个元素的值。
Dpa是一个具有5个元素的指针数组,每个元素是一个int型指针。
17、设置虚基类的目的是()。
A简化程序B消除二义性C提高运行效率D减少目标代码
18、带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚函数的子对象初始化()。
A与虚基类下的派生类个数有关B多次C二次D一次
19、下列函数中,()不能重载。
A成员函数B非成员函数C析构函数D构造函数
20、关于动态联编的描述中,()是错误的。
A动态联编是以虚函数为基础的
B动态联编是在运行时,确定所调用的函数代码的。
C动态联编调用函数操作是指向对象的指针或对象引用。
D动态联编是在编译时确定操作函数的。
21、关于虚函数的描述中,()是正确的。
A虚函数是一个非satatic类的成员函数。
B虚函数是一个非成员函数。
C基类中说明了虚函数后,派生类中与其对应的函数可以不必说明为虚函数。
D派生类的虚函数与基类的虚函数具有不同的参数个数和类型。
22、关于纯虚函数和抽象类的描述中,()是错误的。
A纯虚函数是一种特殊的虚函数,它没有具体的实现。
B抽象类是指含有纯虚函数的类。
C一个基类中说明了纯虚函数,则其派生类不再是抽象类。
D抽象类一般只能作为基类来使用。
23、下列关于抽象类的使用中,()是错误的。
A可以定义抽象类的对象B可以定义抽象类的指针
C可以定义抽象类的引用D可以定义抽象类的派生类
24、派生类的构造函数的成员初始化列表中,不能包含()。
A基类的构造函数
B派生类中子对象的初始化
C基类的子对象的初始化
D派生类中一般数据成员的初始化
25、关于new运算符的下列描述中,()是错的。
A它可以用来动态创建对象和对象数组;
B使用它创建的对象或对象数组可以使用delete运算符删除;
C使用它创建对象时要调用构造函数;
D使用它创建对象数组时,必须指定初始值。
二、填空题
将正确的答案填入答题纸相应的题号后。
(本题共3小题,5个空,每空2分,共10分)
1.面向对象的程序设计有三大特征,它们是封装、
(1)、
(2)。
2、类是用户定义的类型,具有类类型的变量称作(3)。
3、在面向对象的程序设计中,通过(4)实现数据隐藏;通过(5)实现代码的复用。
三、分析程序的执行结果题
分析程序的执行结果,将结果按程序运行时输出形式填在答题纸对应的题号后(本题共5小题,每题4分,共20分)。
1、#include
classM{public:
M(){x=y=0;}
M(inti,intj)
{x=i;y=j;}
voidcopy(M*m);
voidsetxy(inti,intj)
{x=i;y=j;}
voidprint(){cout< private: intx,y;}; voidM: : copy(M*m) {x=m->x;y=m->y;} voidfun(Mm1,M*m2) {m1.setxy(12,15); m2->setxy(22,25); } voidmain() {Mp(5,7),q; q.copy(&p); fun(p,&q); p.print(); q.print(); } 2、#include classM {public: M(){a=b=0;} M(inti,intj){a=i;b=j;} voidprint(){cout< private: inta,b; }; voidmain() {Mm[2][4];intx=10,y=10; for(inti=0;i<2;i++) {for(intj=0;j<4;j++) {m[i][j]=M(x+=2,y+=10);} } M(*pm)[4](m); for(i=0;i<2;i++) {cout< for(intj=0;j<4;j++) (*(*(pm+i)+j)).print();//用指针的方式存取数组的第ij个元素 }cout< } 3、#include #include classB {public: B(char*s,doublen) {strcpy(name,s); b=n; cout<<"Constructor.\n"; } B(){cout<<"Default\n";} ~B(){cout<<"Destructor"< voidgetb(char*s,double&n) {strcpy(s,name);n=b;} private: charname[80]; doubleb; }; voidmain() {B*p; doublen; chars[80]; p=newB[3]; p[0]=B("Ma",4.8); p[1]=B("Wang",3.6); p[2]=B("Li",3.1); for(inti=0;i<3;i++) {p[i].getb(s,n); cout< } delete[]p; } 4、#include classA { public: A(inti,intj){a=i;b=j;} voidMove(intx,inty){a+=x;b+=y;} voidShow(){cout<<"("< private: inta,b; }; classB: publicA { public: B(inti,intj,intk,intl): A(i,j),x(k),y(l) {}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 C+ 期末考试 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)