下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计期末复习题一、单项选题1.设x和y均为bool量,则x&&y为真的条件是()。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假2.在下面循环语句中循环体执行的次数为()。inti=0,s=0;while(s<20){i++;s+=i;}A.4B.5C.6D.73.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。A.p=newint;B.p=newint*;C.p=newint**;D.p=newint[10];4.以下关于函数模板叙述正确的是()。A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数D.用函数模板定义的函数没有类型5.在多文件结构的程序中,通常把类的声明单独存放于()中。A.主文件B.实现文件C.库文件D.头文件6.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A.pb=b;B.pb=&b[0];C.pb=newint;D.pb=b[5];7.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(0);”语句后,x.a和x.b的值分别为()。A.0和0B.0和1C.1和0D.1和18.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。A.x.aB.x.a()C.x->GetValue()D.x.GetValue()9.C++的继承性允许派生类继承基类的()。A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性10.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的()。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数11.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。A.int*p=newint[30];B.int*p=newint(30);C.int*p=new[30];D.*p=newint[30];12.假定有“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”);13.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A.pb=b;B.pb=&b[0];C.pb=newint;D.pb=b[5];14.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句()。A.deletep;B.delete*p;C.delete&p;D.delete[]p;15.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的()。A.可维护性B.可复用性C.兼容性D.正确性16.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。A.inB.inlineC.inLineD.InLiner17.在关键字public后面定义的成员为类的()成员。A.私有B.公用C.保护D.任何18.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。A.x.aB.x.a()C.x->aD.x->a()19.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()20.在多文件结构的程序中,通常把类的定义单独存放于()中。A.主文件B.实现文件C.库文件D.头文件二、填空题1.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。2.执行char*p=newchar(’a’)操作后,p所指向的数据对象的值为________。3.变量v定义为“doublev=23.4;”,要使指针pv指向v,则定义pv的语句为______________。4.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上________和两个冒号分隔符。5.假定用户只为类AB定义了一个构造函数"AB(intaa,intbb=0){a=aa;b=bb;}",则定义该类的对象时,其实参表中至少带有_________个实参。6.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为__________。7.一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。8.重载一个函数的条件是:该函数必须在参数的个数或参数对应的__________上与其它同名函数不相同。9.一个指针类型的对象占用内存的________个字节的存储空间。10.假定一个数据对象为int*类型,则指向该对象的指针类型为_______。11.假定p所指对象的值为25,p+1所指对象的值为42,则*++p的值为________。12.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为________。13.一个数组的数组名实际上是指向该数组________元素的指针,并且在任何时候都不允许________它。14.重载一个函数的条件是:该函数必须在参数的________或参数对应的__________上与其它同名函数不相同。15.指针变量pv和pc定义为“void*pv=”Hello,word!”;char*pc;”,要将pv值赋给pc,则正确的赋值语句是pc=___________pv。16.若p指向x,则________与x的表示是等价的。17.假定p为指向二维数组intd[4][6]的指针,则p的类型为________。18.若y是x的引用,则对y的操作就是对_______的操作。19.执行char*p=newchar(’a’)操作后,p所指向的数据对象的值为________。20.执行________操作将释放由p所指向的动态分配的数据空间。三、程序填充题,根据题意在横线上填写合适的内容。2、已知一维数组类ARRAY的定义如下,ARRAY与普通一维数组区别是:其重载的运算符[]要对下标是否越界进行检查。classARRAY{ int*v;//指向存放数组数据的空间 ints;//数组大小public: ARRAY(inta[],intn);~ARRAY(){delete[]v;}intsize(){returns;} int&operator[](intn);};___(1)___operator[](intn)//[]的运算符成员函数定义{ if(n<0||___(2)___){cerr<<"下标越界!";exit(1);}return___(3)___;}(1)(2)(3)3.类A的定义classA{char*a;public:A(){a=NULL;}A(char*aa){a=___(1)____char[strlen(aa)+1];strcpy(a,aa);}___(2)______//定义析构函数,删除a所指向的动态存储空间};(1)(2)4.已知一个类的定义如下:#include<iostream.h>classAA{ inta[10]; intn;public: voidSetA(intaa[],intnn);//用数组aa初始化数据成员a, //用nn初始化数据成员n intMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序 voidPrintA();//依次输出数组a中的前n个元素};该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int____(1)_____{ intx=a[0]; for(inti=1;i<n;i++) if(a[i]>x)___(2)___; ___(3)___;}(1)(2)(3)四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。1.#include<iostream.h>voidmain(){ inti,s=0; for(i=2;i<=30;i+=2)s+=i*i; cout<<"s="<<s<<endl;}函数功能:2.#include<iostream.h>doublef1(intn){ doublesign=1,s=1; for(inti=2;i<=n;i++){ s+=sign/(i*i); sign*=-1; } returns;}voidmain(){inta; cin>>a; cout<<f1(a)<<endl;}函数功能:3.#include<iostream.h>classA{inta,b;public:A(){a=b=0;}A(intaa,intbb){a=aa;b=bb;}intSum(){returna+b;}int*Mult(){int*p=newint(a*b);returnp;}};voidmain(){Ax(4,5),*p;p=newA(2,3);cout<<x.Sum()<<’’<<*(x.Mult())<<endl;cout<<p->Sum()<<’’<<*(p->Mult())<<endl;}运行结果:4.#include<iostream.h>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<<c[i]<<’’; cout<<endl;}运行结果:五、编程题根据下面类中拷贝构造函数的原型写出它的类外定义。classArray{int*a;//指向动态分配的整型数组空间intn;//记录数组长度public:Array(intaa[],intnn);//构造函数,利用aa数组长度nn初始化n,//利用aa数组初始化a所指向的数组空间Array(Array&aa);//拷贝构造函数};参考答案一、单选题1.A2.C3.B4.C5.D6.D7.A8.D9.C10.B11.A12.A13.D14.A15.B16.B17.B18.B19.A20.D二、填空题1.4112.‘a’3.double*pv=&v;4.类名5.16.~AB(){}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度公寓装修与智能家居集成合同2篇
- 大学生职业生涯规划大赛
- 全国山西经济版小学信息技术第二册第一单元活动10《图文并茂练排版》说课稿
- 山东省泰安市新泰市2024-2025学年四年级上学期期末质量检测数学试题参考答案
- 8000吨二甲基二硫醚生产项目可行性研究报告模板-立项备案
- 湖北省十堰市城区2024-2025学年四年级上学期期末数学试题参考答案
- 浙江省杭州市(2024年-2025年小学六年级语文)部编版能力评测(下学期)试卷及答案
- 2024年事业单位教师招聘言语理解与表达题库附答案
- Unit2 Special Days Lesson 3(说课稿)-2023-2024学年人教新起点版英语五年级下册
- 贵州盛华职业学院《近代建筑引论》2023-2024学年第一学期期末试卷
- GB/T 19326-2022锻制支管座
- GB/T 9740-2008化学试剂蒸发残渣测定通用方法
- GB/T 7424.1-1998光缆第1部分:总规范
- 拘留所教育课件02
- 护士事业单位工作人员年度考核登记表
- 儿童营养性疾病管理登记表格模板及专案表格模板
- 天津市新版就业、劳动合同登记名册
- 数学分析知识点的总结
- 2023年重症医学科护理工作计划
- 年会抽奖券可编辑模板
- 感染性疾病标志物及快速诊断课件(PPT 134页)
评论
0/150
提交评论