《2021年面向对象程序设计习题及答案》由会员分享,可在线阅读,更多相关《2021年面向对象程序设计习题及答案(8页珍藏版)》请在金锄头文库上搜索。
1、.面对对象程序设计一、 挑选填空1 关于C与C语言的关系描述中,(D)是错误的;(A)C语言是C的一个子集(B)C语言与C是兼容的(C)C对C语言进行了一些改进(D)C和C语言都是面对对象的2 下面关于对象概念的描述中,(B)是错误的;(A)对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3 下面关于类概念的描述中,(D)是错误的;(A)类是抽象数据类型的实现(B)类是具有共同行为的如干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4 依据标识符的要求,(A)符号不能组成
2、标识符;(A)连接符(B)下划线(C)大小写字母(D)数字字符5 以下符号中,(C)不行作为分隔符;(A), (B) :(C)?(D);6 在16位机中,int型字宽为(A)字节;(A)2(B)4(C)6(D)87 类型修饰符unsigned修饰(D)类型是错误的;(A)char(B)int (C)long int(D)float8 对于int *pa5;的描述,(D)是正确的;(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa5表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个i
3、nt型指针;9 以下关于指针的运算中,(D)是非法的;(A) 两个指针在肯定条件下,可以进行相等或不等的运算;(B) 可以有一个空指针赋值给某个指针;(C) 一个指针可以加上一个整数;(D) 两个指针在肯定条件下,可以相加;10 指针可以用来表示数组元素,以下表示中(A)是错误的;已知:int a37;(A)*a+15 (B)*a+3(C)*a+1(D)*&a00+211 以下表示引用的方法中,(A)是正确的;已知: m=10;(A)int &x=m;(B)int &y=10;(C)int & z;(D)float &t=&m;12 以下各运算符中,(A)可以作用于浮点数;(A)+(B)%(C
4、)(D)&(与C语言不同,在C中+和-运算符可以作用于浮点数)13 当一个函数无返回值时,定义它其函数类型应是(A);(A)void(B)任意(C)int(D)无14 在函数说明时,以下(D)项是不必要的;(A)函数的类型(B)函数的参数类型和名字精品.(C)函数名字(D)返回值表达式15 以下的(D)是引用调用;(A)形参是指针,实参是地址值(B)形参和实参都是变量(C)形参是数组名,实参是数组名(D)形参是引用,实参是变量16 在C中,以下关于设置参数默认值的描述中,(B)是正确的;(A)不答应设置参数的默认值(B)设置参数默认值时,应按从右到左的次序进行(C)设置参数默认值时,应按从左到
5、右的次序进行(D)设置参数默认值时,应当全部参数都设置17 重载函数在调用时挑选的依据中,(D)是错误的;(A)参数个数(B)参数类型(C)函数名字(D)函数的返回值类型18 在一个函数中,要求通过函数调用来实现一个不太复杂的功能,并且要求加快执行速度,选用(A)最合适;(A)内联函数(B)重载函数(C)递归函数(D)嵌套调用19 采纳函数重载的目的在于(D)(A)实现共享(B)削减空间(C)提高速度(D)使用便利,提高可读性20 说明语句 “const char *ptr; ”中,ptr应当是(C);(A)指向字符常量的指针(B)指向字符的常量指针(C)指向字符串常量的指针(D)指向字符串的
6、常量指针21 在以下关键字中,用以说明类中公有成员的是(A);(A)public(B)private(C)protected(D)friend22 以下的种类函数中,(C)不是类的成员函数;(A)构造函数(B)析构函数(C)友元函数(D)拷贝构造函数23 作用域运算符的功能是(D);(A)标识作用域的级别(B)指出作用域的范畴(C)给定作用域的大小(D)标识某个成员是属于哪个类24 (B)是不行以作为该类的成员的;(A)自身类对象的指针(B)自身类的对象(C)自身类对象的引用(D)另一个类的对象25 (D)不是构造函数的特点;(A)构造函数的函数名与类名相同(B)构造函数可以重载(C)构造函数
7、可以设置缺省参数(D)构造必需指定类型说明26 (A)是析构函数的特点;(A)一个类中只能定义一个析构函数(B)析构函数名与类名不同(C)析构函数的定义只能在类体内(D)析构函数可以有一个或多个参数27 通常拷贝构造函数的参数是(C);(A)某个对象名(B)某个对象的成员名(C)某个对象的引用名(D)某个对象的指针名28 关于成员函数特点的下述描述中,(A)是错误的(A)成员函数肯定是内联函数(B)成员函数可以重载(C)成员函数可以设置缺省参数(D)成员函数可以是静态的29 下述静态数据成员的特点中,(D)是错误的;(A)说明静态数据成员时前边要加修饰符static(B)静态数据成员要在类外进
8、行初始化精品.(C)引用静态数据成员时,要在静态数据成员名前加和作用域运算符(D)静态数据成员不是全部对象共有的30 友元的作用是(A)(A)提高程序的运行效率(B)加强类的封装性(C)实现数据的隐匿(D)增加成员函数的种类31 已知类A中一个成员函数说明如下:void SetA &a;其中A &a的含义是(C);(A)指向类A的指针a(B)将a的地址赋给变量Set(C)a是类A对象的引用,用来作函数Set 的形参(D)变量A与a按位规律与,作为函数Set 的参数32 以下关于对象数组的描述中,(D)是错误的;(A)对象数组的下标是从0开头的(B)对象数组的数组名是一个常量指针(C)对象数组的
9、每个元素是同一个类的对象(D)对象数组只能赋初值,而不能被赋值 赋值格式:对象数组名行下标列下标 = 构造函数名实参表 ; 33 以下定义中,(B)是定义指向数组的指针p;(A)int *p5;(B)int *p5;(C)int *p5;(D)int *p ;34 已知:print函数是一个类的常const成员函数,它无返回值,以下表示中,(A)是正确的;(A)void print const;(B)const void print ;(C)void const print ;(D)void print const; this指针是一个常量指针,但也可以将它定义成指向常量的常量指针,其方法是在
10、定义成员函数时,或者在类中声明成员函数时,在函数头后面加上关键字const 35 关于new运算符的以下描述中,(D)是错误的;(A)它可以用来动态创建对象和对象数组(B)使用它创建的对象或对象数组应使用运算符delete删除(C)使用它创建对象时要调用构造函数(D)使用它创建对象数组时必需指定初始值 *指针变量名 = new 元素个数; 指针变量名下标 = 构造函数参数表; 36 关于delete运算符的以下描述中,(C)是错误的;(A)它必需用于new返回的指针(B)它也适用于空指针(C)对同一个动态对象可以多次使用该运算符(D)指针名前只用一对方括号符,不管所删除数组的维数37 具有转换
11、功能的构造函数,应当是(B);(A)不带参数的构造函数(B)带有一个参数的构造函数(C)带有两个以参数的构造函数(D)缺省构造函数38 以下对派生类的描述中,(D)是错误的;(A)一个派生类可以作另一个派生类的基类(B)派生类至少有一个基类(C)派生类的成员除了它自己的成员外,仍包含了其基类的成员(D)派生类中从基类继承的成员,其拜访权限保持不变39 派生类对象对基类有成员中(A)是可以拜访的;(A)公有继承的公有成员(B)公有继承的私有成员精品.(C)公有继承的爱护成员(D)私有继承的公有成员40 对基类和派生类的描述中,(B)是错误的;(A)派生类是基类的详细化(B)派生类是基类的子集(C
12、)派生类是基类定义的连续(D)派生类是基类的组合41 派生类构造函数的成员初始化列表中不能包含(C); (A)基类的构造函数(B)派生类中成员对象的初始化(C)基类成员对象的初始化(D)派生类中一般数据成员的初始化42 关于多继承二义性的描述中,(C)是错误的;(A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员进行拜访可能显现二义性;(B)解决二义性的最常用的方法是用“类名:”指定成员名所属类;(C)基类和派生类中显现的同名成员函数,也存在二义性问题;(D)一个派生类是从两个基类派生而来,而这两个基类又有一个共同的基类,对该基类的成员进行拜访时,也可能显现二义性;43 设置虚基
13、类的目的是(B);(A)简化程序(B)排除二义性(C)提高运行效率(D)削减目标代码44 在派生类对基类继承的传递性中,(C)是错误的;(A)在公有继承方式下,直接派生类对象可以直接调用基类中的公有成员函数,去拜访基类的私有数据成员;(B)在公有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去拜访基类的私有数据成员;(C)在私有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去拜访基类的私有数据成员;(D)不管是私有继承仍是公有继承,基类中的私有成员在派生类的作用域内都是不行见的;45 对定义重载函数的以下要求中,(D)是错误的;(A)要求参数的个数不同(B)要求参数
14、中至少有一个类型不同(C)要求参数个数相同,参数类型不同(D)要求函数的返回值不同46 以下函数中,(C)不能重载;(A)成员函数(B)非成员函数(C)析构函数(D)构造函数47 以下对重载函数的描述中,(A)是错误的;(A)重载函数中不答应使用缺省参数(B)重载函数中编译系统依据参数表进行挑选(C)不要使用重载函数来描述毫不相干的函数(D)构造函数重载将给初始化带来多种方式48 以下运算符中,(C)不能重载;(A)& (B) (C): (D)new49 以下关于运算符重载的描述中,(D)是正确的;(A)运算符重载可以转变运算量的个数(B)运算符重载可以转变优先级(C)运算符重载可以转变结合性(D)运算符重载不行以转变语法结构 50 运算符可以重载为(A)或(B