《2022年面向对象程序设计复习提纲 .docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计复习提纲 .docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品_精品资料_一、填空题1. c+ 中变量依据作用范畴可分为局部变量和全局变量.2. 动态联编支持的多态性称为运行时的多态性,也称为动态多态性.3. 在一个函数的定义或声明前加上关键字inline时,该函数就声明为内联函数.4. 在类中定义和实现的函数称为成员函数.5. 程序中可以有多个名称相同,但参数类型不同或个数不同或类型与个数都不同的函数,这种现象称为函数重载.6. 如定义 int a4=1, 2,3,4,5,6,7,8,9 ,就数组 a 的第一维的大小是 3.7. 设置虚基类使用的关键字为 virtual.8. 基类的构造函数和析构函数,不能被派生类继承.9. 含有纯虚函数的类称为抽
2、象类,它不能定义对象,主要用作基类.10. 动态联编支持的多态性称为运行时的多态性.11. 运算符重载函数的两种主要形式有成员函数和友元函数.12. 使用模板是为了提高代码的可重用性.13. 在 C+语言中,变量依据生存周期分为静态储备类别变量和自动储备类别变量.14. 非成员函数应声明为类的友元函数,才能拜访该类的private成员.15. 在类中,数据成员和成员函数的默认拜访属性是private或私有的 .16. 假如一个类至少有一个纯虚函数,那么该类被称为抽象类.17. 对于含有对象成员的派生类,其构造函数的执行次序为:先执行基类的构造函数、再执行对象成员所属类的构造函数,最终执行派生类
3、的构造函数.18. 构造函数是一种特殊的成员函数,其作用是对类的数据成员进行初始化并执行对象的其他内部治理操作.19. 静态成员函数不能直接引用类中说明的非静态成员.20. 对于含有对象成员的派生类,其析构函数的执行次序为:先派生类的析构函数、再执行对象成员所属类的析构函数,最终执行基类的析构造函数.21. 设置友元函数的目的是为能够拜访该类的私有成员.22. 运算符重载仍旧保持原先的优先级、结合性和语法结构.23. 基类的私有成员不能被派生类的成员拜访.24. 静态联编支持的多态性称为编译时的多态性,也称静态多态性.25. 任何类中答应有三种拜访权限的数据,这三种拜访权限分别是私有的priv
4、ate、被爱护的 protected、公有的 public.26. C+中封装性、继承性和多态性是面对对象程序设计的三个主要特性.27. 实现运行时的多态性要使用继承和虚函数.28. 将双目运算符重载为某类的成员函数时,该成员函数的左操作数为当前对象(或*this),右操作数为函数参数.29. C+程序运行时,总是从主函数 main 开头执行.可编辑资料 - - - 欢迎下载精品_精品资料_30. 从实现的角度看,多态性可以分为编译时的多态性和运行时的多态性.31. 抽象类只能作为基类使用,而不能声明它的对象.32. 一个类可以从直接或间接的祖先中继承全部属性和方法.采纳这个方法提高了软件的可
5、重用性.33. 纯虚函数的声明格式为: virtual函数返回值的数据类型函数名 形参列表 =0 .34. 静态成员函数没有 this指针.35. 类有两个特殊的成员函数,即构造函数和析构函数.36. 运算符 op 重载时,其函数名是由 operator op构成.37. 无符号整型的类型关键字是 unsigned .39. 如定义 int a23=2,3 .就值为 3 的数组元素是 a10.40.B 类是 A 类的友元, C 类是 B 类的友元,就 C类不是 A 类的友元(假如没有显式声明C是 A的友元).41. 模板声明中的第一个符号总是关键字template .42. C+语言规定对全部
6、用到的变量要“先定义,后使用”.43. 从用户使用的角度看,函数有两种,即系统 库 函数和用户自定义函数.44. 一个变量的的址称为该变量的指针.45. 使几个不同的变量共占同一段内存的结构称为共用体.46. 引用是给对象取一个别名,它引入了对象的同义词.47. 用已有对象复制一个新对象时调用复制构造函数.48. C+供应的预处理功能主要有宏定义、文件包含和条件编译.49. C+中 static用声明的变量称为静态变量.50. 程序的三种掌握结构包括次序结构、挑选结构和循环结构.51.C+中可重用性是通过继承这一机制来实现的.52. 名称为 sample 的类的复制构造函数的原型声明语句为sa
7、mpleconst sample &.53. 假如参与运算的两个数中有一个数为float型数据,就运算的结果是 double 型.54. 在定义函数时函数名后面括号中的变量名称为形式参数,在主调函数中调用一个函数时,函数名后面括号中的参数称为实际参数.55. 假如有一个变量是特的用来存放另一变量的的址(即指针)的,就它称为指针变量.56. 在调用一个函数的过程中又显现直接或间接的调用该函数本身,称为函数的递归调用.57. 一个新类从已有的类那里获得其已有特性,这种现象称为类的继承.58. 向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法),这种现象称为多态性.59. 在派
8、生类中,对基类的继承方式可以有公用继承、私有继承、爱护继承.60. 派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分.可编辑资料 - - - 欢迎下载精品_精品资料_二、挑选题1在一个 C+程序文件中, main()函数的位置D .A必需在开头B 必需在最终C必需在系统调用库函数后D可以任意2以下属于 C+合法的字符常量是C.A97BACtD03设 int x=10,x+=3+x%-3 ,就 x=A.A14B15C11D124以下运算符,不能重载为友元函数的是 A .A=、()、 、- B+、- 、+、-C、=D+=、-= 、*=、/= 5在 C+中,要实现动态联编,必需使用 D
9、调用虚函数A类名B派生类指针C对象名D基类指针6成员运算符 obj1obj2被 C+编译器说明为 D.A)operatorB)obj1,obj2C)obj2.operatorobj1D)obj1.operatorobj2 7在 C+中,用于实现运行时多态性的是B .A内联函数B虚函数C模板函数D重载函数8. 在以下函数原型中,可以作为类AA构造函数的是D.Avoid AA (int ).Bint AA ().CAA(int ) const . DAA(int ).9. 对于语句 coutxendl .中的各个组成部分,以下表达中错误选项 C .A“ cout ”是一个输出流对象B“ endl
10、”的作用是输出回车换行C“ =C:D/12. 函数调用语句 fun (a+b,3,max( n-1 ,b).中,实参的个数为 A A3B4C5D613如有说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a.,就数值为 9 的表达式是 B .A *p+9B *p+8C*p+=9D p+714有关虚函数的说法不正确选项 B .A只有类的成员函数才能说明为虚函数B静态成员函数可以是虚函数C构造函数不能是虚函数D析构函数可以是虚函数 15逗号表达式 a=4,b=6,a-,b-,a+b的值为 B .A9B8C10D6可编辑资料 - - - 欢迎下载精品_精品资料_16对于类中定义的
11、成员,其隐含拜访权限为 B .ApublicBprivateCstaticDprotected 17通常拷贝构造函数的参数是C .A)当前类的对象名B)当前类的对象的成员名C)当前类的对象的引用名D)当前类的对象的指针名 18声明一个类的对象时,系统自动调用一个函数.撤消对象时,系统自动调用一个函数.这两个函数分别为 C .A成员函数.构造函数B 复制构造函数.析构函数C构造函数.析构函数D析构函数.复制构造函数 19当一个派生类私有继承一个基类时,基类中的全部公有成员和爱护成员成为派生类的A_.Aprivate成员Bprotected成员 Cpublic成员D友元20. 在 C+中,要实现动
12、态联编,必需使用 D 调用虚函数A类名B派生类指针C对象名D基类指针21. 如一个类中含有纯虚函数,就该类称为 A .A抽象类B纯基类C派生类D基类22设 n=8,i=4,就赋值运算 n%=i+1执行后, n 的值是 B .A)0B) 3C)2D)123. C+语言是从早期的 C语言逐步进展演化而来的,与 C语言相比,它在求解问题方法上进行的最大改进是 D .A 面对过程B 复用性C 安全性D 面对对象24. 类的成员函数不包括 C .A构造函数B析构函数C友元函数D拷贝构造函数25以下字符串常量表示中, D 是错误的.A ”ABC0”B”OKt ”C” abcdn ”DABC26友元运算符
13、obj1obj2被 C+编译器说明为 A .A operatorobj1,obj2B obj1,obj2C obj2.operatorobj1D obj1.operatorobj2 27以下运算符中,在 C+语言中不能重载的是 C . A *B =C:D/ 28下面对友元函数描述正确选项 C .A友元函数的实现必需在类的内部定义B友元函数是类的成员函数C友元函数破坏了类的封装性和隐匿性D友元函数不能拜访类的私有成员29下面表达不正确选项 A .A) 基类的爱护成员在派生类中仍旧是爱护成员B) 基类的爱护成员在公有派生类中仍旧是爱护成员可编辑资料 - - - 欢迎下载精品_精品资料_C) 基类的
14、爱护成员在私有派生类中是私有成员D对基类成员的拜访必需是无二义性30. 考虑函数原型 void testint a,int b=7,char z=*,下面的函数调用中,属于不合法调用的是 C .A test5Btest5,8Ctest6,#Dtest0,0,*.31. 下面关于对象概念的描述中, D 是错误的.A. 对象代表着正在创建的系统中的一个实体B. 对象之间的信息传递是通过消息进行的C.对象是一个状态和操作 或方法 的封装体 D. 对象就是 C语言中的结构体变量32. 使用派生类的主要缘由是 B .A. 提高程序的运行效率 B. 提高代码的可重用性 C.加强类的封装性D. 实现数据的隐
15、匿33. 有关析构函数的说法不正确选项D .A. 析构函数有且只有一个B. 析构函数无任何函数类型C.析构函数没有形参D.析构函数的作用是在对象被撤消时收回从前安排的内存空间清理功能34. 通常拷贝构造函数的参数是 C .A. 某个对象名B. 某个对象的成员名C.某个对象的引用名 D.某个对象的指针名可编辑资料 - - - 欢迎下载精品_精品资料_35. 假如在基类中将 show声明为不带返回值的纯虚函数,正确的写法是A.virtual show=0.B.virtual void show. C.virtual void show=0.D.void show=0 virtual.36. 下面关
16、于友元的描述中,错误选项 D .A. 友元函数可以拜访该类的私有数据成员B. 一个类的友元类中的成员函数都是这个类的友元函数 C .可编辑资料 - - - 欢迎下载精品_精品资料_C. 友元可以提高程序的运行效率D.类与类之间的友元关系可以继承37. 在 C+中,B 运算符不能重载.A. +B.?:C.-D.39. 在声明类时,下面的说法正确选项 C .A. 可以在类的声明中给数据成员赋初值B. 数据成员的数据类型可以是 registerCPU中存放 C. private,public , protected可以按任意次序显现D. 没有用 private, public ,protected定
17、义的数据成员是公有成员40. 继承具有 B ,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员.A. 规律性B. 传递性C.重复性D.多样性41. 在多重继承中,公有派生和私有派生对于基类成员在派生类中的可拜访性与单继承可编辑资料 - - - 欢迎下载精品_精品资料_的规章A .A. 完全相同B. 完全不同C.部分相同,部分不同D.以上都不对42. 关于成员函数特点的下述描述中, A 是错误的.A. 成员函数肯定是内置函数B. 成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的43. 以下的各类函数中, C 不是类的成员函数.A. 构造函数B.
18、析构函数C.友元函数D.拷贝构造函数44. 模板的使用是为了 C .A. 加强类的封装性 B. 提高代码的运行效率C. 提高 代码 的可 重用 性D. 实现多态性45. 以下表示引用的方法中, D 是正确的.已知: int m=10 .A. float &t=&m. B.int &y=10.C.int &z.D. int &x=m .46. 在下面有关对构造函数的描述中,正确选项 A .A. 构造函数没有返回值B. 构造函数的名字与类名不完全相同 必需相同 C. 构造函数必需带有参数D.构造函数必需定义,不能默认47. 友元的作用之一是 D .A. 增加成员函数的种类B. 加强类的封装性C.实
19、现数据的隐匿性D.提高程序的运行效率48. 通常复制构造函数的参数是 C .A. 某个对象名B. 某个对象的成员名C.某个对象的引用名D.某个对象的指针名49. 以下运算符中, B 运算符在 C+中不能重载.A. +B.?:C.-D.=50. 以下关于运算符重载的描述中,C 是正确的.A. 运算符重载可以转变操作数的个数B. 运算符重载可以转变优先级C.运算符重载不行以转变语法结构D.运算符重载可以转变结合性51. 设有定义 int a.float f.double i.就表达式 10+a+i*f值的数据类型是 C .A. intB.floatC.doubleD.不确定52. 对虚函数的调用
20、D .A. 肯定使用动态联编B. 必需使用动态联编C.肯定使用静态联编D.不肯定使用动态联编53. 派生类的对象对它的基类 _A 是可以拜访的.A. 公有继承的公有成员B. 公有继承的私有成员C.公有继承的爱护成员D.私有继承的公有成员54. 类模板的使用实际上是将类模板实例化成一个详细的 A .可编辑资料 - - - 欢迎下载精品_精品资料_A. 类 模板类B. 对象C.函数D. 模板函数55. 以下关于 switch语句的描述中, A 是正确的.A. switch语句中 default子句可以没有,也可有一个B. switch语句中每个语句序列中必需有 break 语句C. switch语
21、句中 default子句只能放在最终D. switch语句中 case 子句后面的表达式只能是整型表达式56. 系统在调用重载函数时往往依据一些条件确定哪个重载函数被调用,在以下选项中,不能作为依据的是 D .A. 参数个数 B. 参数的类型C.函数名称 D. 函数的类型 即为函数返回值的数据类型 57. 在 int b3=1,3,2,4,5,6,0.中 b22的值是 C .A.0B.5C.6D.258. 以下字符串常量表示中, A 是错误的.A.” ”yes” No”B.” OK.” C.”abcdn ”D.”ABC0”可编辑资料 - - - 欢迎下载精品_精品资料_59. 在 C+中,关于
22、设置参数的默认值的描述中,正确选项A. 不答应设置参数的默认值B. 设置参数默认值只能在定义函数时设置C. 设置参数默认值时,应当是先设置右边的再设置左边的D.设置参数默认值时,应当全部参数都设置60. 有关类的说法中,不正确选项 D .A. 类是一种用户定义的数据类型B. 类中的成员函数才能存取类中的私有数据C. 在类中,假如不作特殊说明,所指的数据均为私有类型 C .可编辑资料 - - - 欢迎下载精品_精品资料_D. 在类中,假如不作特殊说明,所指的成员函数均为公有类型61. 有关类和对象的说法不正确选项C.A. 对象是类的一个实例 B. 任何一个对象只能属于一个详细的类C.一个类只能有
23、一个对象D. 类与对象的关系和数据类型与变量的关系相像62. 有关构造函数的说法不正确选项D .A. 构造函数名字和类的名字一样 B. 构造函数在说明类的某个对象时自动执行C.构造函数无任何函数类型 D.构造函数有且只有一个(构造函数可以重载)63. D不是构造函数的特点.A. 构造函数的函数名与类名相同B. 构造函数可以重载C.构造函数可以设置默认参数D.构造函数必需指定类型说明64._A 是析构函数的特点.A. 一个类中只能定义一个析构函数B. 析构函数名与类名不同可编辑资料 - - - 欢迎下载精品_精品资料_C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数三、读程序写结果
24、1. #include using namespace std.int a=1,3,5, 7, 9 .int & funint ireturn ai. int mainint i.fun3=12 .fori=0.i5 .i+coutai“”. / “”中间空 3 个格coutendl .systempause.return 0. 运行结果 :1351292. #include using namespace std. class Mpublic:可编辑资料 - - - 欢迎下载精品_精品资料_private:Mint a=0,int b=0 x=a. y=b. int getx return
25、x.int gety return y.int x,y. .可编辑资料 - - - 欢迎下载精品_精品资料_int main M op15,6 .int i,j .i=op1.getx.j=op1.gety. couti=i, j=jendl. systempause.return 0. 运行结果 :i=5,j=6可编辑资料 - - - 欢迎下载精品_精品资料_3.#include using namespace std. class Bookint num , price .public:Bookint a=0,int b=0num=a. price=b . void showMoneyco
26、utnum*priceendl. .int mainBook b=Book1, 2 ,Book3,6 ,Book8,9 .Book *p .int i.p=&b2 .fori=0.ishowMoney.72systempause.18 return 0. 运行结果 :24. #include using namespace std. int fint.int mainint i.fori=0.i5 .i+ coutfi . cout0 . i-k +=i.可编辑资料 - - - 欢迎下载精品_精品资料_return k. 运行结果 :2 5 11 215. #include using nam
27、espace std. class samplepublic: samplecoutConstructorendl. .void fnint istatic sample c. couti=iendl. int mainfn14. Constructor fn16 .14return 0. 运行结果: 16 6.#include using namespace std.int n=0.int &fint mn+=m. return n.int mainf5+=23 .coutn=nendl .return 0. 运行结果: 287. #include using namespace std.
28、int mainint num=327 . long p=1 .可编辑资料 - - - 欢迎下载精品_精品资料_dop*=num%1.0 num/=10.whilenum . coutp=pendl . return 0. 运行结果: p=428. #include using namespace std. int mainint a10=1,2,3,4,5,6,7, 8, 9 ,*p=a+6. cout*-pendl.*p+4+=7 .coutp4endl.6return 0. 运行结果: 79.#include #include class timerpublic:timer second
29、s=0. timerint t seconds=t.timerint min,int sec seconds=min*60+sec. int gettime return seconds.private:int seconds. .void maintimer a, b10 ,c1 , 10 . coutseconds1=a.gettimeendl. seconds=0 coutseconds2=b.gettimeendl. seconds=10 coutseconds3=c.gettimeendl. 运行结果 :seconds=70可编辑资料 - - - 欢迎下载精品_精品资料_10.#in
30、clude using namespace std. class Teststatic int count.public:Test+count. cout 对象数量 =countendl .Test-count.cout 对象数量 =countendl . .int Test:count=0. 对象数量 =1 void main对象数量 =2Test t3. 运行结果 :对象数量 =3对象数量 =211. #include 对象数量 =1 #include 对象数量 =0 using namespace std.class myclasspublic:myclasscoutsetw32. my
31、classchar ccoutsetw33.myclasscoutsetw34endl. .int mainmyclass a ,p1, *p2 . p2=new myclassX. delete p2. systempause.return 0. 运行结果 : 2 2 3 412. #include #include using namespace std. long sumint nlong s.ifn=1|n=2 s=2.else可编辑资料 - - - 欢迎下载精品_精品资料_s=n+sumn-1.return s. int mainlong x. x=sum4 . coutxendl
32、. systempause.return 0. 运行结果 :913. #include #define maxa ,b ab.a:b void mainint m1, n2 , p0 , q. q=maxm,n+p*10 . coutqendl .运行结果: 2014. #include #define N 5void fun.void mainforint i1.iN.i+ fun .void funstatic int a.int b2. 5couta+=3 , a+bendl .运行结果: 8 1115. #include 14 class pointpublic:pointint i,
33、 int jx=i .y=j void printcout x , y endl .可编辑资料 - - - 欢迎下载精品_精品资料_void operator+=pointpx+=p.x .y+=p.y . void operator-=pointpx-=p.x .y-=p.y . private:int x, y. .void mainpointp15,7 , p24 , 3 . p1.print.p2.print.p1+=p2. p1.print.p2-=p1.( 5 ,7)p2.print.(4 , 3)运行结果:(9, 10 )(-5 ,-7 )四、程序填空1. 下面的程序中定义抽象类
34、Base1,利用基类指针作函数形参调用虚函数,以实现动态联编.#include using namespace std.class Base1/基类 Base1 定义public:virtual void displayconst=0./ 纯虚函数(常成员函数)的定义 .class Base2:public Base1/基类 Base1 的公有派生类 Base2 定义public:void display const. .void Base2:display constcout Base2:display endl.class Derived:public Base2/派生类 Derived
35、公有继承 Base2public:void display const. .可编辑资料 - - - 欢迎下载精品_精品资料_void Derived:display constcout Derived:display display./ 用基类指针 ptr调用虚函数 display int mainBase2 base2 .Derived derived./ 定义 Derived 类对象fun&base2 ./ 用 Base2 对象的指针调用 fun 函数fun&derived.return 0.2. 下面程序的功能是定义类 sample,并输出其数据成员,请填空: #include usin
36、g namespace std.class sample/类的定义int m.static int n./ 定义整型静态数据成员n public:sampleint in+.m=i. void disp成员函数 disp 的函数首部coutm=mnn=nendl. .int sample:n=0./ 为整型静态数据成员 n 赋初值 0 int mainsample s13,s24 .s1.disp . s2.disp . return 0 .3. 下面程序的功能是重载后置自增1 运算符,以实现时钟对象增 1 操作.#include using namespace std. class Cloc
37、kpublic:Clockint h=0,int m=0 , int s=0:hourh ,minutem ,seconds void showTimeconst/常成员函数 showTime 的首部couthour ”: ”minute”: ”second=60second%=60. minute+ . if minute=60minute%=60.hour=hour+1%24 .return old./ 函数的返回值int main Clock myClock23 ,59, 59 . coutFirst time output: . myClock.showTime . coutShow
38、myClock+:.myClock+.showTime ./ 调用后置 +重载函数并输出增 1 之前的对象的数据成员值return 0.五、判定题1. 使用内联函数是以增大空间开销为代价的.2. C+语言中规定 : 函数返回值的数据类型是由定义函数规定的数据类型所打算的.3. 为了防止嵌套 if-else的二义性, C+语言规定: else 与其之前最近的未配对的if配对.4. 在 C+语言中,实参和与其对应的形参各占用独立的储备单元.5. 在类中,假如不作特殊说明,全部成员的拜访属性均为私有类型.6. C+程序中假如一个函数先被调用,后被定义,就应在主调函数中对被调函数进行原型声明.7. 假如在同一个源文件中,外部变量与局部变量同名,就在局部变量的作用范畴内,外部变量被“