《面向对象程序设计》期末复习题及答案4_第1页
《面向对象程序设计》期末复习题及答案4_第2页
《面向对象程序设计》期末复习题及答案4_第3页
《面向对象程序设计》期末复习题及答案4_第4页
《面向对象程序设计》期末复习题及答案4_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计期末复习指导一、单项选题1.字符串”a+b=12\n”的长度为()。A.6B.7C2.x>0||y==5的相反表达式为()。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==53.循环体有可能一次都不执行的语句为()。A.for循环B.switch循环C.do循环D.任一种循环4.函数调用func((exp1,exp2,exp3),exp4,exp5))中所含实参的个数为()个。A.1B.2C.3D.55.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。A.p=newint;B.p=newint[10];C.p=newint**;D.p=newint*;6.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。A.2B.4C.67.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(0);”语句后,x.a和x.b的值分别为()。A.0和0B.0和1C.1和0D.8.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()9.关于插入运算符<<的重载,下列说法不正确的是()。A.运算符函数的返回值类型是ostream&。B.重载的运算符必须定义为类的成员函数。C.运算符函数的第一个参数的类型是ostream&。D.运算符函数有两个参数。10.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时共调用该类析构函数的次数为()。A.0B.1C.nD.n+1二、填空题1.当使用_______保留字作为函数类型时,该函数不返回任何值。2.执行char*p=newchar(’x’)操作后,p所指向的数据对象的值为________。3.当在程序中执行到________语句时,将结束本次循环,执行下一次循环语句。4.一个指针类型的对象占用内存的________个字节的存储空间。5.假定用户为类AB定义了一个构造函数“AB(intaa){a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB(){}"。6.已知语句“cout<<s;”的输出是“hello,world”,则执行语句“cout<<s+%;”的输出结果为__________。7.如果一个派生类的基类不止一个,则这种继承称为____________。8.重载一个函数的条件是:该函数必须在参数的个数或参数对应的__________上与其它同名函数不相同。9.假定用户为类AB定义了一个构造函数“AB(intaa){a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB(){}"。10.假定用户为类AB定义了一个构造函数“AB(intaa=0):a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。三、程序填充题,根据题意在横线上填写合适的内容。1.已知一个类的定义如下:#include<iostream.h>classAA{ inta[10]; intn;public: voidSetA(intaa[],intnn);//初始化函数 intMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素进行从小到大排序 };该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int____(1)_____{ intx=a[0]; for(inti=1;i<n;i++) if(a[i]>x)___(2)___; ___(3)___;}(1)(2)(3)2.类A的定义classA{int*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0){}//无参构造函数A(int*aa,intnn,intMM){//带参构造函数n=nn;MaxLen=MM;if(n>MaxLen)exit(1);a=newint[MaxLen];for(inti=0;i<n;i++)_____(1)_______;}~A(){_____(2)_________;}};(1)(2)3.在下面一段类定义中,Derived类公有继承了基类Base。需要填充的函数由注释内容给出了功能。classBase{private:intmem1,mem2;//基类的数据成员public: Base(intm1,intm2){ mem1=m1;mem2=m2; } voidoutput(){cout<<mem1<<''<<mem2<<'';}};classDerived:publicBase{private:intmem3;//派生类本身的数据成员public://构造函数,由m1和m2分别初始化mem1和mem2,由m3初始化mem3Derived(intm1,intm2,intm3);//输出mem1,mem2和mem3数据成员的值voidoutput(){ ___(1)___;cout<<mem3<<endl; }};Derived::Derived(intm1,intm2,intm3):___(2)___{___(3)___;}(1)(2)(3)四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。1.#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;}函数功能:2.char*f8(char*str1,constchar*str2){inti=0,j=0;while(str1[i])i++;while(str2[j])str1[i++]=str2[j++];str1[i]='\0';returnstr1;}函数功能:3.#include<iostream.h>voidf2(int&x,int&y){ intz=x;x=y;y=z;}voidf3(int*x,int*y){ intz=*x;*x=*y;*y=z;}voidmain(){ intx=10,y=26;cout<<"x,y="<<x<<","<<y<<endl; f2(x,y);cout<<"x,y="<<x<<","<<y<<endl;f3(&x,&y);cout<<"x,y="<<x<<","<<y<<endl;x++;y--; f2(y,x);cout<<"x,y="<<x<<","<<y<<endl;}运行结果:五、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。下面是分数类fract的定义及测试主程序,在类定义及其友元函数定义中有两处错误,更正错误后程序应显示41/28,请指出错误所在行的行号并给出改正意见。classfract{intden;//分子intnum;//分母public:fract(intd=0,intn=1):den(d),num(n){}//1行friendfract&operator+=(fract,fract&);//2行voidshow(){cout<<den<<'/'<<num;}//3行};//4行friendfract&operator+=(fractf1,fractf2)//5行{//7行f1.den=f1.den*f2.num+f1.num*f2.den;//8行f1.num*=f2.num;//9行returnf1;//10行}voidmain(){fractfr(3,4);fr+=fract(5,7);fr.show();}错误行的行号为______和________。(2分)分别改正为_____________________________________(4分)和_____________________________________(4分)参考答案:一、单选题1.B2.B3.A4.C5.D6.D7.A8.A9.B10.C二、填空题1.void2.‘x’3.contiune4.45.不会6.ple7.多继承(或多重继承)8.类型9.不会10.2三、程序填充题,根据题意在横线上填写合适的内容。评分标准:每空4分1.(1)AA::MaxA()(2)x=a[i](3)returnx2.(1)a[i]=aa[i](2)delete[]a3.(1)Base::output()(2)Base(m1,m2)(3)mem3=m3四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。1.计算并输出1+的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论