




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计复习资料 (2328) 一、单项选择题1假设P是指针,声明指针s引用指针p正确方法是 ( )Aint* s&=pBint &*s=pCint *&s=pDint s* &=p2在C+ +中,可以为类的所有成员共享的是 ( )A、枚举成员 B、公有数据成员 C、私有函数成员 D、公有函数成员3C+ +中,下列哪个关键字不能提供封装。 ( )A、struct B、union C、class D、case4下而关于类的复制构造函数的说法正确的是 ( )A.一个类只能有一个复制构造函数B.可以为void类型C.不能有返回类型 D.不能使用缺省参数 5下面叙述正确的是: ( )A.派生类不可以使用私有派生B.保护派生时,基类的保护成员在派生类中是公有的C.对基类成员的访问可以允许两义性D.赋值兼容规则也适用于多重继承的组合6定义虚函数使用关键字 ( )A: B.virtual C.& D.-7在下面几项中,运算符在C+中能被重载的是 ( ) A .= B.? : C.sizeof D. : :A结构B类C继承D引用8在执行下面程序语句之后,num的值为 ( )int num = 500;int& ref= num;ref = = ref -50; A450 B500 C-50 D无法确定9所有在函数外面定义的变量,连同形式参数,都属于 ( )A、局部变量 B、全局变量 C、静态变量 D、寄存器变量 10面向对象的程序中,哪项不是对象的特点。 ( )A、多态性 B、抽象性和封装性 C、中断 D、继承性 11下面在半初始化说法正确的是 ( )A.初始化列表可以初始化任何类B.初始化列表也也可以初始化具有私有成员的类C.初始化列表只能初始化公有数据成员D.初始化列表可以初始化所有数据成员 12产生编译时的多态性的必要条件是使用 ( )A静态成员 B.友元函数 C.重载成员函数 D.虚函数13operator经常和C+的一个运算符连用,构成一个运算符函数名.运算符函数的返回类型不能是 ( )A.void B.char C.int D.float14下面是对C+运算符的叙述,正确的叙述是 ( ) A只有类运算符 B.只有友元运算符 C同时具有类运算符和友元运算符 D.同一个运算符只能重载一次 15 在面向对象的设计中,一切都是围绕着什么展开的 ( )A类B结构C数据类型D对象16 下面哪项不能算是面向对象程序设计所具有的显著特点 ( )A .封装 B.继承 C.抽象 D.递归17 下面选项中哪一项不是结构和类的共同特性 ( )A对象可以用作数组的元素 B.在缺省情况下,成员是私有的 C对象之间可以相互赋值 D.可以说明指向对象的指针和引用 18下面有关类性质说法错误的是 ( )A.一个类可以有多个构造函数,但只有一个析构函数B.析构函数和构造函数都不能有返回类型C.不可以给析构函数指定参数D.一个类中不可以说明具有类类型的数据成员19 下面叙述不正确的是 ( )A.成员的访问能力取决于派生方式B.基类的私有成员在公有派生类中不可访问C.对象可以访问所有成员D.公有基类成员在保护派生中保护的20成为抽象类的一个条件是这个类 ( )A至少有一个纯虚函数 B.至少有一个虚函数C只含有一个纯虚函数 D.只含有一个虚函数21 下列叙述正确的是 ( ) A有1个运算符不能被重载 B.有2个运算符不能被重载 C有3个运算符不能被重载 D.有4个运算符不能被重载 22在以下选项中,不属于模板特点的选项是 ( ) A处理数据时,处理的是不同类型的相同操作B声明不需要给出数据类型C对于相同的数据类型产生不同的实例D.对于不同的数据类型能够产生不同的实例23 通过什么建立类树 ( )A类B虚函数C多重继承D单一继承24C+使用新的分配动态内存的函数是 ( )A . malloc ( ) B. free( ) C. delete D. new 25以下关于C+ +对象特点叙述不正确的是 ( )A、对象可以进行四则运算 C、对象可以用作数组的元素C、对象可以用作函数参数 D、对象之间可以相互赋值26 有关复制构造函数说法错误的是 ( )A.复制构造函数不能使用初始化列表B. 复制构造函数不能有返回值C. 复制构造函数名与类名相同并可以有多个复制构造函数D. 复制构造函数的参数可以为引用对象 27对友元函数描述正确的是 ( )A.一个类的友元函数是该类的一个特殊成员函数B.一个类的友元函数可以访问类的所有数据成员C.友元函数只允许访问该类对象的私有成员D.友元函数只允许访问该类的公有成员28进行文件操作时需要包含的头问家是 ( )Aiostream.h B. fstream.h C.stdio.h D. stdlib.h29 下面关于类模板叙述不正确的是 ( ).声明类模板“;”号结束 .不能重载运算符.可以使用友元函数 .能使用虚函数30系统不会为类自动建立什么成员函数 ( )A默认构造函数 B默认析构函数C默认虚析构函数D默认赋值运算赋二、填空题:1函数 int * func(void)的返回类型是_ _ _.2C+ +中,关键字 用作联合.3关键字virtual可以用来声明 类.4抽象类至少要含有一个 ,这种函数属于虚函数 5成员函数“void print( )const;”是类的 函数,它只能被const对象调用。6声明double的转换函数是 。7模板分为 模板和类模板。8类群是由一些彼此互不相关的 组成。9类的作用于限定符是 。10.Base(Base&)是类Base的_ _函数的原型声明,它的等效形式为Base(const Base&)。11要想取消动态联编,可以使用 ,它的另一个基本用途是避免两义性.12声明double的转换函数是 。13根据类对其成员的要求,可把类分为 模板和无约束模板。14在面向对象程序设计时, 函数一定既提供了接口也提供了实现。 15函数func(int &a)里面使用return;语句,则函数的返回值类型为_ _.16一般使用类中的 函数供类内部的成员函数使用,可以实现更好的封装性。17成员名限定的符号是_ _,它可以在引用成员时避免两义性.18对类的构造函数而言,析构函数可以为虚函数, 不可以为虚函数.19指向类成员的指针引入了新的运算符 和-*.20使用友元重载提取符函数时,它的第2个参数必需使用 形式。21一个模板声明可以列出多个参数,多个参数之间必须使用 隔开。20设计类的基本原则应该是 。22语句int * x=new int(58);使*x .23如果要为其他对象提供相互作用的接口,可以通时 函数实现。24空类Empty的声明形式为 。25只有 继承的情况下,基类的派生类之间才有赋值兼容性规则。26产生多态性要求类之间的继承关系满足 。27使用友元重载提取符函数时,它的第2个参数必需使用 形式。28类群是由一些彼此互不相关的 组成。三、改错题1指出下面程序段中的错误。const int R= 15;R=3 *R;int m =50-R;cout m endl;2找出以下程序中的错误,并说明原因。# include class base int m, n; public: base(int a, int b):m(b),n(a) void Disp( )coutm,nendl;3找出以下程序中的错误,并说明错在何处。# include class base int m;public:base(int a):m(a);int Getx()retum m;class derived : private baseint n;public:derived(int a, int b):m(a)n=b;4改正下面程序段中的错误,使其能正确输出数组第五项的内容。# include void main()int *p , a5 = 1,2,3,4,5 ;p =&a5;cout p endl;5找出类定义中的错误并说明理由。class baseprivate:int x,y;void setxy(int a,int b)x=a;y=bpublic:void show (base * p)coutx”,”y;6找出以下程序中的错误,并说明原因。include class base int p; public: base(int a)p=new int(a); int Getx( )return m; base( )delete p;7仔细阅读下面程序,其中有一个成员函数定义不正确,找出并改正错误。#include class Aint a;public:A(int m):a(m)A(A&t):a(t);class B:public Aint b;public:B(int m, int n)a=m;b=n;8指出下面程序中的错误。# include void main( ) int * pa;int * &pb= pa;int x = 386;pb =&x;cout*pbendl;cout*paendl;delete pb;9找出下面程序中的错误并给出正确的运行结果。# include class base private: int x,y; public: void setxy(int a,int b) x=a;=b void show(base b) coutb.x”,”b.y;void main( )base a;a.setxy(28,59)a.show(a);10下面是使用类的主函数,改正其中的错误。void main( ) A p2= (new A),(new A) for( int i=0;i2;i+ +) delete Ai;11指出下面程序段中的错误。const int R= 15;R=3 *R;int m =50-R;cout m endl; 12下面是使用类的主函数,改正其中的错误。void main( ) A p2= (new A),(new A) for( int i=0;i2;i+ +) delete Ai;13仔细阅读下面程序,其中有一个成员函数定义不正确,找出并改正错误。#include class Aint a;public:A(int m):a(m)A(A&t):a(t);class B:public Aint b;public:B(int m, int n)a=m;b=n;14给出类声明中的转换函数的定义。Class numberprivate:int val;public:number( int I ) val =I; operator int();四、完成程序题1在下面程序中的下划线处填上内联fun函数的原型声明、返回类型和调和调用语句。# include void main()int a=5;int b=8; coutaendl; coutbendl;inline void fun(int& m,int& n)int temp=m;m=m+n;n=temp-n;2在下面的主程序中只允许显式地使用一次set成员函数,在下划线处填上适当的程序,使程序的输出为:589589#includeclass baseprivate:int x;public:void set(int a)x=a;void show()_ _;void main()base a,b;a.set(589); a.show(); _b.show;3完成下面程序,使其输出为: 2.589000e +001 2.589000e +001 程序如下: # include void main()cout.setf(ios:scientific | ios:left | ios:showpos);cout 25.89F endl;cout 25.89f endl; 4使用内联函数重新定义下面求两个整数最小值的宏定义。#define MAX(a,b)(ab? a:b)解: inline int MAX(int a,int b) return ab?a:b;5下面是类test的两个成员函数的定义,根据它们的定义,给出最小的类声明形式,其中数据成员为私有,成员函数使用原型声明。test:tese(int a,int b)m=a;n=bvoid test:show()coutm”,”nendl; 6给出类声明中的转换函数的定义。class numberprivate:int val;public:number( int i ) val =i; operator int(); 7完成一面程序,使其输出“56 56”,并在退出运行时正确释放分配给指针的存储空间。所给程序如下:# include void main ( )int *a=int new(56);int cout*a*pendl; 8在下面程序的下划线处填上正确的语句,使类的数据成员i的值为20,输出为35。#include class sumpublic: void disp( )cout i+jendl;void main( )Sum a= ;a.disp( ); 9根据下面的主程序,补上所缺类说明文件的最小形式(成员函数使用原型声明)。# include(iostream h)# include “base.h”void main()base obj(1,2,3);base obj2(obj1);10在主函中的下划线处填上正确的语句使程序输出并说明理由。A place.Here is B place .Here is B place.程序如下:class B: public Apublic:void display(char*b)cout”Here is”bdisplay(B place );11完成一面程序,使其输出“56 56”,并在退出运行时正确释放分配给指针的存储空间。所给程序如下:# include void main ( )int *a=int new(56);int cout*a*pendl; 12在下面程序的下划线处填上正确的语句,使类的数据成员i的值为20,输出为35。#include class sumpublic: void disp( )cout i+jendl;void main( )Sum a= ;a. disp( );13给出类声明中的转换函数的定义。Class numberprivate:int val;pnblic:number( int I ) val =I; operator int();五、程序分析题1# include void main () int n=333; int&m =n; cout m; m=m+150; cout” ”n; n=n-150; cout” ”m; 2分析下面程序的输出结果。# includeclass base char c;public: void change(char a) c=a+32;coutcendl;void main( ) base a;a.change(A);a.change(B); 3分析下面程序的输出.# includeclass baseint num;public:base(int x)num=x; cout”Initializing num=”numendl;void main()cout”Entering main” endl;cout”Exiting main endl;static base a(548); 4分析下面程序的输出结果。 # include # include void main( ) cout oct 15 endl: cout hex 15 endl: cout setflii(a ) setw (10 ): cour 256 “OK” endl:5分析下面程序输出结果。#include void f ( )static int n=25;n - ;cout ”n=”n” ”;void main ( )for (int i=0; i= 2 ; i+ +) f ( );6分析下面程序的输出结果class basepublic: int x; void setx(int a)x=a; int getx( )return x;# include void main( )base a=125,b;b=a;couta.xendl;coutb.getx( )endl;7分析下面程序的输出# includeclass base private: int a; public: base( ) cout析构a endl ; base (int a=0) :a(a) cout 初始化aendl; ;void main( ) base a(8),b;8分析下面程序的输出结果。 # include # include Viod main ( ) Cout setfill ( “a” ) setw ( 0 ) 15 endl setw ( 1 ) 15 endl setw ( 4 ) 15 endl: Cout setw ( 8 ) setfill ( “a”) endl: Cout setiosfiags (ios: : right ) setw( 4 ) 1 setw( 4 ) 2 endl: Cout setiosfiags (ios: : left ) setw( 4 ) 1 setw( 4 ) 2 endl:9分析下面程序的输出结果。#includeclass basePrivate:int x,y;public:void setxy(int a,int b)x=a;y=b;void show(base *p)coutx”,”y;void main()base a; asetxy(25,39) bshow(a);10分析下面程序的输出结果。#include void main( )int x = 56;int *a;int *&p=a;p=new int(x +2);cout *p endl;cout a0 endl;coutxendl;11分析下面程序的输出结果。#includeclass basePrivate:int x,y;public:void setxy(int a,int b)x=a;y=b;void show(base *p)coutx”,”y;void main()base a; asetxy(25,39) ashow(a);12分析下面程序的输出结果。# include class A int a; pubic: A(int a=0):a(a) coutaendl; void show()coutaendl;class BA al;int bpublic: B(int m, int n):al(m),b(n)Void show()al.show();coutbendl;void main() B b(256.285),c(b); c.show()13分析程序功能并给出输出结果。 # include # include Viod main ( void )Fstream fin,fout;Fout.open(“my.txt”,ios:out);If(! fout.is_open() Retnrn;For(int i=0;i=10;i=i+2)Fout”This is line”i+1endl;Fout.close();Fin.open(”my.txt”ios:in);If(! Fin.is_open() Return; Char str100;While(! Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管道阀门考试题及答案
- 瓦斯抽采考试试题及答案
- 预算岗位面试题及答案
- 运动协调:成长加速器
- 记忆障碍试题及答案
- 空间跃迁测试题及答案
- 怎样培养孩子的团队习惯
- 用Scratch启蒙编程思维
- 家电公司合同履行管理细则
- 2020-2025年材料员之材料员专业管理实务考前冲刺模拟试卷A卷含答案
- 青灵与量子物理学的关联研究
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 高考物理真题分项汇编:动量(含答案)
- 艾草的简单介绍教程文件
- 膀胱阴道瘘病人的护理
- 服务费通用合同
- 长鑫存储安全培训
- 特色农产品加工产业园区建设项目规划设计方案
- 智能控制 第3版 PPT课件第1章
- 材料化学课件
- 智能交通概论全套教学课件
评论
0/150
提交评论