收藏 分享(赏)

C选择题汇总_题库.doc

上传人:kpmy5893 文档编号:7329345 上传时间:2019-05-15 格式:DOC 页数:28 大小:138KB
下载 相关 举报
C选择题汇总_题库.doc_第1页
第1页 / 共28页
C选择题汇总_题库.doc_第2页
第2页 / 共28页
C选择题汇总_题库.doc_第3页
第3页 / 共28页
C选择题汇总_题库.doc_第4页
第4页 / 共28页
C选择题汇总_题库.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、一二章1.下列 C+标点符号中表示行注释开始的是 C 。A)# B); C)/ D)2.下列字符串中可以用作 C+标示符的是 A 。A)_256 B)class C)delete D)5char3.下列关于 C+函数的描述中正确的是 C 。A)主函数是程序的入口,它是由用户定义的函数调用。B)函数是 C+中面向对象程序设计框架的基本组成元素。C)函数在调用前必须先被声明。 D)每个用户定义函数只能被其他函数调用一次。4.下列关于 C+关键字的说法中正确的是 D 。A)关键字是用户为程序中各种需要命名的“元素”所起的名字。B)关键字是对程序中的数据进行操作的一类单词。C)关键字是在程序中起分割内

2、容和界定范围作用的一类单词。D)关键字是 C+中预先定义并实现一定功能的一类单词。5.每个 C+程序都必须有且仅有一个 B 。A)预处理命令 B)主函数 C)函数 D)语句6.下面关于对象概念的描述中, A 是错误的。A)对象就是 C 语言中的结构变量 B)对象代表着正在创建的系统中的一个实体C)对象是一个状态和操作(或方法)的封装体 D)对象之间的信息传递是通过消息进行的7.C+对 C 语言做了很多改进,下列描述中 D 使得 C 语言发生了质变,即从面向过程变成面向对象。A)增加了一些新的运算符 B)允许函数重载,并允许设置默认参数 C)规定函数说明必须用原型 D)引进类和对象的概念8.下面

3、关于类概念的描述中, D 是错误的。A)类是抽象数据类型的实现 B)类是具有共同行为的若干对象的统一描述体C)类是创建对象的样板 D)类就是 C 语言中的结构体类型9.C+语言是以 B 语言为基础逐渐发展而演变而成的一种程序设计语言。A)Pascal B)C C)Basic D)Simula6710.C+语言中规定函数的返回值的类型是由 D 。A)return 语句中的表达式类型所决定的 B)调用该函数式的主调用函数类型所决定的C)调用该函数式系统临时确定的 D)在定义该函数式所指的数据类型所决定的11.下列关于 C+与 C 语言关系的描述中错误的是 C 。A)C+是 C 语言的超集 B)C+

4、是 C 语言进行了扩充C)C+和 C 语言都是面向对象的程序设计语言 D)C+包含 C 语言的全部语法特征12.下列字符串中可以用做 C+标示符的是 A 。A) _521 B)computer1 C)case D)3var13.面向对象程序设计思想的主要特征中不包括 D 。A)封装性 B)多态性 C)继承性 D)功能分解,逐步求精14.下列 C+标点符号中表示一条预处理命令开始的是 A 。A)# B)/ C) D);15.下列关于 C+类的描述中错误的是 C 。A)类与类之间可以通过一些手段进行通信和联络B)类用于描述事物的属性和对事物的操作C)类与类之间必须是平等的关系,而不能组成层次关系D

5、)类与类之间可以通过封装而具有明确的独立性16.下列 C+标点符号中表示一条语句结束的是 A 。A); B)/ C)# D)17.下列 C+标点符号中表示复合语句结束的标记符是 C 。A)# B)/ C) D);18.下列 C+标点符号中表示复合语句开始的标记符是 A 。A) B)/ C) D);19.下列关键字中, B 即在 C 语言中使用,又在 C+语言中使用。A)inline B)break C)private D)public20.下列字符串中不可以用作 C+标示符的是 C 。A)_521 B)computer123 C)int D)flower21.下列不正确的选项是 D 。A)C+

6、语言是一种面向对象的程序设计语言,它支持面向对象思想中的 3 个主要特征B)标点符号是在程序中起分割内容和界定范围作用的一类单词 C)iostream 是一个标准的头文件,定义了一些输入输出流对象D)类与类之间不可以进行通信和联络22.下列不正确的选项是 B 。A)封装是一种信息隐藏技术 B)标识符是由字母、数字、下划线组成的字符串,必须以数字或下划线开头C)编译是由源程序文件转换到目标文件的过程D)一个 C+程序可以认为是函数串23.下列与流程控制有关的关键字是 A 。A)goto B)static C)int D)sizeof24.下列正确的选项是 A 。A)继承是创建一个具有别的类的属性

7、和行为的新类的能力B)C 语言支持面向对象的程序设计 C)空白符是一种可以被编译的符号D)标示符不宜过长,一般设定为 16 个字符25.下列关于 C+语言的发展说法错误的是 C 。A)C+语言起源于 C 语言 B)C+语言最初被称为“带类的 C”C)在 1980 年 C+被命名 D)在 1983 年 C+被命名27.下列表示引用的方法中, A 是正确的。已知:int k=1000;A)int B)char C)int D)float 28.下列程序的执行结果为 A 。i ncludevoid mian()int n=10;int* pn=int* (*pn)+;coutvoid fun(int

8、 p=a; a=b; b=p;void exchange(int int i;ir=i=17;coutchar ch=*;void sub(int x,int y,char ch,double *z)switch(ch)case +:*z=x+y;break;case -:*z=x-y;break;case *:*z=x*y;break;case /:*z=x/y;break;下面合法的函数调用语句是 B 。A) sub(10,20,ch,y); B) sub(1.2,3.2,+, C) sub(sub(1,2,+, D) sub(a,b,44.下列程序的输出结果是 B 。includevoi

9、d sub1(char a,char b) char c;c=a; a=b; b=c;void sub2(char *a,char b)char c;c=*a; *a=b; b=c;void sub3(char *a,char *b)char c;c=*a; *a=*b; *b=c;void main()char a,b;a=A;b=B;sub1(a,b);putchar(a);putchar(b);a=A;b=B;sub2(putchar(a);putchar(b);a=A;b=B;sub3(putchar(a);putchar(b);putchar(n);A)ABABAB B)ABBBBA

10、 C)ABBABA D)ABABBA45.下面程序的正确执行结果为 D 。includeint f(int);void main()int a=2,i;for(i=0;ivoid fun(char * *m)m+;coutint fun(char *s)char *p=s;while(*p!=0)p+;return (p-s);void main()coutvoid fun(int i);int main()int n=2;fun(n);return 0;void fun(int i)static int x=1;int y=1;if(i0)+x;+y;coutvoid prt(int *x,

11、int *y,int *z)coutfun(int a,int b)static int m=1,i=2;i+=m+1;m=i+a+b;return(m);void main()int k=5,m=2,p;p=fun(k,m);coutvoid fun(int *s,int *y)static int t=3;*y=st;t-;void main()int a=1,2,3,4;int i,x=10;for(i=0;iint fun(char *s)char *p=s;while(*p!=0)p+;return (p-s);void main()coutint x=10;void fun(int

12、 c);void main()fun(x);coutvoid main()void swap();extern int a,b;a=3;b=10;swap();coutvoid f()static int i=15;i+;coutint add(int x,int y=8);void main();coutint fun(int a)static int x=10;int y=1;x+=a;a+;y+;return(x+y+a);void main()int i=3;while(iint fun(char *s);int main()coutp=3 C)s.*p=3 D)*s.p=39.已知

13、f1(int)是类 X 的公有成员函数,p 是指向成员 f1()的指针,采用它赋值, _ B _是正确的.A)p=f1 B)p=X:f1 C)p=x:f1 D)p=f1()10.已知类 X 中的一个成员函数说明如下 :Void Set(x 其中,X 时,调用了_D_次构造函数 .A)0 B)1 C)2 D)318.类模板的模板参数_ D _.A)只可作为数据成员的类型 B)只可作为成员函数的返回类型C)只可作为成员函数的参数类型 D)以上三者皆可19.下列_D_不是构造函数的特征A)构造函数的函数名与类名相同 B)构造函数可以重载C)构造函数可以设置默认参数 D)构造函数必须指定类型说明20.

14、下列程序中说明的公有成员是_ D _.class Locationint X;public:void init(int initX,int initY);private:int Y;public:int GetX();int GetY();A)XB)init(int initX,int initY)C)GetX(),GetY()D)B)和 C)都是21.类定义的内容允许被其他对象无限制地存取是_ C _.A)private 部分 B)protected 部分C)public 部分 D)以上都不对22.关于下面程度段说法正确的是_ A _.class Xprivate:int n;punblic

15、:X(XX:X(Xobj2(obj1);A)语句 obj2(obj1 ) ;的功能是用对象 obj1 初始化具有相同类类型的对象 obj2B)语句 obj2(obj1) ;的功能是用对象 obj2 初始化具有相同类类型的对象 obj1C) X(Xpublic:void init(int initx,int inity) x=initx;y=inity;int getx()return x;int gety();inline int location:gety()return y;A) init (int initx,int inity) B) getx(),gety() C) A)和 B)都是

16、 D) A)和 getx()25关于对象成员的构造函数的调用顺序,说法正确的是_ C _。A)与它们在成员初始化列表中给出的顺序相同B)与析构函数的调用顺序相同C)与它们在类中说明顺序相同D)以上说法都不对26类摸板 trmplateclassX,其中,友元函数 f()成为该类模板实例化的每个模板类的友元,则其说明应为_ A _.A)friend void f()B)friend void f(XC)friend void A:f();D)friend void C:f(X27.运算符*的功能是( A ) 。A )用来表示指向对象指针对指向类成员指针的操作。B)用来表示对象类成员的操作。C)用

17、来表示指向对象指针对类成员的操作。D)用来表示对象指向类成员指针的操作。28.下列说明中const char * ptr;ptr 应该是 C 。A )指向字符的指针 B)指向字符的常量指针C)指向字符串常量的指针 D)指向字符串的常量指针29.下面关于友元的描述中,错误的是( D ) 。A) 友元函数可以访问该类的私有数据成员。B) 一个类的友元类中的成员函数都是这个类的友元函数。C) 友元可以提高程序的运行效率。D) 类与类之间的友元关系可以继承。30一个( C )允许拥护为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。A) 函数模板 B)模板函数C)

18、 类模板 D)模板类31有关构造函数说法不正确的是( D )A ) 构造函数的名字和类的名字一样。B) 在创建对象时,系统自动调用构造函数C) 构造函数无任何函数类型D) 构造函数有且只有一个32下面对模板的声明,正确的是( C )A ) template B) templateC) template D)template33. ( D )是析构函数的特征。A) 析构函数可以有一个或多个参数 B) 析构函数定义只能在类体内C) 析构函数名与类名不同 D)一个类中只能定义一个析构函数34下列关于构造函数的描述中,错误的是( C )A) 构造函数可以设置默认参数B) 构造函数在说明类变量时自动执行

19、C) 构造函数可以对静态数据成员进行初始化D) 构造函数可以重载35. 对于类 A,语句 void (A:*P)(void);表明( A )A) P 是一个指向类成员函数的指针 B) P 是类 A 的一个成员C) P 是类 A 的一个对象 D) P 是一个指向类对象的指针36运算符 delete 删除一个动态对象时 ( C )A) 首先为该动态对象调用构造函数,再释放其占用的内存B) 首先释放该动态对象占用的内存,再为其调用构造函数C) 首先为该动态对象调用析构函数,再释放其占用的内存D) 首先释放动态对象占用的内存,再为其调用析构函数37在类的定义形式中,数据成员、成员函数和( A )组成了

20、类定义体。A) 成员的访问控制信息 B) 公有消息 C) 私有消息 D)保护消息38对于任意一个类,析构函数的个数最多为( B )A) 0 B) 1 C) 2 D)339 ( C )的功能是对对象进行初始化。A) 析构函数 B) 数据成员 C) 构造函数 D)静态数据成员40友元关系不能( A )A)继承 B)是类与类之间是关系C)是一个类的成员函数与另一个类的关系 D)提高程序的运行效率41 ( A )只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。A) 静态函数 B) 虚函数 C)构造函数 D)析构函数42下面说法正确的是( B )A) 内联函数在运行时

21、是将该函数的目标代码插入每个调用该函数的地方B) 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C) 类的内联函数必须在类体内定义D)类的内联函数必须在类体外关键字 inline 定义43下列关于成员访问权限的描述中,不正确的是( B )A) 公有数据成员和公有成员函数都可以被类对象直接处理B) 类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问C) 保护成员在派生类中可以被访问,而私有成员不可以D)只有类或派生类的成员函数和友元类或友元函数可以访问保护成员44局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用( A )提供对全局变量的访问

22、A) 域运算符 B) 类运算符 C) 重载 D)引用45缺省析构函数的函数体是( C )不存在 )随机产生的 )空的 )无法确定的、46在下列关键字中,用以说明类中公有成员的是( A )A) public B) private C) protected D)friend47下面说法中正确的是( B )A) 一个类只能定义一个构造函数,但可以定义多个析构函数B) 一个类只能定义一个析构函数,但可以定义多个构造函数C) 构造函数与析构函数同名,只要名字前加了一个求反符号()D)构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是 void 类型也不可以48关于 delete 运算符的下

23、列描述中, ( C )是错误的。A) 它必须用语 new 返回的指针B) 它也适用于空指针C) 对一个指针可以使用多次该运算符D)指针名前只用一对方括号符,不管所删除数组的维数49关于成员函数的特征的下述描述中,错误的是( A )A) 成员函数一定是内联函数 B) 成员函数可以重载C) 成员函数可以设置参数的默认值 D)成员函数可以是静态的50假定 x 为一个类,执行 X a3,*p2;语句时会自动调用该类的构造函数( B )次A) 2 B) 3 C) 4 D)551由于数据隐藏的需要,静态数据成员通常被说明为( A )A) 私有的 B) 公有的 C) 保护的 D)不可访问的52假定 MyCl

24、ass 为一个类,则该类的拷贝构造函数的声明语句为( C )A) MyClass(MyClass x) B) MyClasscoid SetNum(int n1)n=n1;privateint n;int f()a*ptr=new A(6);A) A(60)B) SetNum(60)C) Ptr-SetNum(60)D)Ptr-n=6061.已知:print() 函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的A) void print() constB) const void print()C) void const print()D) void print(const)

25、62下面是类 MyClass 的定义,对定义中各语句描述正确的是( D )class MyClassprivate:int X,y,Z;public;coid MyClass(int a)X=a; file:/int f(int a,int b) file:/X=a;Y=b;Int f(int a,int b,int c=0) file:/a;Y=b;Z=c;Static coid g() X=10; file:/A) 语句是类 MyClass 的构造函数定义B) 语句和语句实现类成员函数的重载C) 语句实现对类成员变量 X 的更新操作D)语句和都不正确63友元访问类的对象的成员时使用( D

26、)A) 类的成员名 B) this 指针指向成员名C) “类名:成员名”的形式 D) “对象名.成员名”的形式64.下列程序输出的结果正确的是( B )includecoid fun()static int n=10;n+;cout class AT x,y;B) templateclass Aprivate:T x;C) templateclass Apublic:T x;D)templateclass Aprotected:t x;66. 静态成员遵循类的其他成员所遵循的访问限制,除了( B )A) 静态成员函数 B) 静态数据成员初始化C) 私有静态数据成员 D)公有静态成员函数67.

27、空类的声明( B )是正确A) class 类名; B) class 类名 ;C) class 类名 D)class 类名68. 可以用“px-*p”来访问类 A 的对象 a 的数据成员,则下面正确的是( B )A) px 是指向类数据成员的指针 B)p 是指向类数据成员的指针C) p 是指向类的对象的指针 D)无法确定指针类型69. 关于类中数据成员的生存期的说法正确的是( D )A) 与对象的生存期无关 B) 比对象的生存期长C) 比对象的生存期短 D)有对象的生存期决定70. 类 example 的析构函数为( D )example() ; ) example()example() ;

28、D)example()71. 以知 AA 是一个类,则执行语句 AA a;后( A )自动调用无参构造函数 B)自动调用有参构造函数C) 自动调用拷贝构造函数 D)产生一个对象 a,但不调用任何函数72.对于类模板 tanytemp,执行语句 tanytempiobject(23,32);后( C )A) 产生的模板类为 tanytempB) 产生的模板类为 iobjectC) 产生的模板类为 tanytempD) 类模板实例化对象74.类的构造函数被自动调用执行的情况是在定义该类的( C )A) 成员函数时 B) 数据成员时 C) 对象时 D) 友元函数时75.说明友元函数使用关键字( A

29、)A) friend B) static C) const D) colatile76. 有关类的作用域.,下面说法中不正确的是( B )A) 说明类时所使用的一对花括号形成所谓的类作用域B) 类作用域不包含类汇总成员函数的作用域D) 类作用域中说明的标识符只在类中可见F) 在可能出现两义性的情况下,必须使用作用域限定符”:”77. 类的静态成员( C )A) 是指静态数据成员 C) 是指静态函数成员C) 为该类的所有对象共享 D) 遵循类的其他成员做遵循的所有访问权限78. 允许访问类的所有对象的私有成员,公有成员和保护成员的是( A )A) 友元函数 B) 成员函数 C) 内置函数 D)

30、重载函数79. 形如 X:X(Xexample arr2=1,2;x=10;x.print();x=example(15);x.print();A) 3 B) 4 C) 7 D) 881. 所有在函数中定义的变量,连同形式参数,都属于( B )A) 全局变量 B) 局部变量 C) 静态变量 D) 寄存器变量82.在 C+中,封装是借助于( B )达到的.A) 结构 B) 类 C) 数组 D) 函数83. 下面不属于类的存取权限的是( B )A) public B) static C) protected D) private84. 指向类 X 中类型为 type 的数据成员的指针的说明形式为(

31、 A )A) type X:*pointer B) X:type*pointer C) type *X:pointer D) X:*type pointer85. 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的A) void print() const B) const void print()C) viod const print() D) void print(const)第四、五章1 在 C+中使用类有两种方法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过_B_派生出新的类。A) 复用 B) 继承 C) 单继承 D) 多继承2

32、 下面关于纯虚函数和抽象类的描述中,_B_是错误的。A) 纯虚函数是一种特殊的虚函数,它没有具体意义B) 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类C) 抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出D) 抽象类是指具有纯虚函数的类3 继承具有_B _,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。A) 规律性 B) 传递性 C) 重复性 D) 多样性4 对虚函数的调用_D_ 。A) 一定使用动态联编 B) 一定使用静态联编C) 必须使用动态联编 D) 不一定使用动态联编5 若类 A 和类 B 的定义如下:class A int i,j;pu

33、blic:void get();class B:A/默认为私有派生 int k;public;void make();void B: make() k=i*j; 则上述定义中,_D_ 是非法的表达式。A)void get(); B)int k; D)void make(); D) k=i*j;6下列描述中,_D_ 是抽象类的特性。A)可以说明虚函数 B)可以定义友元函数C)可以进行构造函数重载 D)不能说明其对象7在多继承中,公有派生和私有派生对于基类成员的派生类中的可访问性与单继承的规则_A_。A)完全相同 B)完全不同 C)部分相同,部分不同 D)以上都不对8_A_是一个在基类中说明虚函数

34、,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。A)纯虚函数 B)虚析构函数 C)虚构造函数 D)静态成员函数9下列对派生类的描述中,_D _是错误的。A)一个派生类可以作另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了它自己的成员外,包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类保持不变10实现运行时的多态性要使用_D _。A)构造函数 B)析构函数 C)重载函数 D)虚函数11派生类的对象对它的基类成员中_A _是可以访问的。A)公有继承的公有成员 B)公有继承的私有成员C)公有继承的保护成员 D)私有继承的公有成员12关于函数的描述中,

35、_C _是正确的。A)派生类的虚函数与基类的虚函数具有不同的参数个数和类型B)基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数C)虚函数是一个成员函数D)虚函数是一个 static 类型的成员函数、13对基类和派生类的关系描述中,_B_ 是错误的。A)派生类是基类的具体化 B)派生类是基类的子集C)派生类是基类定义的延续 D)派生类是基类的组合基类与派生类的关系任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。基类与派生类之间的关系可以有如下几种描述:1. 派生类是基类的具体化类的层次通常反映了客观世界中某种真实的模型。在这种情况下,不难看出

36、:基类是对若干个派生类的抽象,而派生类是基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加行为将抽象类变为某种有用的类型。2. 派生类是基类定义的延续先定义一个抽象基类,该基类中有些操作并未实现。然后定义非抽象的派生类,实现抽象基类中定义的操作。例如,虚函数就属此类情况。这时,派生类是抽象的基类的实现,即可看成是基类定义的延续。这也是派生类的一种常用方法。3. 派生类是基类的组合在多继承时,一个派生类有多于一个的基类,这时派生类将是所有基类行为的组合。派生类将其本身与基类区别开来的方法是添加数据成员和成员函数。因此,继承的机制将使得在创建新类时,只需说明新类与已有类的区别,从而大量

37、原有的程序代码都可以复用,所以有人称类是“可复用的软件构件” 。14关于动态关联的下列叙述中,_D _是错误的。A)动态关联是以虚函数为基础的B)动态关联调用虚函数操作是指向对象的指针或引用C)动态关联是在运行时确定所调用的函数代码的D)动态关联是在编译时确定操作函数的15派生类的构造函数的成员初始化列表中,不能包含_C_。A)基类的构造函数 B)派生类中子对象的初始化C)基类的子对象初始化 D)派生类中一般数据成员的初始化16如果一个类至少有一个纯虚函数,那么就称该类为_A_。A)抽象类 B)派生类 C)纯基类 D)以上都不对17设置虚基类的目的是_B_。A)简化程序 B)消除二义性 C)提

38、高运行效率 D)减少目标代码18在下面程序中,编译时出现的错误是_C _。class A (1)public; (2)A()func(); (3)virtual void func()=0; (4);A)(1) B)(2) C)(3) D)(4)19关于多继承二义性的描述中,错误的是_C _。A)一个派生类的基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B)解决二义性的最常用的方法是对成员名的限定法C)基类和派生类同时出现的同名函数,也存在二义性问题D) 一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类, 对该基类成员进行访问时,可能出现二义性20用于类中虚成

39、员函数说明的关键字( A )Avirtual Bpublic Cprotected Dprivate21下列对派生类的描述中,错误的是( D )A 派生类的缺省继承方式是 PRIVATE B 派生类至少有一个基类C 一个派生类可以作为另一个派生类的基类D 派生类只继承了基类的公有成员和保护成员22编译时的多态性通常使用( C )获得。A继承 B虚函数 C重载函数 D析构函数23下列说法中错误的是( D )A 公有继承时基类中的 public 成员在派生类中是 public 的B 公有继承时基类中的 private 成员在派生类中是不可访问的C 私有继承时基类中的 public 成员在派生类中是

40、 private 的D 私有继承时基类中的 public 成员在派生类中是 protected 的24下面哪个基类中的成员函数表示纯虚函数( C )A virtual void vf(int) Bvoid vf(int)=0 C virtual void vf( )=0 Dvirtual void vf(int)25下列虚基类的声明中正确的是( D )A class virtual B:public A Bvirtual class B:public B class B:public A virtual Dclass B: virtual public A26下面叙述不正确的是( A )A 基

41、类的保护成员在派生类中仍然是保护的B 基类的保护成员在公有派生类中仍然是保护的C 基类的保护成员在私有派生类中仍然是私有的D 对基类成员的访问必须是无两义性27带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类构造函数,这样将对虚基类的子对象初始化( D )A与虚基类下面的派生类个数有关 B多次 C二次 D一次28关于保护成员的说法正确的是( B )A 在派生类中仍然是保护的 B 具有私有成员和公有成员的双重角色C 在派生类中是私有的 D 在派生类中是公有的29下列关于子类型的描述中,错误的是( A )A 子类型关系是可逆的 B 公有派生类的对象可以初始化基类的引用C 只有在公有继

42、承下,派生类是基类的子类型D 子类型关系是可传递的30若要强制 C+对虚函数的调用使用静态联编,则在调用中对该函数使用( A )A成员名限定 B 指针 C引用 DVIRTUAL 关键字31模板和继承的关系是( A )A 模板反映的是不同类型的相同操作;而同一类系的各类处理的数据很多情况下是同一类型的B 继承类较模板类有更多的动态特征C.模板类系的成员较继承类系的成员稳定。D.模板和继承的方法都可以派生出一个关系,因而本质上它们是相同的。32.下面( B )的叙述不符合赋值兼容规则。A.派生类的对象可以赋值给基类的对象 B.基类的对象可以赋值给派生类的对象C.派生类的对象可以初始化基类的对象 D

43、.派生类的对象的地址可以赋值给指向基类的指针33.C+有( B )种联编。A.1 B.2 C.3 D.434.对于下列程序段,没有二义性的表达式是( C )class Apublic:int f();class Bpublic:int g();int f();class C:public A,public B public : int g( ) ; h( ) ; ;C obj;A.obj .f( ) B.obj .A : : g( ) C.obj .B : : f( ) D.obj .B : : h( )35.下面叙述错误的是( C )A.派生类可以使用 private 派生 B.对基类成员的

44、访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变 D.赋值兼容规则也适用于多继承的组合36.派生类的对象与基类的对象的关系是( D )A.属于前者而不属于后者 B.属于前者,不一定属于后者C.不属于前者则一定属于后者 D.属于前者则一定属于后者37.对于下面程序段,表达式正确的是( A )class Base public:int b;class Base1:public base ;class Base2:public base ;class Derived:public base1,public base2public:int fun ( );Derived d;A. d. B

45、ase1:bB. d. Base :bC. d.bD. d. Base : fun( )38.下列程序中横线处正确的语句应该是( C )i ncludeusing namespace std;class Base public;void fun( )coutfun( )39.虚函数必须是类的( A )A.成员函数 B.友元函数 C.构造函数 D.析构函数40.不能说明为虚函数的是( B )A.析构函数 B.构造函数 C.类的成员函数 D.以上都不对41.不同的对象可以调用相同名称的函数,并可导致完全不同的行为的现象称为( A )A.多态性 B.抽象 C.继承 D.封装42. 若析构函数是虚函数,则

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报