闽江学院面向对象程序设计A卷(07电信本).doc_第1页
闽江学院面向对象程序设计A卷(07电信本).doc_第2页
闽江学院面向对象程序设计A卷(07电信本).doc_第3页
闽江学院面向对象程序设计A卷(07电信本).doc_第4页
闽江学院面向对象程序设计A卷(07电信本).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

20092010学年第1学期闽江学院考试试卷考试课程:面向对象程序设计 试卷类别:A卷 B卷 考试形式:闭卷 开卷适用专业年级:2007级电子信息工程专业 装 订 线班级 姓名 学号 题号一二三四五六七八九十总分得分一、选择题 20%得分1、 若指针p定义为 const char *p=Luchy!; 则( )。 A) p所指向的数据不可改变,p在定义时可以不初始化。 B) p所指向的数据不可改变,p在定义时必须初始化。 C) p本身不可改变,p在定义时可以不初始化。 D) p本身不可改变,p在定义时必须初始化。 2、 类的默认的无参构造函数:( )A) 在任何情况下都存在 B) 仅当未定义无参构造函数时存在 C) 仅当未定义有参构造函数时存在 D) 仅当未定义任何构造函数时存在 3、 下列的各类函数中,()不是类的成员函数:A)友元函数B)拷贝构造函数C)析构函数D)虚函数4、 ()不可以作为类的成员A) 自身类对象的指针B)另一个类的对象C)对自身类对象的引用D)自身类的对象5、以下哪个不是构造函数的特点( ):A) 构造函数是的名字与类名相同;B) 构造函数的函数体必须写在类体内;C) 构造函数可以重载D) 构造函数不能定义返回类型,包括void6、下面对静态数据成员的描述中,正确的是:( )A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用7、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )A)派生类的对象可以赋给基类的对象B)派生类的对象可以初始化基类的引用C)派生类的对象可以直接访问基类中的成员D)派生类的对象的地址可以赋给指向基类的指针8、下列关于虚基类的描述,错误的是( )A)设置虚基类的目的是为了消除二义性B)虚基类的构造函数在非虚基类之后调用C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数9、下列关于多态性的描述,错误的是( )A)C+语言的多态性分为编译时的多态性和运行时的多态性B)编译时的多态性可通过函数重载实现C)运行时的多态性可通过模板和虚函数实现D)实现运行时多态性的机制称为动态绑定10、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )A)ios:inB)ios:outC)ios:in|ios:outD)以上都不对11、下列有关继承和派生的叙述中,正确的是( )A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B)派生类的成员函数可以访问基类的所有成员C)基类对象可以赋值给派生类对象D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类12、类的析构函数的作用是( )A) 一般成员函数B) 类的初始化C) 对象的初始化D) 删除对象13、关于new运算符的错误的描述是( )A) 使用运算符new创建对象数组时必须定义初始值B) 使用运算符new创建对象时,会调用类的构造函数C) 运算符new可以用来动态创建对象和对象数组D) 使用new运算符创建的对象可以使用运算符delete删除14、下面说法错误的是( )A) 一个派生类还可以作为另一个类的派生类B)派生类至少有一个基类C)基类的公有成员在私有继承时在派生类中成为私有成员,而在保护继承时在派生类中成为保护成员。D)在公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。15、下列描述中,( )是抽象类的特性。A) 可以定义虚函数B) 可以进行构造函数重载C) 可以定义友元函数D) 不能定义其对象16、一个( )允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。A) 函数模板B) 模板函数C) 类模板D) 模板类17、根据下面的定义,下面哪个是错误的( ):class A;class B:public A;A) B) C) D)Void main() void main() void main() void main() A a; A *a; A a; B b; B b; B b; B *b; A &a=b; a=b; a=&b; b=&a; 18、下面程序的输出结果是( )以下是引用片段:#include iostreamusing namespace std;class abc private:int a; public: abc(int b) a = b+; void print() a=a-1;cout a endl; ; void main() abc x(3); abc y(2); x.print(); y.print(); A)2 1 B)4 3 C)4 2 D)3 219、分析下面程序写出运行结果( ) #include int a=1,3,5,7,9,11; int &f(int i) return aivoid main()cout f4;A)7 B)9 C)11 D)120、当一个异常对象和catch子句参数类型符合一定条件时匹配成功。下列说法中哪个不正确:A)如果catch子句参数的类型就是异常对象的类型或其引用B)如果catch子句参数类型是异常对象所属类型的public基类C)如果catch子句参数类型为派生类指针或引用,而异常对象为基类指针或引用D)catch子句参数类型为void*,而异常对象为任何类型的指针二、填空题 22%得分1、面向对象的三大特性是:, ,。2、下面定义一个类,在构造函数中需要对成员赋值,请完成程序。2%class Xprivate: int x;public: X(int x) = x; ;3、 下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。(4%)classMyClass public:MyClass(inta);MyClass();private: int*X;MyClass:MyClass(inta) ;MyClass:Myclass() ;4、使用关键字virtual进行声明的基类称为 。5、一个类的定义如下所示,则相应类的构造顺序是:(2%)class Assistant : public Teacher, public Studentpublic:Assistant() : Student(), Teacher();6、 单目运算符作为类成员函数重载时有_个参数;双目运算符作为_重载时需声明其右操作数,作为_重载时需声明全部操作数。7、 若类Y是类X的私有派生类,类Z是类Y的派生类,则类Z_访问类X的保护成员与公有成员。8、 表达式operator+(x,y)还可以表示为 _。(2%)9、下列程序的运行结果如下:(4%)Basescons.Derivedscons.Derivedsdes.Basesdes.根据结果将程序补充完整。#include using namespace std; classBasepublic:Base()coutBasescons.endl;_coutBasesdes.endl;classDerived:publicBasepublic:Derived()coutDerivedscons.endl;Derived()coutDerivedsdes.endl; ;voidmain()Base*Ptr=_deleteptr;三、完成程序题 23%得分1、在划线处填上适当的语句,完成下列程序。(6%)#includeclassPointpublic:point(doublea,doubleb,doublec)_doubleGetx()returnX;doubleGety()returnY;doubleGetz()returnZ;private:_protected:_;classLine:_Pointpublic: Line(doublea,doubleb,doublec,doubled):_voidshow()coutGetx()endl;coutGety()“Yendl;coutGetz()“Zendl;coutKendl;private:doublek;voidmain() Lineobj(1.2,3.4,5.6,7.8);obj.show();2、下面的程序定义了一个堆栈类模板,它提供了两个异常:上溢异常和下溢异常。在主调函数中,出现了异常。请在划线处补充程序。(9%)#include template class Stack T* v;int max_size; /指定栈的容量int top;/表示栈顶指针public:class Underflow ;class Overflow ;Stack(int s) max_size=s;v=new Tmax_size;top=0;Stack() if(v!=NULL)delete v;cout对象已析构!endl;void push(T c)if (top = max_size) ; / 检查是否发生错误vtop+ = c; T pop()if (top = 0) ; / 检查是否发生错误return v-top; ;void main()try Stack ss (10);ss.push(5);int s = ss.pop(); ss.pop(); cout发生异常后的语句endl; catch ( ) cerr 错误:堆栈下限溢出endl;catch ( ) cerr 错误: 堆栈上限溢出endl;catch(.) cout有异常发生!endl;3、下面设计一个字符串类,请在划线处填写适当的语句。(8%)#include #include using namespace std; class Stringprivate:char *contents;int size;public:String()contents=new char1;contents0=0;size=0;String(const char *str)size=strlen(str);contents=new charsize+1;strcpy(contents,str);String()delete contents; ;/拷贝构造函数void display();void String:display()cout contentsendl; ;/拷贝构造函数 ;size=str.size;contents=new charsize+1;strcpy(contents,str.contents); ;四、看程序写结果题 20% 得分1、写出程序结果:(4%)#include using namespace std; class Matrixprivate:int *m;int col;int row;public:Matrix();Matrix(int,int);int operator()(int,int);int operator(int);Matrix:Matrix()int i;col=4,row=4;m=new int4*4;for(i=0;icol=col;this-row=row;m=new intcol*row;for(int i=0;icol*row;i+)*(m+i)=i*2;int Matrix:operator ()(int r,int c) return m(r-1)*col+c-1;int Matrix:operator (int n) return mn;void main()Matrix matrixA(10,10);coutmatrixA(3,3)endl;coutmatrixA15endl;结果:2、写出程序结果:(6%)#include using namespace std; class Baseprivate:int basePri;protected:int basePro;public:int basePub;Base() cout基类的构造函数endl;Base() cout基类的析构函数endl;void SetPri(int x)basePri=x;int GetPri()return basePri;class Derive: public Baseprivate:int derPri;protected:int derPro;public:int derPub;Derive()cout派生类的构造函数endl;Derive()cout派生类的析构函数endl;void SetValue(int a, int b, int c, int d, int e, int f)SetPri(a); basePro=b;basePub=c;derPri=d;derPro=e;derPub=f;void Print()coutGetPri() basePro basePub ;coutderPri derPro derPubendl;void main()Derive derive;derive.SetPri(1);coutderive.GetPri()endl;derive.SetValue(1,2,3,4,5,6);derive.Print();结果是:3、写出程序结果:(6%)#include #include using namespace std; class Fruitprivate:double weight;char *color;public:Fruit(double w, char *col);virtual Fruit();virtual void Print();Fruit:Fruit(double w, char *col)weight=w;color=new charstrlen(col)+1;strcpy(color,col);Fruit:Fruit()delete color;coutt基类水果类的析构函数!endl;void Fruit:Print()coutt此水果重量:weight公斤endl;coutt此水果颜色:colorendl;class Apple : public Fruitprivate:char *variety;public:Apple(double w, char *col, char *va

温馨提示

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

评论

0/150

提交评论