已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2012年面向对象程序设计复习题一、填空(试卷中该题,共10分,每空1分)1、类的(私有成员 )只能被该类的成员函数或友元函数访问。2、类的数据成员不能在定义是时候初始化,而应该通过( 构造函数 )初始化。3、类成员默认的访问方式是( private )。4、C+中语句( const char * const )p=”hello”;所定义的指针p和它所指的内容都不能被改变。5、设p使指向一个类动态对象的指针变量,则执行delete p; 语句时,将自动调用该类的( 析构函数 )。6、含有( 纯虚函数 )的类叫做抽象类。7、在类的继承中,原有的类称为父类或( 基类 ),产生的新类称为子类或( 派生类 )。8、带 inline 关键字定义的函数为( 内联函数 ),在( 编译 )时将函数体展开到所有调用处。9、函数名相同,但对应形参表不同的一组函数称为( 重载 ),参数表不同是指( 参数类型,个数或顺序不同 )。10、绑定工作在程序编译阶段完成的情况称为( 静态绑定 )。绑定工作在程序运行阶段完成的情况称为( 动态绑定 )。11、每个对象都有一个指向自身的指针,称为( this指针 ),通过使用它来确定其自身的地址。12、( 引用 )是一种特殊类型的变量,可以被认为是另一个变量的别名。13、在C+中,三种派生方式的说明符号为( private )、( public )、( protected ),如果不加说明,则默认的派生方式为( private )。14、当私有派生时,基类的公有成员称为派生类的( 私有 );保护成员成为派生类的( 私有 );私有成员成为派生类的( 私有的派生类不可访问 )。15、在派生类中不能直接访问基类的( 私有成员 ),否则破坏了基类的封装性。16、定义名字空间的关键字(namespace )。17、 ( 流 )是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。18、在C+的异常处理中,用于抛掷异常的关键字是( throw ),用于异常处理程序的子句是( catch )。二、单项选择(试卷中该题,共30分,每小题2分)1、数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这一实体也就是( A )。A. 类 B. 对象 C. 函数体 D. 数据块2、类的实例化是指( B )。A. 定义类 B. 创建类的对象 C. 指明具体类 D. 调用类的成员 3、下面说法正确的是( B )。A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C. 类的内联函数必须在类体内定义 D. 类的内联函数必须在类体外通过加关键字inline定义4、下列说法中正确的是( B )A. 类定义中只能说明函数成员的函数头,不能定义函数体B. 类中的函数成员可以在类体中定义,也可以在类体之外定义C. 类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D. 在类体之外定义的函数成员不能操作该类是私有数据成员5、在建立类的对象时( A )A. 只为每个对象分配用于保存数据成员的内存 B. 只为每个对象分配用于保存函数成员的内存 C. 为所有的对象的数据成员和函数成员分配一个共享的内存 D. 为每个对象的数据成员和函数成员同时分配不同内存6. 定义析构函数时,应该注意( C )。A.其名与类名完全相同 B.返回类型是 void 类型 C.无形参,也不可重载 D.函数体中必须有 delete 语句7.( A)是析构函数的特征。A. 一个类中只能定义一个析构函数B. 析构函数名与类名不同C. 析构函数的定义只能在类体内D. 析构函数可以有一个或多个参数8. 有关构造函数的说法不正确的是( D )。A. 构造函数名字和类的名字一样B. 构造函数在声明类变量时自动执行C. 构造函数无任何函数类型D. 构造函数有且只有一个9.下列( D )不是构造函数的特征。A. 构造函数的函数名和类名相同B. 构造函数可以重载C. 构造函数可以设置缺省参数D. 构造函数必须指定类型说明10、不属于成员函数的是( B )。A. 静态成员函数B. 友元函数C. 构造函数D. 析构函数11、已知类A是类B的友元,类B是类C的友元,则( D )。A. 类A一定是类C的友元B. 类C一定是类A的友元C. 类C的成员函数可以访问类B的对象的任何成员D. 类A的成员函数可以访问类B的对象的任何成员12.下面有关重载函数的说法中正确的是( C ) 。A.重载函数必须具有不同的返回值类型;B.重载函数形参个数必须不同; C.重载函数必须有不同的形参列表D.重载函数名可以不同; 13.下列关于构造函数的描述中,错误的是( D ) 。A.构造函数可以设置默认参数; B.构造函数在定义类对象时自动执行 C.构造函数可以是内联函数; D.构造函数不可以重载 14.下面描述中,表达错误的是( B )。 A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承时基类中的private成员在派生类内部可以直接访问的 C.公有继承时基类中的protected成员在派生类中仍是protected的 D.私有继承时基类中的public成员在派生类中是private的 15. 有如下的对类“CSample”的说明,其中( A )是错误的。class CS Aint x=3;BCS ();public:CCS (int val);D CS ();16. 对于在类中定义的静态数据成员,下面正确的说法是( C )。A.该类的每个对象中都有一个静态数据成员B.对象创建时产生 C.在类外进行初始化D.既可以在类外初始化,也可以在类内初始化17、静态成员函数没有( B )。A. 返回值 B. this指针C. 指针参数D. 返回类型18. 下面关于友元的描述中,错误的是( D )。A友元函数可以访问该类的私有数据成员B一个类的友元类中的成员函数都是这个类的友元函数C友元不是必须使用,则尽可能少用。D类与类之间的友元关系可以继承19、C+中,关于默认形参值,正确的描述是( C )。A. 设置默认形参值时,形参名不能缺省B. 只能在函数定义时设置默认形参值C. 应该先从右边的形参开始向左边依次设置D. 应该全部设置20、系统在调用重载函数时,根据一些条件确定调用哪个重载函数,下列条件中,不能作为依据的是( D )。A. 参数个数 B. 实参类型C. 函数名称D. 函数类型21、下列函数原型声明中错误的是( D )。A. void Fun(int x=0,int y=0);B. void Fun(int x, int y);C. void Fun(int x, int y=0);D. void Fun(int x=0,int y);22、为了取代C中带参数的宏,在C+中使用( B )。A. 重载函数B. 内联函数C. 递归函数D. 友元函数23. 已知:int y=5; 下列表示引用的方法中,( A )是正确的。Aint &x=y; Bint &x=5; Cint &x; Dfloat &x=&y;24、下面叙述不正确的是( A )。A. 基类的保护成员在派生仍然是保护的B. 基类的保护成员在公有派生类中仍然是保护的C. 基类的保护成员在私有派生中仍然是私有的D. 对基类成员的访问必须是无二义性的25、在公有派生情况下,派生类中定义的成员函数只能访问原基类的( B )。cA. 公有成员和私有成员B. 私有成员和保护成员C. 公有成员和保护成员D. 私有成员、保护成员和公有成员26. 在一个派生类对象结束其生命周期时(A )A. 先调用派生类的析构函数后调用基类的析构函数B. 先调用基类的析构函数后调用派生类的析构函数C. 如果基类没有定义析构函数,则只调用派生类的析构函数D. 如果派生类没有定义析构函数,则只调用基类的析构函数27、当保护继承时,基类( B )在派生类中成为保护成员,不能通过派生类的对象来直接访问。A. 任何成员B. 公有成员和保护成员C. 公有成员和私有成员D. 私有成员28、若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( A ).A. 私有成员B. 公有成员C. 保护成员D. 保护成员或私有成员29. 在C+中,用于实现动态多态性的是( D )。A内联函数 B重载函数 C模板函数 D虚函数30、( c )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。A. 虚析构函数B. 虚构造函数C. 纯虚函数D. 静态成员函数31、以下基类中的成员函数,哪个表示纯虚函数( C )。A. virtual void vf(int);B. void vf(int)=0;C. virtual void vf()=0;D. virtual void yf(int)32、如果一个类至少有一个纯虚函数,那么就称该类为( A )。A. 抽象类B. 虚基类C. 派生类D. 以上都不对33、关于纯虚函数和抽象类的描述中,( C )是错误的。A. 纯虚函数是一种特殊的虚函数,它没有具体的定义B. 抽象类是指具有纯虚函数的类C. 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D. 抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出34、下列描述中,( D )是抽象类的特征。A. 可以说明虚函数B. 可以进行构造函数重载C. 可以定义友元函数D. 不能定义其对象35. 设置虚基类的目的是(B )。A简化程序 B消除二义性 C提高运行效率 D减少目标代码三、判断题(试卷中该题,共10分,每小题1分)四、程序填空(试卷中该题,共10分,每空2分)1、#include #include using namespace std;class Aprivate:char name80;public:A( _ ) (1)_ (2)void Print( ) cout”name:”nameendl;int main( )A a(“xiao Li”);a.Print( ) ; return 0; /执行结果:name: xiao Li2、#include using namespace std;class A_ (1)int x;public:A( _ ) (2)_ (3);class B_ (4)public:B(const int x)_ (5)void Print ( ) cout”x:”xendl;int main( )B b(36);b.Print( ) ; return 0; /执行结果:x: 363、#include using namespace std;class A int *a; public: A(int aa=0) a= ;(1) /用aa初始化a所指向的动态对象 A( ) ;(2) /释放动态存储空间 4、#include using namespace std; class A public: A() a=0; A(int i) a=i; void print() couta; private: int a;class B :public Apublic:B() b1=b2=0;B( ) (1) b1=i; b2=0; B(int i, int j, int k) : (2) /使a的值为i b1=j; b2=k;void print() A:print();coutb1”,”b2endl; private: int b1,b2;5、下列程序的输出结果为2,请将程序补充完整。#include using namespace std;class A public: (1) cout1; ;class B :public A public: (2) coutfun( ); delete p; return 0;五、程序分析题(试卷中该题,共20分,每小题5分)1. 给出下面程序的运行结果:/静态数据成员和函数成员#include using namespace std;class SSprivate:int x;static int Num;public:SS(int x )this-x=x;SS:Num+;static int GetNum()return Num;int SS:Num=0;void main()SS s1(100);SS s2(102);coutSS:GetNum();2、给出下面程序的运行结果:/常对象常函数#include using namespace std;class AA int n; public:AA(int k): n(k) int get() return n;int get() const return n+1;int main() AA a(5);const AA b(6);cout a.get() b.get();return 0; 3. 给出下面程序的运行结果:/继承与派生构造和析构函数#includeusing namespace std;class PPpublic:PP() coutAAendl;PP() coutBBendl;class SS :private PPpublic:SS() cout11endl; SS() cout22endl; ;void main()SS s; 4、给出下面程序的运行结果:/继承组合派生的构造函数和析构函数#include using namespace std;class Apublic:A() cout”A”; ;class Bpublic:B() cout”B”; ;class C: public A B b;public:C() cout”C”; ;int main() C obj;return 0; 5. 给出下面程序的运行结果:#includeusing namespace std;class PPprivate:int a;public:PP(int a) this-a=a;void Print()coutaendl;class SS :public PPint b;public:SS(int a) :PP(a-5)b=a;void Print()coutPrint();SS s(20);s.Print();6. 给出下面程序的运行结果: /纯虚函数#includeusing namespace std;class PPprotected:int x, y;public:void Set (int x, int y)this-x = x;this-y = y;virtual int Get ()=0;class Add:public PPint Get () return x+y;class Sub:public PPint Get() return x-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年造价工程师考试笔试模拟题集
- 2026年PMP考试通关秘籍题库精
- 2026年企业安全竞赛活动方案
- 2026年磺化工艺中控员测试题库
- 2026年健康教育知识科普宣讲活动
- 2026年卫生保健知识幼儿园培训知识
- 2026年基础天文知识科普
- 2026年初夏幼儿保健知识
- 2026年焰火燃放师理论复习资料
- 护理查对制度中的沟通与协作
- 水平定向钻进管线铺设工程技术规范
- 水利安全风险防控“六项机制”与安全生产培训
- 超星尔雅学习通《大学生就业指导(北京大学)》2025章节测试附答案
- T-CCPS 0014-2024 国有企业合规管理体系有效性评价原则与实施指南
- 黑龙江省大庆市祥阁学校2024-2025学年五年级上学期期末语文试题
- 售后服务方案(15篇)
- TCHATA 040-2024 结核病相关临床样本保藏规范
- 高考物理复习易错题专练:静电场
- 国家职业技术技能标准 6-04-05-02 涂装工 人社厅发200966号
- 手术烟雾的预防与控制
- 社会学概论-终结性考核-国开(SC)-参考资料
评论
0/150
提交评论