收藏 分销(赏)

面向对象程序设计资料整理长大.doc

上传人:天**** 文档编号:3769959 上传时间:2024-07-17 格式:DOC 页数:34 大小:90KB
下载 相关 举报
面向对象程序设计资料整理长大.doc_第1页
第1页 / 共34页
面向对象程序设计资料整理长大.doc_第2页
第2页 / 共34页
面向对象程序设计资料整理长大.doc_第3页
第3页 / 共34页
面向对象程序设计资料整理长大.doc_第4页
第4页 / 共34页
面向对象程序设计资料整理长大.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、面向对象程序设计复习资料 (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下面

2、叙述正确的是: ( ) 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所有在函数外面定义的变量, 连同形式参数

3、, 都属于 ( ) A、 局部变量 B、 全局变量 C、 静态变量 D、 寄存器变量 10面向对象的程序中, 哪项不是对象的特点。 ( ) A、 多态性 B、 抽象性和封装性 C、 中断 D、 继承性 11下面在半初始化说法正确的是 ( ) A.初始化列表能够初始化任何类B.初始化列表也也能够初始化具有私有成员的类C.初始化列表只能初始化公有数据成员D.初始化列表能够初始化所有数据成员 12产生编译时的多态性的必要条件是使用 ( ) A静态成员 B.友元函数 C.重载成员函数 D.虚函数13operator经常和C+的一个运算符连用,构成一个运算符函数名.运算符函数的返回类型不能是 ( ) A

4、.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下面有关类性质说法错误的是 (

5、 ) A.一个类能够有多个构造函数,但只有一个析构函数B.析构函数和构造函数都不能有返回类型C.不能够给析构函数指定参数D.一个类中不能够说明具有类类型的数据成员19 下面叙述不正确的是 ( ) A.成员的访问能力取决于派生方式B.基类的私有成员在公有派生类中不可访问C.对象能够访问所有成员D.公有基类成员在保护派生中保护的20成为抽象类的一个条件是这个类 ( ) A至少有一个纯虚函数 B.至少有一个虚函数C只含有一个纯虚函数 D.只含有一个虚函数21 下列叙述正确的是 ( ) A有1个运算符不能被重载 B.有2个运算符不能被重载 C有3个运算符不能被重载 D.有4个运算符不能被重载 22在以

6、下选项中, 不属于模板特点的选项是 ( ) 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.复制构造函

7、数不能使用初始化列表B. 复制构造函数不能有返回值C. 复制构造函数名与类名相同并能够有多个复制构造函数D. 复制构造函数的参数能够为引用对象 27对友元函数描述正确的是 ( ) A.一个类的友元函数是该类的一个特殊成员函数B.一个类的友元函数能够访问类的所有数据成员C.友元函数只允许访问该类对象的私有成员D.友元函数只允许访问该类的公有成员28进行文件操作时需要包含的头问家是 ( ) Aiostream.h B. fstream.h C.stdio.h D. stdlib.h29 下面关于类模板叙述不正确的是 ( ) .声明类模板”; ”号结束 .不能重载运算符.能够使用友元函数 .能使用虚

8、函数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的_ _函数的原型声明,它的等效

9、形式为Base(const Base&)。11要想取消动态联编,能够使用 ,它的另一个基本用途是避免两义性.12声明double的转换函数是 。13根据类对其成员的要求, 可把类分为 模板和无约束模板。14在面向对象程序设计时, 函数一定既提供了接口也提供了实现。 15函数func(int &a)里面使用return; 语句, 则函数的返回值类型为_ _.16一般使用类中的 函数供类内部的成员函数使用, 能够实现更好的封装性。17成员名限定的符号是_ _,它能够在引用成员时避免两义性.18对类的构造函数而言,析构函数能够为虚函数, 不能够为虚函数.19指向类成员的指针引入了新的运算符 和-*.

10、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;i

11、nt 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;

12、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( )

13、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找出下面程序中的错误并给出正确的运行结果

14、。# 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

15、=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;

16、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;pu

17、blic: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)解

18、: 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”, 并在退出运行时正确释放分配给指针的存

19、储空间。所给程序如下: # 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

20、);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在下面程序的下划线处填上正确的

21、语句, 使类的数据成员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分

22、析下面程序的输出结果。# 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

23、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(in

24、t 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

25、 ( ”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,i

26、nt 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

27、 *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

28、# 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(! Fin.eof() Fin.getline(str,100); Coutstrendl;Fin.close();14分析下面程序的输

29、出结果。# include class A int a; pubic: A(int a=0):a(a)coutaendl; A(A&t)a=t.a;coutaendl; class B A al; Int b; public: B(int m,int n)Lm),b(n) B(B&t):al(t.al)b=t.b; Void show()al.show();coutbendl;void main()B b(256.285);B c(b);c.show();15# include void main () int n=333; int&m =n; cout m; m=m+150; cout” ”

30、n; n=n-100; cout” ”m;16分析下面程序的输出结果。#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); 17分析程序功能。# include Void main() For(int i=0;i10;i+) Coutendlsetw(10-i)*setw(10)*; 18分析下面程序的输出结果。 # include class A protectedint mpublic: void Disp()c

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服