2003年10月02328面向对象程序设计自考试卷_第1页
2003年10月02328面向对象程序设计自考试卷_第2页
2003年10月02328面向对象程序设计自考试卷_第3页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

自考软件工程:2003年10月02328面向对象程序设计历年真题及答案以下自考本科软件工程专业:2003年10月02328面向对象程序设计历年真题试卷及答案。更多真题及答案,可在我办网站“历年真题”栏目中查看。建议同学们在自学完软件工程教材后,做几套历年真题,熟悉题型,提高学习能力。全国2003年10月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下列特性中,C与C++共有的是()A.继承B.封装C.多态性D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能是()A.0B.2C.4D.33.在下列成对的表达式中,运算符“+”的意义不相同的一对是()A.5.0+2.0和5.0+2B.5.0+2.0和5+2.0C.5.0+2.0和5+2D.5+2.0和5.0+24.类的指针成员的初始化是通过函数完成的,这个函数通常是()A.析构函数B.构造函数C.其它成员函数D.友元函数5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A.constchar*p=“ABCD”;B.charconst*p=“ABCD”;C.char*constp=“ABCD”;D.constchar*constp=“ABCD”;6.静态成员函数没有()A.返回值B.this指针C.指针参数D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数8.下面叙述不正确的是()A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的9.在C++中实现封装是借助于()A.枚举B.类C.数组D.函数10.所有在函数中定义的变量,都是()A.全局变量B.局部变量C.静态变量D.寄存器变量二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。11.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有______个类型参数。12.在单继承和多继承方式中,面向对象的程序设计应尽量使用______继承。13.语句序列ifstreamdatafile;datafile.open(“data.dat”);的功能可用一个语句实现,这个语句是______。14.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。15.一个抽象类的派生类可以实例化的必要条件是实现了所有的______。16.在C++中,虚函数帮助实现了类的______性。17.通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。18.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义______。19.在联合中,所有数据成员具有______的地址,任一时刻只有______个数据成员有效。20.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句______。三、改错题(本大题共5小题,每小题2分,共10分)21.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。classA{inta;public;A(intaa):a=aa{}};22.下面的程序先把字符串“Lookout!”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Lookout!。程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。#include<fstream.h>voidmain(){ofstreamoutf(“D:\\tem.dat”,ios::trunc);outf<<“Lookout!”;outf.close();ifsteaminf(“D:\\tem.dat”);chark[20];inf>>k;count<<k;inf.close();}23.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。#include<iostream.h>classTest{public;staticintx;};intx=20;//对类成员初始化voidmain(){cout<<Test::x;}24.下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。#include<iostream.h>#include<string.h>classA{public:A(constchar*nm){strcpy(name,nm);}private:charname[80];};classB:publicA{public:B(constchar*nm):A(nm){}voidPrintName()const;};voidB::PrintName()const{cout<<“name:”<<name<<endl;}voidmain(){Bb1(“wangli”);b1.PrintName();}25.用下横线标出下面程序main函数中的错误所在行,并说明错误原因。#include<iostream.h>classLocation{private:intX,Y;public;voidinit(intinitX,intinitY);intsumXY();};voidLocation::init(intinitX,intinitY){X=initX;Y=initY;}intLocation::sumXY(){returnX+Y;}voidmain(){LocationA1;intx,y;A1.init(5,3);x=A1.X;y=A1.Y;cout<<x+y<<””<<A1.sumXY()<<endl;}四、完成程序题(本大题共5小题,每小题4分,共20分)。根据题目要求,完成程序填空。26.在下面程序横线处填上适当内容,以使该程序执行结果为:1288#include<iostream.h>template<classT>classTany{public:①;voidpr(){if(sizeof(int)==②)count<<(x>y?x:y)<<endl;elsecout<<(x>y?y:x)<<endl;}};voidmain(){Tany<double>dobj={12.0,88.0};dobj.pr();Tany<int>iobj={12,88};iobj.pr();}27.在下面的横线处填上适当内容,使程序完整。#include<iostream.h>#include<math.h>classloc{private:floatx,y;public;loc(①){x=x1;y=y1;}floatgetx(){returnx;}floatgety(){returny;}②floatdis(loc&,loc&);};floatloc::dis(loc&a,loc&b){flostdx=a.x-b.x;flostdy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}voidmain(){locpl(3.5,4.5),p2(5.5,6.5);floatd=loc::dis(p1,p2);cout<<“Thedistanceis”<<d;}28.在下面程序中的横线处填上适当内容,使程序完整。#include<iostream.h>classvehicle{protected:intsize;intspeed;public;voidsetSpeed(ints){speed=s;}①getSpeedLevel(){returnspeed/10;}};classcar:publicvehicle{public:intgetSpeedLeve(){returnspeed/5;}};classtruck:publicvehicle{public:intgetspeedLevel(){returnspeed/15;}};intmaxSpeedLevel(vehicle②,vehicle③){if(v1.getSpeedLevel()>v2.getSpeedLevel())return1;elsereutrn2;}voidmain(){turckt;carc;t.setSpeed(130);c.setSpeed(60);cout<<maxSpeedLevel(t,c)<<endl;//此结果输出为2}29.在下面横线处填上合适内容,完成类B的定义。#include<iostream.h>classA{public:A(){a=0;}A(inti){a=i;}voidprint(){cout<<a<<”,”;}private:inta;};classB:publicA{public:B(){b1=b2=0}B(①){b1=i;b2=0;}B(inti,intj,intk):②{b1=j;b2=k;}//使a的值为ivoidprint(){A::print();cout<<b1<<”,”<<b2<<endl;}private:intb1,b2;}30.根据注释在空白处填写适当内容。classLocation{private:intX,Y;public:voidinit(intinitX,intinitY);intGetX();intGetY();};voidLocation::init(intinitX,intinitY){X=initX;Y=initY;}intLocation::GetX(){reutrnX;}intLocation::GetY(){reutrnY;}#include<iostream.h>voidmain(){LocationA1;A1.init(20,90);①//定义一个指向A1的引用rA1

②//用rA1在屏幕上输出对象A1的数据成员X和Y的值}五、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。31.写出下面程序的输出结果:#include<iostream.h>classFunArray{int*pa;//指向一个数组空间intsize;//数组元素个数public:FunArray(inta[],intthesize):pa(a),size(thesize){}intSize(){returnsize;}int&operator[](intindex){returnpa[index-1];}};voidmain(){ints[]={3,7,2,1,5,4};FunArrayma(s,sizeof(s)/sizeof(int));ma[3]=9;for(inti=1;i<=ma.Size();i++)cout<<ma[i]<<‘,’;}32.写出下面程序的输出结果:#include<iostream.h>template<classT>classTclass{Tx,y;public:Tclass(Ta,Tb):x(a){y=b;}Tclass(Ta){y=(T)0,x=a;}voidpr(){charc;c=(y>=(T)0?′+′:′-′);cout<<x<<c<<(y>(T)0?y:-y)<<″i″<<endl;}};voidmain(){Tclass<double>a(10.5,-5.8);a.pr();Tclass<int>b(10);b.pr();}33.写出下面程序的输出结果:#include<iostream.h>classTest{private:staticintval;inta;public;staticintfunc();voidsfunc(Test&r);};intTest::val=200;intTest::func(){returnval++;}voidTest::sfunc(Test&r){r.a=125;cout<<″Result3=″<<r.a;}voidmain(){cout<<”Result1=”<<Test::func()<<endl;Testa;cout<<”Result2=”<<a.func();a.sfunc(a);}34.写出下面程序的输出结果:#include<iostream.h>classA{public;virtualvoidprint(){cout<<”ThisisclassAprinting.”<<endl;}};classB:publicA{public:voidprint(){}};classC:publicB{public:voidprint(){cout<<“ThisisclassCprinting.”<<endl;}};voidshow(A&a){a.print();}voidmain(){Aa;Bb;Cc;show(a);show(b);show(c);}35.写出下面程序的输出结果:#include<iostream.h>classA{public:A(){a=0;}A(inti){a=i;}voidPrint(){cout<<a<<”,”;}intGeta(){returna;}private:inta;};classB:publicA{public:B(){b=0;}B(inti,intj,intk);voidPrint();private:in

温馨提示

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

评论

0/150

提交评论