面向对象程序设计期末复习指导.docx
- 文档编号:24678792
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:34
- 大小:28.65KB
面向对象程序设计期末复习指导.docx
《面向对象程序设计期末复习指导.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末复习指导.docx(34页珍藏版)》请在冰豆网上搜索。
面向对象程序设计期末复习指导
面向对象程序设计期末复习指导
面向对象程序设计课程系中央电大开放教育本科计算机科学与技术专业统设必修课程,本课程的期末复习以中央电大下发的资料和网上复习指导为准。
为了加强期末复习,下面市电大给出一套综合练习题,仅作参考。
综合练习题
一、单选题
1、C++源程序文件的默认扩展名为()。
A:
cppB:
exeC:
objD:
lik
2、用new运算符创建一个含10个元素的一维整型数组的正确语句是()。
A:
int*p=newa[10];
B:
int*p=newfloat[10];
C:
int*p=newint[10];
D:
int*p=newint[10]={1,2,3,4,5}
3、假定有“structBOOK{chartitle[40];floatprice;};BOOK*book=newBOOK;”,则正确的语句为()。
A:
strcpy((*book)->title,”WangTao”);
B:
strcpy(*book.title,”WangTao”);
C:
strcpy(book->title,”WangTao”);
D:
strcpy(book.title,”WangTao”);
4、假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句()。
A:
deletep;
B:
delete*p;
C:
delete&p;
D:
delete[]p;
5、关于消息,下列说法中不正确的是()。
A:
发送消息的对象请求服务,接受消息的对象提供服务
B:
消息的发送者必须了解消息的接收者如何相应消息
C:
在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D:
每个对象只能接收某些特定格式的消息
6、对于任一个类,用户所能定义的析构函数的个数至多为()。
A:
0B:
1C:
2D:
任意个
7、do语句能够改写为()语句。
A:
复合B:
ifC:
switchD:
while
8、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A:
x(a)B:
x[a]C:
x->aD:
x.a
9、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A:
x.aB:
x.a()C:
x->GetValue()D:
x.GetValue()
10、假定AB为一个类,则()为该类的拷贝构造函数的原型说明。
A:
AB(ABx);B:
AB(AB&x);C:
voidAB(AB&x);D:
AB(intx);
11、关于运算符重载,下列说法正确的是()。
A:
重载时,运算符的优先级可以改变。
B:
重载时,运算符的结合性可以改变。
C:
重载时,运算符的功能可以改变。
D:
重载时,运算符的操作数个数可以改变。
12、下列对派生类的描述中错误的说法是:
()。
A:
派生类至少有一个基类
B:
派生类可作为另一个派生类的基类
C:
派生类除了包含它直接定义的成员外,还包含其基类的成员
D:
派生类所继承的基类成员的访问权限保持不变
13、C++程序的基本模块为()。
A:
语句B:
函数C:
表达式D:
标识符
14、以下叙述中不正确的是()。
A:
在一个函数中,可以有多条return语句
B:
函数的定义不能嵌套,但函数的调用可以嵌套
C:
函数必须有返回值
D:
不同的函数中可以使用相同名字的变量
15、文件包含命令中被包含的文件的扩展名()。
A:
必须是.hB:
不能是.hC:
可以是.h或.cppD:
必须是.cpp
16、软件产品可被全部或部分地再用于新的应用的能力叫做软件的()。
A:
可维护性B:
可复用性C:
兼容性D:
正确性
17、假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为()。
A:
4和5B:
5和4C:
4和20D:
20和5
18、派生类的对象对其基类中()可直接访问。
A:
公有继承的公有成员
B:
公有继承的私有成员
C:
公有继承的保护成员
D:
私有继承的公有成员
19、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A:
空格或逗号B:
逗号或回车
C:
逗号或分号D:
空格或回车
20、假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。
A:
pb=b[5];B:
*pb=newint;
C:
pb=&b[0];D:
pb=b;
21、假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给a中的下标为5的元素,不正确的语句是()。
A:
pa[5]=12.35;B:
a[5]=12.35;
C:
*(pa+5)=12.35;D:
*(a[0]+5)=12.35;
22、关于面向对象系统分析,下列说法中不正确的是()。
A:
术语“面向对象分析”可以用缩写OOA表示
B:
面向对象分析阶段对问题域的描述比实现阶段更详细
C:
面向对象分析包括问题域分析和应用分析两个步骤
D:
面向对象分析需要识别对象的内部和外部特征
23、在C++程序中使用的cin标识符是系统类库中定义的()类中的一个对象。
A:
istreamB:
ostream
C:
iostreamD:
fstream
24、假定AB为一个类,则执行“AB*px=newAB[n];”语句时将()。
A:
动态分配一个数组
B:
动态分配一个对象
C:
静态分配一个数组
D:
静态分配一个对象
25、在下面循环语句中循环体执行的次数为()。
inti=0,s=0;while(s<20){i++;s+=i;}
A:
4B:
5C:
6D:
7
26、以下叙述不正确的是()。
A:
宏替换不占用运行时间
B:
宏名无类型
C:
宏替换只是字符替换
D:
宏名必须用大写字母表示
27、假定一条定义语句为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
A:
x=a[3];B:
x=*(a+3);C:
x=pa[3];D:
x=*pa+3;
28、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A:
a.operator++
(1)
B:
operator++(a)
C:
operator++(a,1)
D:
a.operator++()
29、设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。
A:
144B:
156C:
288D:
12
30、在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给()。
A:
elemHead
B:
elemTail
C:
elemHead和elemTail
D:
elemHead或elemTail
31、类的析构函数可以带有()个参数。
A:
0B:
1C:
2D:
任意
32、下面是重载双目运算符-的成员函数原形,其中最符合-原来含义的是()。
A:
ValueValue:
:
operator-(Value);
B:
ValueValue:
:
operator-(int);
C:
Value&Value:
:
operator-(Value);
D:
Value&Value:
:
operator-(Value&);
33、在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是()。
A:
该运算符是一个单目运算符。
B:
该运算符函数有一个隐含的参数this。
C:
该运算符函数是类的成员函数。
D:
该运算符函数是类的友元函数。
二、编程综合题
1.
#include
voidf4(inta[],intn,int&s)
{
s=0;
for(inti=0;i } voidmain() { intb[8]={4,8,6,9,2,10,7,12}; intx;f4(b,5,x); cout< inty;f4(b+3,4,y); cout< cout< } 2. #include voidmain(){ inta[10]={76,83,54,62,40,75,90,92,77,84}; intb[4]={60,70,90,101}; intc[4]={0}; for(inti=0;i<10;i++){ intj=0; while(a[i]>=b[j])j++; c[j]++; } for(i=0;i<4;i++)cout< cout< } 3. #include classA{ int*a; public: A(intx=0): a(newint(x)){} ~A(){deletea;} intgetA(){return*a;} voidsetA(intx){*a=x;} }; voidmain(){ Ax1,x2(3); A*p=&x2; p->setA(x2.getA()+5); x1.setA(15+x1.getA()); cout< } 4. #include #include classPoint{ intx,y; public: Point(intx1=0,inty1=0): x(x1),y(y1){ cout<<"Point: "< } ~Point(){ cout<<"Pointdes! "; } }; classText{ chartext[100];//文字内容 public: Text(char*str){ strcpy(text,str); cout<<"Textcon! "; } ~Text(){cout<<"Textdes! ";} }; classCircleWithText: publicPoint,publicText{ public: CircleWithText(intcx,intcy,char*msg): Point(cx,cy),Text(msg){ cout<<"PointwithTextcon! "; } ~CircleWithText(){cout<<"PointwithTextdes";} }; voidmain() { CircleWithTextcm(3,4,"hello"); } 5、#include inta=5; voidmain(){ intb=a+20; inta=10; cout< { inta=0,b=0; for(inti=1;i<6;i++){ a+=i;b+=a; } cout< }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 期末 复习 指导