c++期末考试选择题整理_第1页
c++期末考试选择题整理_第2页
c++期末考试选择题整理_第3页
c++期末考试选择题整理_第4页
c++期末考试选择题整理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

苏州科技大学C + + 程 序 设 计选择题部分目录AASCII4B变量的基本要素4标识符4Cconst5c+与c语言的关系5c向c+的转变5c与c+的共性5抽象类6冲突解决6成员函数6拷贝构造函数7存储字节7D代码运行流程7多态8堆运算符8delete运算符8动态联编9Ffor循环9封装9返回类型10G构造函数10H函数重载11J继承12L类的概念13类(函数)模版13M面向对象14N内存分配14内联函数14new运算符15P派生类15Sstatic成员16数组17实参17私有数据成员18输入输出18Tthis指针18X虚基类19析构函数19虚函数20形参21Y友元函数21运算符重载22预处理23Z指针变量23指针运算25注释25作用域运算符25ASCII1、A的ASCII码为65,n为int型,执行 n =A+6-3;后,n的值为 B 。A)D B) 68 C) 不确定的值 D) 编译出错变量的基本要素1、 在C+ 中, 变量的三个基本要素是指:变量名、 变量类型 和 变量值 。标识符1、可用作C+语言用户标识符的一组标识符是( B)。A. void define +WORD B. a3_b3 _123 YNC. for -abc Case D. 2a DO sizeof2、按照标识符的要求,(A)符号不能组成标识符。 A. 连接符 B. 下划线 C.大小写字母 D. 数字字符3、下列变量名中,( A )是合法的。 A CHINA B byte-size C double D A+aconst1、在C+函数的形参前加const关键字,是为了提高函数的_C A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性c+与c语言的关系1、关于C+与C语言的关系的描述中,(D)是错误的。 A. C语言是C+的一个子集; B. C语言与C+是兼容的; C. C+对C语言进行了一些改进;D. C+和C语言都是面向对象的c向c+的转变1、C+对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符; B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型; D、引进了类和对象的概念;c与c+的共性1、 下列特性中, C 与 C+ 共有的是 ( D ) A、 继承 B、 封装 C、 多态性 D、 函数定义不能嵌套 2、 对于C/C+语言的函数,下列叙述中正确的是( A )。 A、 函数的定义不能嵌套,但函数调用可以嵌套 B、函数的定义可以嵌套,但函数调用不能嵌套 C、函数的定义和调用都不能嵌套 D、函数的定义和调用都可以嵌套3、 关于C+与C语言关系的描述中,( D )是错误的。 A、 C语言是C+语言的一个子集 B、 C语言与C+语言是兼容的 C、 C+语言对C语言进行了一些改进 D、 C+语言和C语言都是面向对象的抽象类1、 下列描述中,( D ) 是抽象类的特性。 A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。2、 关于纯虚函数和抽象类的描述中,( C )是错误的。 A、 纯虚函数是一种特殊的虚函数,它没有具体的实现; B、抽象类是指具有纯虚函数的类; C、一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类; D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。冲突解决1、 C+中解决命名冲突的机制是:D (A) 虚基类 (B) 虚函数 (C) 函数重载 (D) 名字空间成员函数1、 下列不是描述类的成员函数的是( C ) A、构造函数 B、析构函数 C、友元函数 D、拷贝构造函数2、 关于成员函数特征的下述描述中,( A )是错误的。 A、成员函数一定是内联函数;(注:可以是内联函数,也可以是外联函数)B、成员函数可以重载; C、成员函数可以设臵参数的缺省值; D、成员函数可以是静态的。3、 下面关于类的成员函数描述不正确的是:A (A) 静态成员函数内可以直接访问类的非静态成员数据 (B) 静态成员函数内可以直接访问类的静态成员数据 (C) 非静态成员函数可以直接访问类的非静态成员数据 (D) 非静态成员函数可以直接访问类的静态成员数据(全局成员)拷贝构造函数1、通常,拷贝构造函数的参数是(C ) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名2、假定AB为一个类,则( C )为该类的拷贝构造函数的原型说明。 A. AB(AB x); B. AB(int x); C. AB(AB& x); D. void AB(AB& x);3、类MyA的拷贝初始化构造函数是 ()A. MyA()B. MyA(MyA*)C. MyA(MyA&)D. MyA(MyA)答案:C解析:复制即拷贝构造函数使用对象的引用作形参,防止临时产生一个对象,A无参构造函数,B是指针作为形参,D项是对象,所以选择C项。存储字节1、存储以下数据,占用存储字节最多的是( D)。 A. 0 B. 0 C. “0” D. 0.0代码运行流程1、C+程序从上机到得到结果的几个操作步骤依次是( B )。 A. 编译、编辑、连接、运行 B. 编辑、编译、连接、运行 C. 编译、运行、编辑、连接 D. 编辑、运行、编辑、连接多态1、 实现运行时的多态性用( D ) A、重载函数 B、构造函数 C、析构函数 D、虚函数 2、所谓多态性是指 ()A. 不同的对象调用不同名称的函数B. 不同的对象调用相同名称的函数C. 一个对象调用不同名称的函数D. 一个对象调用不同名称的对象答案:B解析:多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数的不同调用不同的同名函数;动态多态性是指不同对象调用同名函数时,由于对象不同调用不同的同名函数。 多态性肯定具有相同的函数名,所以选择B项。3、有关多态性说法不正确的是()A. C+语言的多态性分为编译时的多态性和运行时的多态性B. 编译时的多态性可通过函数重载实现C. 运行时的多态性可通过模板和虚函数实现D. 实现运行时多态性的机制称为动态多态性答案:C解析:多态性分为静态的和动态的。静态通过函数的重载来实现,动态是通过基类指针或基类引用和虚函数来实现的。所以错误的是C项。堆运算符1、 关于堆运算符的下列描述中,( C )是错误的。 A、 使用堆运算符可以动态建立或删除对象; B、new运算符创建对象时要调用构造函数; C、可以在使用new创建数组时,为每个数组元素指定初始值; D、delete运算符可以作用于空指针;delete运算符1、 关于delete运算符的下列描述中,( C )是错的。 A、 它必须用于new返回的指针; B、它也适用于空指针; C、对一个指针可以使用多次该运算符;D、指针名前只用一对方括号符,不管所删除数组的维数。动态联编1、 关于动态联编的下列描述中,( D )是错误的。 A、动态联编是以虚函数为基础的; B、动态联编是在运行时确定所调用的函数代码的; C、动态联编调用函数操作是指向对象的指针或对象引用; D、动态联编是在编译时确定操作函数的for循环1、对 for( 表达式1 ; ;表达式3 ) 可理解为 B 。A)for( 表达式1 ;0 ;表达式3 )B)for( 表达式1 ;1 ;表达式3 )C)for( 表达式1 ;表达式1 ;表达式3 )D)for( 表达式1 ;表达式3 ;表达式3 )封装1、关于封装,下列说法中不正确的是(D )。 A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体 B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C. 通过封装,每个对象都成为相对独立的实体 D. 通过封装,对象的属性都是不可见的2、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)。A.类 B.对象 C.函数体 D.数据块3、在 C+ 中实现封装是借助于 ( B ) A、 枚举 B、 类 C、 数组 D、 函数 返回类型1、决定C+语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D构造函数1、下列关于构造函数的论述中,不正确的是_C A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载2、下面有关构造函数的描述中,正确的是(B )。 A. 构造函数可以带有返回值 B. 构造函数的名字与类名完全相同 C. 构造函数必须带有参数 D. 构造函数必须定义,不能缺省3、构造函数是在(B )时被执行的。 A. 程序编译 B. 创建对象 C. 创建类 D. 程序装入内存4、假定AB为一个类,则执行AB x;语句时将自动调用该类的( B ) A、有参构造函数 B、无参构造函数 C、拷贝构造函数 D、赋值重载函数 5、 构造函数不具备的特征的是 ( D ) A、 构造函数的函数名与类名相同 B、 构造函数可以重载 C、 构造函数可以设臵默认参数 D、 构造函数必须指定类型说明 6、 具有转换函数功能的构造函数,应该是( B )。 A、 不带参数的构造函数; B、带有一个参数的构造函数; C、带有两个以上参数的构造函数; D、缺省构造函数。7、假定AB为一个类,则执行“AB a(2), b3,*p4;”语句时调用该类构造函数的次数为()A. 3B. 4C. 5D. 9答案:B解析:a(2)调用1次带参数的构造函数,b3调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数。所以共调用构造函数的次数为4。8、假定一个类的构造函数为“A(int i=4, int j=0) a=i;b=j;”, 则执行“A x (1);”语句后,x.a和x.b的值分别为()A. 1和0B. 1和4C. 4和0D. 4和1答案:A解析:带默认的构造函数,对应实参没有值时就采用形参值。调用构造函数时,i=1,不采用默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择A项。函数重载1、函数重载的目的是_B A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间2、不能作为函数重载判断的依据的是(B ) A.返回类型 B. const C.参数个数 D. 参数类型3、 系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( D ) A 、参数个数 B、 参数的类型 C、 函数名称 D、函数的类型 4、 下列对重载函数的描述中,( A )是错误的。 A、重载函数中不允许使用缺省参数; /注:可以使用,但要求不存在二义性。 B、重载函数中编译系统根据参数表进行选择; C、不要使用重载函数来描述毫无相干的函数; D、构造函数重载将会给初始化带来多种方式。5、下列有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数参数个数必须相同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同答案:C解析:函数的重载必须函数名相同而形参类型或个数不同,与返回值无关。继承1、在C+中继承方式有几中( C ) A. 1 B. 2 C. 3 D. 42、 继承的情况下,基类成员在派生类中的访问权限( A ) A、 受限制 B、保持不变 C、受保护 D、不受保护 3、 C+类体系中,不能被派生类继承的有( B ) A、 转换函数 B、构造函数 C、虚函数 D、静态成员函数 4、 在C+中,数据封装要解决的问题是( D ) A、数据规范化排列 B、数据高速转换 C、避免数据丢失 D、切断了不同模块之间的数据的非法使用 5、 继承机制的作用是 ( C ) A、 信息隐藏 B、 数据封装 C、 定义新类 D、 数据抽象 6、 关于多继承二义性的描述中,( C )是错的。 A、一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性; B、解决二义性的最常用的方法是对成员名的限定法; C、基类和派生类中同时出现的同名函数,也存在二义性问题; D、一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性。类的概念1、在下列关于类概念的各描述中, A 是错误的。A)类就是C语言中的结构体类型;B)类是具有共同行为的若干对象的统一描述体;C)类是创建对象的样板;D)类是抽象数据类型的实现。2、类是逻辑上相关的 函数 与数据的封装。特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的 继承 。3、 下面有关类说法不正确的是( C ) A、一个类可以有多个构造函数 B、一个类只有一个析构函数 C、析构函数需要指定参数 D、在一个类中可以说明具有类类型的数据成员类(函数)模版1、 类模板的使用实际上是将类模板实例化成一个具体的( A ) A、 类 B、对象 C、函数 D、模板类 2、实现两个相同类型数加法的函数模板的声明是()A. add(T x,T y)B. T add(x,y)C. T add(T x,y)D. T add(T x,T y)答案:D解析:实现两个相同类型数加法结果应该和操作数具有相同类型。进行加法运算后结果也是和参数具有相同类型,需要返回值。A无返回值时要用void,B形参无类型,C形参y没有类型,所以选择D项。面向对象1、_不是属于面向对象程序设计的特性B A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性内存分配1、动态内存分配的主要目的是_B A. 使程序按动态联编方式运行 B. 正确合理的使用内存C. 提高程序的运行速度 D. 提高程序的可维护性内联函数1、 一个函数功能不太复杂,但要求被频繁调用,选用( A ) A、内联函数 B、重载函数 C、递归函数 D、嵌套函数 2、 在 ( C ) 情况下适宜采用 inline 定义内联函数。 A、 函数体含有循环语句 B、 函数体含有递归语句 C、 函数代码少、频繁调用 D、 函数代码多、不常调用3、一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ()A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数答案:A解析:内联函数特征代码少,频繁调用,执行效率高。重载函数解决统一接口的问题;递归是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁。嵌套函数即反复调用,速度较慢。所以选择A项。new运算符1、 关于new运算符的下列描述中,( D )是错误的。 A、 它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值; 派生类1、使用派生类的主要原因是( A ) A. 提高代码的可重用性 B. 提高程序的运行效率 C. 加强类的封装性 D. 实现数据的隐藏2、假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是( D ) A. class derived :student private /. B. class derived :student public /. C. class derived :public student /. D. class derived :private student /.3、派生类的对象对它的基类成员中(A)是可以访问的。 A.公有继承的公有成员; B.公有继承的私有成员; C.公有继承的保护成员; D.私有继承的公有成员。4、可以用 p.a 的形式访问派生类对象 p 的基类成员 a ,其中 a 是 ( D ) A、 私有继承的公有成员 B、 公有继承的私有成员 C、 公有继承的保护成员 D、 公有继承的公有成员 5、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( C ) A、 派生类的对象可以赋给基类的对象 B、 派生类的对象可以初始化基类的引用 C、 派生类的对象可以直接访问基类中的成员 D、 派生类的对象的地址可以赋给指向基类的指针 6、下列对派生类的描述中,( D )是错的。 A、 一个派生类可以作另一个派生类的基类; B、派生类至少有一个基类; C、派生类的成员除了它自己的成员外,还包含了它的基类的成员; D、派生类中继承的基类成员的访问权限到派生类保持不变。7、 对基类和派生类的关系描述中,( B )是错的。 A、派生类是基类的具体化; B、派生类是基类的子集; C、派生类是基类定义的延续; D、派生类是基类的组合。8、 派生类的构造函数的成员初始化列中,不能包含( C )。 A、 基类的构造函数; /用于基类子对象的构造(初始化) B、派生类中子对象的初始化; C、基类的子对象初始化; /基类子对象的初始化,可以! D、派生类中一般数据成员的初始化。static成员1、下列静态数据成员特性中, D 是错误的。A) 说明静态数据成员时前边要加修饰符static;B) 静态数据成员要在类体外进行初始化;C) 引用静态数据成员时,要在静态数据成员名前加和作用域分辨符;D) 静态数据成员不是所有对象共有的。2、下面有关静态成员函数的描述中,正确的是( B ) A. 在静态成员函数中可以使用this指针 B. 在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义是,要用static前缀 D. 静态成员函数只能在类外定义、3、下面对静态数据成员的描述中,正确的是(C ) A 类的不同对象有不同的静态数据成员值 B 类的每个对象都有自己的静态数据成员 C静态数据成员是类的所有对象共享的数据 D 静态数据成员不能通过类的对象调用、4、静态成员函数不能说明为( ) A、 整型函数 B、浮点函数 C、虚函数 D、字符型函数 5、 静态成员函数没有 ( B ) A、 返回值 B、this 指针 C、 指针参数 D、 返回类型 6、 静态成员函数仅能访问( D )。 A、静态的数据成员 B、非静态的成员函数 C、非静态的数据成员 D、以上都不对 数组1、 下列关于对象数组的描述中,( D )是错的。 A、 对象数组的下标是从0开始的; B、对象数组的数组名是一个常量指针: C、对象数组的每个元素是同一个类的对象; D、对象数组只能赋初值,而不能被赋值。2、 下列定义中,( B )是定义指向数组的指针p。 A、 int *p5; /指针数组 B、int(*p)5;/行数组指针 C、(int*)p5; D、int *p; /指针数组实参1、 下面哪种定义方式是正确的,并且使得p可以作为函数void f( A* const pp);的实参:A (A) A * p = new A; (B) A a; A* p = a; (C) const A* p = new A; (D) A a; const A* p = a;2、使用地址作为实参传给形参,下列说法正确的是()A. 实参是形参的备份B. 实参与形参无联系C. 形参是实参的备份D. 实参与形参是同一对象答案:D解析:地址作为实参,表示实参与形参代表同一个对象。如果实参是数值,形参也是普通变量,此时形参是实参的备份。所以选择D项。私有数据成员1、 下面关于访问类A的私有数据成员的说法,错误的是: C (A) 类A的友元函数可以访问类A的私有成员。 (B) 类A的友元类中的非静态成员函数可以访问类A的私有成员。 (C) 类A的嵌套类中的非静态成员函数可以访问类A的私有成员。 (D) 类A中的非静态成员函数可以访问类A的私有成员。输入输出1、在C+中,使用流进行输入输出,其中用于屏幕输入()A. cinB. cerrC. coutD. clog答案:A解析:(1)标准输入流cin:istream类的对象。(2)标准输出流cout:ostream类的对象。(3)非缓冲型标准出错流cerr:ostream类的对象。(4)缓冲型标准出错流clog:ostream类的对象this指针1、 下列关于this指针的说法,哪个是正确的: D (A) this指针一定指向常量型数据 (B) this指向的数据不可更改 (C) 静态成员函数中也可以访问this指针 (D) this指针本身可直接作为成员函数的返回值 2、关于this指针使用说法正确的是()A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B. 保证基类私有成员在子类中可以被访问。C. 保证基类保护成员在子类中可以被访问。D. 保证基类公有成员在子类中可以被访问。答案:A解析:this指针是隐藏的,可以使用该指针来访问调用对象中的数据。基类的成员在派生类中能否访问,与继承方式有关,与this没有关系。所以选择A项。3、this指针存在的目的是()A. 保证基类私有成员在子类中可以被访问B. 保证基类保护成员在子类中可以被访问C. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码D. 保证基类公有成员在子类中可以被访问答案:C解析:C+要求函数在被调用之前,应当让编译器知道该函数的原型,以便编译器利用函数原型提供的信息去检查调用的合法性,强制参数转换成为适当类型,保证参数的正确传递。对于标准库函数,其声明在头文件中,可以用#include宏命令包含这些原型文件;对于用户自定义函数,先定义、后调用的函数可以不用声明,但后定义、先调用的函数必须声明。一般为增加程序的可理解性,常将主函数放在程序开头,这样需要在主函数前对其所调用的函数一一进行声明,以消除函数所在位置的影响。所以选择C项。虚基类1、设置虚基类的目的是_D A. 简化程序 B. 使程序按动态联编方式运行 C. 提高程序运行效率 D. 消除二义性析构函数1、 对于任意一个类,析构函数的个数最多为 ( B ) A、0 B、1 C、2 D、3 2、 ( D )是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数;3、 类的析构函数的作用是 ( D ) A、 一般成员函数 B、类的初始化 C、对象的初始化 D、删除对象 4、 类的析构函数是在 ( C ) 调用的。 A、 类创建时 B、 创建对象时 C、 删除对象时 D、 不自动调用5、 定义析构函数时,应该注意 ( C ) 。 A、 其名与类名完全相同 B、 返回类型是 void 类型 C、 无形参,也不可重载 D、 函数体中必须有 delete 语句虚函数1、 通过( A )调用虚函数时,采用动态束定。 A、 对象指针 B、对象名 C、成员名限定 D、派生类名2、 如果一个类至少有一个纯虚函数,那么就称该类为( A ) A 抽象类 B 虚基类 C 派生类 D 以上都不对3、 在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。 A、参数类型 B、参数名字 C、操作内容 D、赋值 4、 关于虚函数的描述中,( C )是正确的。 A、 虚函数是一个static类型的成员函数 B、虚函数是一个非成员函数 C、基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数 D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型5、 若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则: C (A) 类A不能有静态数据成员 (B) 类A中公有的成员函数一定是虚的 (C) 类A中至少有一个成员函数是虚的 (D) 类A的析构函数一定是虚的6、 以下基类中的成员函数表示纯虚函数的是()A. virtual void tt()=0B. void tt(int)=0C. virtual void tt(int)D. virtual void tt(int)答案:A解析:当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,实现由派生类完成。格式:virtual()=0;。形参1、在函数定义中的形参属于()A. 全局变量B. 局部变量C. 静态变量D. 寄存器变量答案:B解析:形参或函数中定义的变量都是局部变量。在函数外定义的变量是全局变量。形参只能用局部变量,频繁使用的变量可以声明为寄存器变量,形参不能使用静态变量或寄存器变量。2、C+语言中所有在函数中定义的变量,连同形式参数,都属于()A. 全局变量B. 局部变量C. 静态变量D. 函数答案:B解析:变量存储类可分为两类:全局变量和局部变量。(1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变量的位置开始到源程序结束。使用全局变量降低了程序的可理解性,软件工程学提倡尽量避免使用全局变量。(2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变量的位置开始到函数结束。局部变量包含自动变量(auto)静态变量(static)以及函数参数。形参不能是静态的。所以选择B项。友元函数1、友元函数_BA. 可以被声明为const B. 没有this指针C. 可以用类名或对象名来调用 D. 只能用对象名来调用2、下面有关友员函数的描述中,真确的说法是(A ) A. 友员函数是独立于当前类的外部函数 B. 一个友员函数不可以同时定义为两个类的友员函数 C. 友员函数必须在类的外部进行定义 D. 在类的外部定义友员函数时必须加上friend关键字3、友员的作用之一是( A ) A. 提高程序的运行效率 B. 加强类的封装 C. 实现数据的隐蔽性 D. 增加成员函数的种类4、 友元关系不能 ( A ) A、 继承 B、 是类与类的关系 C、 是一个类的成员函数与另一个类的关系 D、 提高程序的运行效率5、 如果类 A 被说明成类 B 的友元,则 ( D ) A、 类 A 的成员即类 B 的成员 B、类 B 的成员即类 A 的成员 C、 类 A 的成员函数不得访问类B的成员 D、类 B 不一定是类 A 的友元6、已知类A是类B的友元,类B是类C的友元,则()A. 类A一定是类C的友元B. 类C一定是类A的友元C. 类C的成员函数可以访问类B的对象的任何成员D. 类A的成员函数可以访问类B的对象的任何成员答案:C解析:友元说明方法如下:friend?;/友元类类名使用友元可以访问所有成员:(1)友元关系不能被继承。(2)友元关系是单向的,不具有交换性。所以,B项和D项错误。(3)友元关系不具有传递性。所以,A项错误。运算符重载1、关于运算符重载的不正确的描述是_A A. 运算符重载函数是友元函数 B. 体现了程序设计的多态性 C. 增加新的运算符 D. 使运算符能对对象操作2、 下列关于运算符重载的描述中,( D )是正确的。 A、 运算符重载可以改变操作数的个数; B、运算符重载可以改变优先级; C、运算符重载可以改变结合性; D、运算符重载不可以改变语法结构。3、 运算符重载函数不可以是( D )。 A、成员函数; B、友元函数; C、内联函数; D、带缺省参数的函数。预处理1、预处理命令在程序中都是以( B )符号开头的。 A. * B. # C. & D. 指针变量1、若有定义 int a=3, *p=&a ;则 *p的值是 B 。A)常量a的地址值 B)3 C)变量p的地址值 D)无意义 2、若有定义:int x , *p ; 则正确的赋值表达式是 D 。A) *p=*x B) *p=&x C) p=x D) p=&x 3、 要禁止修改指针 p 本身,又要禁止修改 p 所指向的数据,这样的指针应定义为 ( D ) A、const char *p= “ ABCD ”; B、char const *p= “ ABCD ”; C、char *const p= “ ABCD ”; D、const char * const p= “ ABCD ”;4、 下列关于指针的操作中,错误的是 ( D ) A、 两个同类型的指针可以进行比较运算 B、 可以用一个空指针赋给某个指针 C、 一个指针可以加上两个整数之差 D、 两个同类型的指针可以相加 5、 已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( B )是正确的。 A、 pf1; B、pA:f1;C、pA:f1();D、pf1();6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论