您好,欢迎访问三七文档
第1页福建工程学院2009--2010学年第二学期期末考试(A卷)共9页课程名称:面向对象程序设计考试方式:开卷()闭卷(√)题号一二三四五六七八九十总分统分人签名得分考生注意事项:1、本试卷共9页,请查看试卷中是否有缺页。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。教师注意事项:如果整门课程由一个教师评卷的,只需在累分人栏目签名,题首的评卷人栏目可不签名。一、单项选择题(每小题2分,共30分)1.下列各项描述中()是错误的。A.同一个类的两个对象占用相同的内存空间。B.在类外部直接使用类中的私有成员是错误的。C.一个对象数组中的所有数组元素属于同一个类。D.在类外部定义成员函数是,必须使用作用域运算符::。2.编写C++程序一般需经过的几个步骤,()描述次序是正确的。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编译、连接3.下列描述类的成员函数的选项中,()是错误的。A.构造函数B.析构函数C.友元函数D.拷贝构造函数4.继承机制的作用是()A.信息隐藏B.数据封装C.定义新类D.数据抽象第2页5.假定A为一个类,则执行“Aa(2),b[3],*p[4];”语句时共调用该类构造函数的次数为()。A.3B.4C.5D.96.以下关于基类中的成员函数的描述中,()是表示纯虚函数的。A.virtualvoidvf(int)B.voidvf(int)=0C.virtualvoidvf()=0D.virtualvoidyf(int){}7.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()A.a.operator++(1)B.operator++(a)C.operator++(a,1)D.a.operator++()8.以下叙述中()是正确的。A.构造函数调用虚函数采用动态联编B.构造函数可以说明为虚函数C.当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数D.析构函数调用虚函数采用动态联编9.c++程序中,()可以解决二义性问题。A.只有使用作用域分辨操作符B.使用作用域分辨操作符或赋值兼容规则C.使用作用域分辨操作符或虚基类D.使用虚基类或赋值兼容规则得分评卷人密封线班级:______姓名:______学号:______第3页10.下面运算符中,()不能被重载。A.=B.-C.?:D.[]11.下列有关模板和继承的叙述中()是正确的。A.模板和继承都可以派生出一个类系B.从类系的成员看,模板类系的成员比继承类系的成员较为稳定C.从动态性能看,继承类系比模板类系具有更多的动态特性D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系12.C++的继承性允许派生类继承基类的()。A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性13.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()。A.内联函数B.重载函数C.递归函数D.嵌套函数14.假定A为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时共调用该类析构函数的次数为()A.0B.1C.nD.n+115.C++中,真正能实现运行时多态的函数是()。A.内联函数B.重载函数C.纯虚函数D.虚函数二、填空题(每空1分,共20分)第4页1.在类中,将关键字__________写在函数体之前函数头之后,说明该函数是一个__________,可以防止函数改变数据成员的值。。2.类中可以有许多相同名称,但参数类型或个数不同的成员函数,称为。3.对于双目运算符,若重载为类的成员函数,有个参数;若重载为友元函数,则有个参数。4.在C++中,声明布尔类型变量所用的关键字是________。5.所有模版都是以______关键字和一个形参表开头的。6.如果一个类中有一个或多个纯虚函数,则这个类称为。7.设要把一个文件输出流对象myFile与文件“f:\myText.txt相关联,所用的C++语句是:__________。8.假设类X的对象x是类Y的成员对象,则“YObj”语句执行时,先调用类__________的构造函数,再调用类__________的构造函数。9.基类的公有成员在私有派生类中是__________成员,基类的保护成员在公有派生类中是__________成员。10.对虚函数使用对象指针或引用,系统使用__________联编,对虚函数使用对象调用时,系统使用__________联编。11.执行______操作将释放由p所指向的动态分配的数据空间。12.静态成员定义的关键字为_________,一般通过________来访问静态成员。13.重载“”操作符时,应声明为____________函数。14.假定用户为类A定义了一个构造函数“A(intaa=0):a(aa){}”,则创建该类的对象时,构造函数可以有____________种不同的调用格式。得分评卷人班级:______姓名:______学号:______密封线三、程序分析(每小题4分,共20分)第5页1.阅读程序,写出运行结果:#includeiostream.hclassSample{private:intx;public:Sample(){}Sample(inta){x=a;}voiddisp(){coutx=xendl;}Sampleoperator+(Sample&);friendSampleoperator-(Sample&,Sample&);};SampleSample::operator+(Sample&s){returnSample(x+s.x);}Sampleoperator-(Sample&s1,Sample&s2){returnSample(s1.x-s2.x);}voidmain(){Sampleobj1(5),obj2(10),obj3;obj3=obj1+obj2;obj3.disp();(obj1-obj2).disp();}2.阅读程序,写出运行结果:#includeiostream.hclassa{public:virtualvoidfunc(){coutfuncinclassaendl;}};classb{public:virtualvoidfunc(){coutfuncinclassbendl;}};classc:publica,publicb第6页{public:voidfunc(){coutfuncinclasscendl;}};voidmain(){cc;a&pa=c;pa.func();b&pb=c;pb.func();}3.阅读程序,写出运行结果#includeiostream.hclassA{public:A(char*s){coutsendl;}};classB:virtualpublicA{public:B(char*s1,char*s2):A(s1){couts2endl;}};classC:virtualpublicA{public:C(char*s1,char*s2):A(s1){couts2endl;}};classD:publicB,C{public:D(char*s1,char*s2,char*s3,char*s4):B(s1,s2),C(s3,s4),A(s1){couts4endl;}};voidmain(){Dd(classA,classB,classc,classD);}得分评卷人班级:______姓名:______学号:______密封线运行结果:运行结果:运行结果:第7页4.阅读程序,写出运行结果。#includeiostream.hclassA{protected:intx;public:A(intx){A::x=x;coutclassAendl;}};classB{private:Aa1;public:B(intx):a1(x){coutclassBendl;}};classC:publicB{private:Aa2;public:C(intx):B(x),a2(x){coutclassCendl;}};classD:publicC{public:D(intx):C(x){coutclassDendl;}};voidmain(){Ddoobj(10);}5.阅读程序,写出运行结果。#includestring.hclassSample{private:char*str;public:Sample(char*s){str=newchar[strlen(s)+1];strcpy(str,s);第8页}voiddisp(){coutstr=strendl;}char&operator[](int);};char&Sample::operator[](inti){return*(str+i);}voidmain(){char*s=olympics;Sampleobj(s);obj.disp();intn=strlen(s);while(n=0){obj[n-1]=obj[n-1]-32;n--;}obj.disp();}四、编程题(每题10分,共30分)1.编写复数类Complexnumber,其属性为:real(实部),img(虚部)。完成复数的加法运算Add()和减法运算Sub()及对应的+运算符和-运算符重载。2.设计一个圆类circle和一个桌子类table,另外设计一个圆桌类roundtable,从前2个类派生的,要求输出一个圆桌的高度,面积和颜色等数据。3.编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。得分评卷人班级:______姓名:______学号:______密封线班级:______姓名:______学号:______运行结果:运行结果:
本文标题:C++试卷A
链接地址:https://www.777doc.com/doc-2904365 .html