《C++复习题与答案.doc》由会员分享,可在线阅读,更多相关《C++复习题与答案.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、优质文本一、选择题1、关于与C语言关系的描述中,D 是错误的。A C语言是语言的一个子集 B C语言与语言是兼容的C 语言对C语言进行了一些改进 D 语言和C语言都是面向对象的2、以下说法中不正确的选项是 C。A 对象是类的一个实例B 任何一个对象只能属于一个类C 一个类只能有一个对象D 类与对象间的关系和数据类型与变量间关系相类似3、当将一个类A或函数f( )说明为另一个类B的友元后,类A或函数f( )能够直接访问类B的( D )。 A 只能是公有成员 B 只能是保护成员C 只能是除私有成员之外的任何成员D 任何权限的成员4、B 是析构函数的特征。 A 析构函数在对象创立时调用 B 一个类中
2、只能定义一个析构函数 C 析构函数的定义只能在类体内 D 析构函数可以有一个或多个参数5、要声明一个有10个型元素的数组,正确的语句是A A a10B a2,5C aD *a106、如果变量已经正确定义,以下语句哪一项不能正确将的值进行交换 D。A B C D 7、假定为一个类,a为该类私有的数据成员,()为该类公有函数成员,它返回a的值,x为该类的一个对象,那么访问x对象中数据成员a的格式为 D。A B ()C ()D ()8、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用 A。A 内联函数B 重载函数C 递归调用D 嵌套调用9、设 *; 以下正确的语句是 C
3、A *10 B C *p D 2*110、静态数据成员的初始化必须在B 。A 类内B 类外C 在构造函数内D 静态成员函数内11、当一个函数无返回值时,定义它的函数类型应是A 。A B C 任意D 无12、在以下关键字中,用于说明类中公有成员的是A。A B C D 13、程序的执行总是从哪里开始的B 。A 第一行B ( )函数C 头文件D 注释14、D不是构造函数的特征。A 构造函数的函数名与类名相同B 构造函数可以重载C 构造函数可以设置缺省参数D 构造函数必须指定类型说明15、面向对象方法的多态性是指C 。 A 一个类可以派生出多个特殊类B 一个对象在不同的运行环境中可以有不同的变体C 针
4、对同一消息,不同的对象可以以适合自身的方式加以响应D 一个对象可以是由多个其他对象组合而成的16、按照标识符定义的要求,C 符号不能组成标识符。A 大小写字母B 下划线C 连接符D 数字字符17、假设类X是类Y的友元类,那么以下哪种访问关系是正确的B 。 A 类X的成员不能访问类Y的私有成员B 类X的成员可以访问类Y的私有成员C 类Y的成员可以访问类X的私有成员D 只有类Y的公共成员才能访问类X的私有成员18、如果编程者没有显式定义构造函数包括复制构造函数,编译器就 D。A 出现编译错误B 没有构造函数C 必须显示定义D 隐式定义缺省的构造函数19、关于成员函数特征的下述描述中,哪个是错误的
5、A。A 成员函数一定是内联函数B 成员函数可以重载C 成员函数可以设置参数的缺省值D 成员函数可以是静态的20、静态成员函数仅能访问A 。A 静态的数据成员B 非静态的数据成员C 非静态的成员函数D 以上都不对21、以下不正确的标识符是D 。A B C D 22、抽象类是A 。 A 不可以定义对象B 可以定义对象C 不可以派生新类D 不可以输出23、在中,一个虚函数是通过以下哪个关键字放在其基类说明的前面来加以说明的A 。A B C D 24、在定义 a54;之后,对a的引用正确的选项是 C。A a24B a50C a00D a0,025、在一个类的定义中,包含对什么成员的定义C 。 A 数据
6、B 函数C 数据和函数D 数据或函数26、在计算机上可以直接运行的程序是D 。A 源程序B 高级语言程序C 汇编语言程序D 机器语言程序27、下面描述中,表达错误的选项是 B 。 A公有继承时基类中的成员在派生类中仍是的 B公有继承时基类中的成员在派生类中仍是的 C公有继承时基类中的成员在派生类中仍是的 D私有继承时基类中的成员在派生类中是的28、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用A 。A 内联函数B 重载函数C 递归调用D 嵌套调用29、以下对派生类的描述中,错误的选项是D 。A一个派生类可以作另一个派生类的基类B派生类至少有一个基类C派生类的成员
7、除了它自己的成员外,还包含了它的基类的成员D派生类中继承的基类成员的访问权限到派生类保持不变30、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为D 。 A 基类、自己所属类、对象成员所属类B 自己所属类、对象成员所属类、基类C 对象成员所属类、基类、自己所属类D 基类、对象成员所属类、自己所属类二、填空题1、在中,有一种不能定义对象的类,这样的类只能被继承,称之为抽象类,定义该类至少具有一个纯虚函数。2、在中,用数组、指针和引用作为函数参数,能够将参数值带回。3、如果类A继承了类B,那么类A称为派生类或子类,类B称为基类或父类。4、面向对象程序设计有四大特征,它们是抽象、
8、封装、继承、多态。5、中可以有许多相同名称,但参数类型或个数不同的成员函数,称为函数重载。6、请写出与数学表达式5/9(32)相对应的表达式5.0/9.0*(32)。7、构造函数是对象被创立时自动执行。一个类有可以多个构造函数,可以有一个析构函数。8、动态关联需要满足的两个条件,它们是所调用的函数是虚函数,用指针或引用调用该虚函数。9、类的成员的访问权限有、和三种。10、x *= 8等价于*(8)。11、类的静态成员分为静态数据成员和静态成员函数。12、友元可以是友元函数,也可以是友元类。13、声明类的静态成员用关键字,声明类的友元函数用关键字。14、在中,一个派生类可以从一个基类派生称为单继
9、承;也可以从多个基类派生,称为多重继承。无论按哪种方式继承,基类的私有成员在派生类中始终是不可访问的。15、在中,定义重载函数时,应至少使重载函数的参数个数或参数类型不同;在基类和派生类中,成员函数的覆盖是指派生类中的函数覆盖了基类中的同名函数。16、类作用域运算符“:的作用用来指明哪个函数属于哪个类或哪个数据属于哪个类。17、面向对象方法的多态性是指针对同一消息,不同的对象可以以适合自身的方式加以响应。多态的实现分为两类编译时多态和运行时多态或 静态多态; 动态多态。18、类的静态数据成员是类的所有对象共享的成员。19、假设需要把一个函数“ ( )定义为一个类A的友元函数,那么应在类A的定义
10、中参加一条语句: ()。20、请写出与数学表达式4/3R3相对应的表达式4.0/3*3.14*R*R*R。21、在中,函数参数的两种传递方式分别是 值 传递和 地址 传递。22、一个 类 和 对象 的关系,正如根本数据类型与该类型的变量一样,如 x;。23、在一个类中定义常数据成员用关键字,定义静态数据成员用关键字。24、在中,为对象申请空间时用,而撤消对象时释放内存空间那么用。25、在私有继承关系下,基类的公有成员和保护成员将成为派生类中的私有成员,它们只能由派生类的成员函数来访问;基类的私有成员对于派生类而言是不可访问。三、判断题1. 类中所提供的成员函数可以直接访问私有成员。T 2. 字
11、符串是用单引号括起来的假设干字符。F3. 构造函数和析构函数都不能重载。F4. 静态成员变量每个对象都有一份拷贝。F5. 子类可以改造从父类继承的成员。T6. 说明或定义对象时,类名前不需加关键字。T7. 运算符重载就是赋予尚未有的运算符多种运算的功能。F8. 使用关键字定义的类中缺省的访问权限是公有的。F9. 显式类型转换可以把一个变量转换成另外一种数据类型。T10. 友元函数的声明不受访问区域的影响。T11、构造函数和析构函数都可以重载。F12、的源程序可以直接在计算机上运行。F13、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。F14、类的私有成员只能被类中的成员函数访问
12、,任何类以外的函数对它们的访问都是非法的。F15、字符串是用双引号括起来的一个或多个字符。T16、子类可以继承父类的所有成员。F17、抽象类不可以继承,只能派生。F18、使用申请的内存,在程序执行结束时,必须使用释放。T19、在不同的继承方式下,对于基类的私有成员,都必须通过基类的成员函数来访问。T20、多态的实现分为两类:编译时的多态和运行时的多态。T21、发生函数调用时,只能把实参的值传递给形参。F22、类A是类B的友元,那么类B一定是类A的友元。F23、a*b是合法的标识符。F24、可以在类的构造函数中对静态数据成员进行初始化。F 25、和区别在于:成员可以被派生类访问,而成员那么不能被
13、派生类访问。T26、构造函数和析构函数都可以重载。F27、使用关键字定义的类中缺省访问权限是私有的。T28、成员运算符描述的是对象和成员之间的关系。T29、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用函数重载。F30、如果有以下定义, 10,*; 那么变量的值为10。F四、阅读程序写结果1、 ; ( y) x; ( ) ;()=(); 0;2、 ; () ;a ;.; 0;3、 ; A: x; y;:A( b); ()x;y; ()A a(-510);(); 0;4、 ; ( x, y); ( x, y, z); ( x, y); ( x, y, z); ()(12, 52
14、);(21, 5, 37);(11.2, 5.0, 17.5); 0; ( x, y) ; ( x, y, z) ; ( x, y) ; ( x, y, z) ;5、 ; : (); (); : ; ; ; ;( ) ; ; ; () (*); () Box 1(12,25,30); 1 1(); Box 2(15,30,21); 2 2(); 0; 6、 ; : x; y;:( b); () x; () y; : r;:( c)(); () r; () 3.14159*r*r; () c(15,20,10);圆心为:(),();半径为:();面积为:(); 0;7、 ; A : A() A;
15、 () A ; A : B() B ; () B; () B b; 0;五、编写程序1、设计一个程序,用内联函数实现求出三个整数中的最小值,并输出。2、定义一个求两个整数中较大值的函数( ),要求定义成内联函数,然后在( )函数中进行调用。3、类的定义如下,请实现该类,并创立对象,然后使用构造函数为赋予初始值内容自定。 : ; ; ; ;:( ); ();4、实现一个类A,在A中有两个私有整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数取得a的值和取b的值。实现类B从A继承,覆盖,使其返回a的2倍。5、建立一个名为的类,该类有以下几个私有成员变量:教师姓名、工资号、性别、年龄。还
16、有以下两个成员变量:一个用于初始化教师姓名、工资号、性别和年龄的构造函数,一个用于输出教师信息的函数。编写一个主函数,声明一个教师对象,然后调用成员函数在屏幕输出教师信息。阅读程序写结果1、()=20.52、 a .3、5104、646333.75、 1 9000 2 94506、圆心为:(15,20)半径为:10面积为:314.1597、 A B B A编写程序1、 ; ( a, b, c) (ab) ; (ac) ; a; () ; :abc;(); :m; 0;2、 ; ( y)( x); () 10.520.7;();较大值=t; 0;3、 ; : ; ; ; ;:( ); ();( ); ();姓名:;年龄:;工资:; :; () (张三,25,850,45678912);();4、 A a; b; :A( n)(m)(n) () a; () b; ; B A :B( n)() () ()*2; ; ()B b(2,2); (); 5、 ; : ; ; ; ; :( a); ()姓名=学号=;(fF)性别是女性;性别是男性;年龄=; ; () A(,1101,F,20); (); 0;