【计算机类职业资格】二级C++笔试-373及答案解析.doc

上传人:刘芸 文档编号:1324611 上传时间:2019-10-17 格式:DOC 页数:29 大小:84KB
下载 相关 举报
【计算机类职业资格】二级C++笔试-373及答案解析.doc_第1页
第1页 / 共29页
【计算机类职业资格】二级C++笔试-373及答案解析.doc_第2页
第2页 / 共29页
【计算机类职业资格】二级C++笔试-373及答案解析.doc_第3页
第3页 / 共29页
【计算机类职业资格】二级C++笔试-373及答案解析.doc_第4页
第4页 / 共29页
【计算机类职业资格】二级C++笔试-373及答案解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、二级 C+笔试-373 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.深度为 6 的满二叉树中,度为 2 的结点个数为( )。(分数:2.00)A.31B.32C.63D.642.算法的有穷性是指( )。(分数:2.00)A.算法程序的长度是有限的B.算法程序所处理的数据量是有限的C.算法程序的运行时间是有限的D.算法只能被有限的用户使用3.以下程序的输出结果是( )。#includeiostream.hmain()int m=5;if(m+5)coutm;else coutm-;(分数:2.00)A.7B.6C.5D.44.设有关键码序

2、列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关键码值 A 在序列中的序号是( )。(分数:2.00)A.1B.4C.8D.125.有以下程序:#includeiostreamusing namespace std;int a;int fun();int main()externint a;int b;a=10;b=fun();coutbend1;return 0;int fun()extern int a;return(10*(分数:2.00)A.;6.以下程序的输出结果是( )。#includeiostreamusing name

3、space std;void fun(char*q)+q;cout*qend1;main()static char*s=“HI“,“HELL0“,“TEST“;char*p;p=s;fun(p);system(“PAUSE“);return 0;(分数:2.00)A.为空B.HIC.HELL0D.TEST7.在 C+中,实现封装性需借助于( )。(分数:2.00)A.枚举B.类C.数组D.函数8.阅读下面的程序:#includeiostream.hvoid main()int x;cinx;if(x+5)coutxend1;elsecoutx-end1;如果两次执行上述程序,且键盘输入分别为

4、4 和 6,则输出结果分别是( )。(分数:2.00)A.4,6B.3,6C.4,7D.5,79.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RSC.RSD.RS10.有如下程序:#includeiostream.hvoid main()char str25=“1234“,“5678“),*p2;int i,j,s=0;for(i=0;i2;i+)pi=stri;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;couts;该程序的输出结果是( )。(分数:2.00)A.1357B.2

5、468C.3556D.2367811.自然连接(Naturaljoin)是一种特殊的等值连接,下列哪个(些)是它满足下面的条件( )。、两关系间有公共域 、通过公共域的等值进行连接 、可进行逆运算(分数:2.00)A.和B.和C.和D.、和12.下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。#includeconio.h#includeiostream.hint fun(int*p,int n,int*j)int i;*j=0;for(i=0;in;i+)if(p*jpi)*j=i;return p*j;void main()int a10=1,3,9,0,8,7,6,5,4,

6、2)j;int j;fun(a,10,coutj,aj;(分数:2.00)A.2,9B.3C.9D.3,913.( )使一个函数可以定义成对许多不同数据类型完成同一个任务。(分数:2.00)A.函数模板B.重载函数C.递归函数D.模板函数14.以下描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系15.有如下程序:#includeiostreamusing namespace std;int i=1;class Funpublic:static int i;int value()retu

7、rn i-1;int value()constreturn i+1;int Fun:i=2;int main()int i=3;Fun fun 1;const Fun fun2;_return 0;若程序的输出结果是:123则程序中横线处的语句是( )。(分数:2.00)A.coutfun1.value()Fun:ifun2.value();B.coutFun:ifun1.value()fun2.value();C.countfun.value()fun2.value()Fun:i;D.coutfun2.value()Fun:ifun1.value();16.下面叙述错误的是( )。(分数:2

8、.00)A.对基类成员的访问能力在 private 派生类中和 public 派生类中是相同的B.基类的 private 成员在 public 派生类中不可访问C.基类中的 public 成员在 protected 派生类中是 protected 的D.基类中的 public 成员在 protected 派生类中仍然是 public 的17.在进行任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态:其中只能用于检测输入流状态的操作函数名称是( )。(分数:2.00)A.failB.eofC.badD.good18.有如下程序:#includeiostreamusing names

9、pace std;class TestClass1public:TestClass1 ()cout“TestClass1“;TestClass1 ()cout“TestClass1“;class TestClass2:public TestClass1TestClass1 *p;public:Testclass2()cout“TestClass2“;p=new TestClass1();TestClass2()cout“TestClass2“;delete p;);int main()TestClass2 obj;return 0;执行这个程序的输出结果是( )。(分数:2.00)A.Test

10、Class2TestClass1TestClass1TestClass1TestClass2TestClass1B.TestClass1TestClass2TestClass1TestClass2TestClass1TestClass1C.TestClass2TestClass1TestClass1TestClass2TestClass1TestClass1D.TestClass1TestClass2TestClas1TestClass1TestClass2TestClass119.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函

11、数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式20.下列变量名中,合法的( )。(分数:2.00)A.CHINAB.byte.sizeC.doubleD.A+a21.在声明派生类时,如果不显示地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义:class TestClassprotected:void fun();class TestClass1:TestClass;则 TestClass 类中的成员函数 fun(),TestClass1 类中的访问权限

12、是( )。(分数:2.00)A.publicB.privateC.protectedD.virtual22.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;class Bpublic:B()cout“B“;class C:public AB b;public:C()cout“C“;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC23.静态数据成员在( )进行初始化。(分数:2.00)A.成员函数列表B.类体外C.构造函数D.

13、成员函数24.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.舣向链表D.二叉树25.关于 this 指针的说法不正确的是( )。(分数:2.00)A.不能在程序中修改 this 指针B.this 指针可以给其他指针赋值,但不能修改 this 指针C.静态成员函数中没有 this 指针D.this 指针可以被赋值26.下列语句中,错误的是( )。(分数:2.00)A.const int buffer=-256;B.const int temp;C.const double *point;D.const double *rt=new double(5.5);2

14、7.下列对重载函数的描述中,( )是错误的。(分数:2.00)A.重载函数中不允许使用默认参数B.重载函数中编译是根据参数表进行选择C.不要使用重载函数来描述毫不相干的函数D.构造函数重载将会给初始化带来多种方式28.在三级模式之间引入两层映像,其主要功能之一是( )。(分数:2.00)A.使数据与程序具有较高的独立性B.使系统具有较高的通道能力C.保持数据与程序的一致性D.提高存储空间的利用率29.有如下类说明:class TestClassint x;public:TestClass(int n)x=n;class TestClass1:public TestClassint y;publ

15、ic:TestClass1(int a,int b);在构造函数 TestClass1 的下列定义中,正确的是( )。(分数:2.00)A.TestClass1:TestClass1 (int a,intb):x(a),y(b)B.TestClass1:TestClass1 (int a,intb):TestClass(a),y(b)C.TestClass1:TestClass1 (int a,intb):x(a),TestClass1(b)D.TestClass1:TestClass1 (int a,intb):TestClass(a),TestClass1(b)30.下列工具中为需求分析常

16、用工具的是( )。(分数:2.00)A.PADB.PFDC.N-SD.DFD31.对于浯句 coutend1x;中的各个组成部分,下列叙述中错误的是( )。(分数:2.00)A.“cout”是个输出流对象B.“end1”的作用是输出回车换行C.“x”是个变量D.“”称作提取运算符32.已知一棵二叉树的先根序列为 ABCDEFK,中根序列为 DGBAFCK,则结点的后根序列为( )。(分数:2.00)A.ACFKDBGB.GDBFKCAC.KCFAGDBD.ABCDFKG33.下面程序的输出结果是( )。#includeiostream.h#include“string.h“void main(

17、)char a=“Hello Test“,b=“Test“;strcpy(a,b);coutaend1;(分数:2.00)A.HelloB.TestC.Hello TestD.Hello Test HelloTest34.以下程序的正确运行结果是( )。#includeiostream.hint fun(int);void main()int a=2,i;for(i=0;i3;i+)coutfun((分数:2.00)A.end1;cout35.下列关于类和对象的叙述中,错误的是( )。(分数:2.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是

18、一种数据类型与变量的关系二、填空题(总题数:15,分数:30.00)36.关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为 1。(分数:2.00)填空项 1:_37.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间 1 的信息。(分数:2.00)填空项 1:_38.软件是程序、数据和 1 的集合。(分数:2.00)填空项 1:_39.对于长度为 n 的有序线性表,在最坏情况下,二分法查找只需比较 1 次。(分数:2.00)填空项 1:_40.测试分为白箱法和黑箱法, 1 又称为逻辑覆盖测试。(分数:2.00)填空项 1:_41.重载的

19、流运算符函数应该被定义为类的 1 函数。(分数:2.00)填空项 1:_42.分析以下程序的执行结果_。#includeiostream.hclass Sampleint x,y;public:Sample()x=y=0;Sample(int a,int b)x=a;y=b;)Sample()if(x=y)cout“x=y“end1;elsecout“x!=y“end1;void disp()cout“x=“x“,y=“yend1;void main()Sample s1(2,3);s1.disp();(分数:2.00)填空项 1:_43.有以下程序:#includeiostreamusing

20、 namespace std;class MyClasspublic:static int s;MyClass();void SetValue(int val);int MyClass:s=0;MyClass:MyClass()S+;void MyClass:SetValue(int val)s=val;int main()MyClass my3,*p;p=my;for(int k=0;k3;k+)p-SetValue(k+1);p+;coutMyClass:send1;return 0;运行后的输出结果是_。(分数:2.00)填空项 1:_44.若有:int i=1000;int *p=vo

21、id*q;q=p;其中,q=p 的含义是_。(分数:2.00)填空项 1:_45.阅读下面程序:#includeiostream.hvoid fun(int n)int x(5);static int y(10);if(n0)+x;+y;coutx“,“yend1;void main()int m(1);fun(m);则该程序的输出结果是_。(分数:2.00)填空项 1:_46.对基类数据成员的初始化必须派生类的构造函数中的 1 处执行。(分数:2.00)填空项 1:_47.在下面横线上填上适当的语句,完成程序。#includeiostreamusing namespace std;class

22、 TestClassint x;public:TestClass(int i)x=i;TestClass();class TestClass1:public TestClasspublic;_/完成类 TestClassl 构造函数的定义;int main()TestClass1 0bj();return 0;(分数:2.00)填空项 1:_48.下列程序的输出结果是_。#includeiostream.h#includestring.husing namespace std;void fun(const char*s,char int main()char str=“ABCDE“;char

23、ch=str1;fun(str,ch);coutch;return 0;(分数:2.00)填空项 1:_49.下列程序的输出结果为:Object id=0Object id=1请将程序补充完整。#includeiostreamusing namespace std;class Pointpublic:Point(int xx=0,int yy=0)X=xx;Y=yy;countP+;Point()countP-;int GetX()return X;int GetY()return Y;static void GetC()cout“0bject id=“countPend1;private:i

24、nt X,Y;static int countP;_/静态数据成员的初始化int main()Point:GetC();Point A(4,5);A.GetC();return 0;(分数:2.00)填空项 1:_50.有如下类声明:class MyClassint i;private: int j;protected: int k;public:int m,n;其中,私有成员的数量为_。(分数:2.00)填空项 1:_二级 C+笔试-373 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.深度为 6 的满二叉树中,度为 2 的结点个数为(

25、)。(分数:2.00)A.31 B.32C.63D.64解析:解析 本题要用到二叉树的两个性质定义:二叉树的性质 2:在二叉树的第 k 层上,最多有 2k-1(k1,其中 k 为层数)个结点。本题中第 6 层的结点数=26-1=32 个。这也是叶子结点最大数。二叉树的性质 3:在任意一棵二叉树中,叶子结点总是比度为 2 的结点多一个。本题中,叶子结点最多为 32 个,度为 2 的结点数为 32-1=31 个。知识拓展 “满二叉树”是一种特殊的二叉树,指的是除了最后一层外,其他每一层的结点都有两个子结点(左、右子树配齐),也就是说每一层的结点数都是最大数(每 k 层有 2k-1 个结点,且深度为

26、 m 的满二叉树有 2m-1 个结点)。2.算法的有穷性是指( )。(分数:2.00)A.算法程序的长度是有限的B.算法程序所处理的数据量是有限的C.算法程序的运行时间是有限的 D.算法只能被有限的用户使用解析:解析 算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。3.以下程序的输出结果是( )。#includeiostream.hmain()int m=5;if(m+5)coutm;else coutm-;(分数:2.00)A.7B.6 C.5D.4解析:解析 此题中,因为 m+5 成立(此时 m 的值变为 6),所以执行语句 coutm;输出结果为6。

27、4.设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关键码值 A 在序列中的序号是( )。(分数:2.00)A.1 B.4C.8D.12解析:解析 建堆的算法:首先将要排序的所有关键码放到一棵完全二叉树的各个结点中(这时的二叉树不具备堆的特性),然后,从 i=n/2(n 为结点的个数)的结点 Ki 开始,逐步把以 Kn/2,Kn/2-1,Kn/2-2,为根的子树排成堆,直到以 K1 为根的树排成堆,就完成了建堆过程。此题中,n=16,i=16/2=8,即从第 8 个结点开始,建堆完成后如下图:*所以经过初始建堆后关键码值 A

28、 在序列中的序号是 1。5.有以下程序:#includeiostreamusing namespace std;int a;int fun();int main()externint a;int b;a=10;b=fun();coutbend1;return 0;int fun()extern int a;return(10*(分数:2.00)A.;解析:解析 由主函数 main 入手,首先定义外部变量 a,它的作用域为从变量的定义处开始,到本程序文件的末尾,赋值为 10。然后调用 fun 函数,在 fun 函数中计算 10*a,其中 a 的作用域为到文件结尾,所以这里的 a 为 10,即 1

29、0*10。6.以下程序的输出结果是( )。#includeiostreamusing namespace std;void fun(char*q)+q;cout*qend1;main()static char*s=“HI“,“HELL0“,“TEST“;char*p;p=s;fun(p);system(“PAUSE“);return 0;(分数:2.00)A.为空B.HIC.HELL0 D.TEST解析:解析 由程序 main 主函数入手,调用 fun 函数,在 fun 函数中执行“cout*qend1;”语句实现程序输出。主函数中变量 char*s为指针数组,char*p 表示 p 指向的字

30、符指针数据。*p 就代表p 指向的字符指针。语句“p=s;”表明 p 指向字符指针 s,而*p 则是 s中的第一个字符串“HI”。主函数将变量 p 传值给函数 fun(char*q)中的 q,在函数体内部首先执行“+q”语句,就是将 q 的指针指向 s 中的下一个字符串,即“HELL0”,所以输出语句“cout*qend1;”输出该字符串值。7.在 C+中,实现封装性需借助于( )。(分数:2.00)A.枚举B.类 C.数组D.函数解析:解析 此题考查的是 C+语言中对象概念的理解。所谓封装性是指将数据和算法捆绑成一个整体,这个整体就是对象。C+语言通过建立用户定义类型“类”来支持封装性和信息

31、隐藏。8.阅读下面的程序:#includeiostream.hvoid main()int x;cinx;if(x+5)coutxend1;elsecoutx-end1;如果两次执行上述程序,且键盘输入分别为 4 和 6,则输出结果分别是( )。(分数:2.00)A.4,6B.3,6C.4,7D.5,7 解析:解析 此题首先读入数值 4 赋给变量 x,因为 x+5 不成立,因为“+”后缀,之后 x 的值变为5,执行语句 coutx-end1;输出:5,之后 x 的值变为 4。当读入的数值是 6 时,因为 x+5 成立,所以执行语句 coutxend1;输出 7。9.设 R 是一个 2 元关系,

32、S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RS C.RSD.RS解析:解析 关系的交()、并()和差(-)运算要求两个关系是同元的,显然作为二元的 R 和三元 S 只能做笛卡儿积运算。10.有如下程序:#includeiostream.hvoid main()char str25=“1234“,“5678“),*p2;int i,j,s=0;for(i=0;i2;i+)pi=stri;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;couts;该程序的输出结果是( )。(分数:2.00)A.1357 B.24

33、68C.3556D.23678解析:解析 程序中的“for(i=0;i2;i+)pi=stri;”语句将 str 中的值赋值给指针数组 p。在接下来的二重 for 循环中,跳取“j+=2”,p 指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符0,然后依次转换为千位,百位,十位,个位“10%”操作输出接型 s,即“1357”。11.自然连接(Naturaljoin)是一种特殊的等值连接,下列哪个(些)是它满足下面的条件( )。、两关系间有公共域 、通过公共域的等值进行连接 、可进行逆运算(分数:2.00)A.和B.和 C.和D.、和解析:解析 自然连接(Natu

34、raljoin)是一种特殊的等值连接,它满足下面的条件:两关系间有公共域;通过公共域的等值进行连接。12.下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。#includeconio.h#includeiostream.hint fun(int*p,int n,int*j)int i;*j=0;for(i=0;in;i+)if(p*jpi)*j=i;return p*j;void main()int a10=1,3,9,0,8,7,6,5,4,2)j;int j;fun(a,10,coutj,aj;(分数:2.00)A.2,9 B.3C.9D.3,9解析:解析 由程序中的主函数 m

35、ain 入手,调用 fun 函数。其中第一个实参为数组 a 的名字,数组名作为实参,传递的是数组的起始地址。所以在 fun 函数中指针 D 指向了数组的第一个元素 a0。另外实参整型 j 传递的是引用,也就是 j 的地址。在 fun 函数中在 for 循环中,依次将当前元素 pi与 j 指针值为标识的 p*j进行比较,取较大的。最后循环后的结果就是 p*j存放数组中的最大值,并且指针 j 为该值的标识位。可以看出数组的最大值是 9 标识位为 2。13.( )使一个函数可以定义成对许多不同数据类型完成同一个任务。(分数:2.00)A.函数模板 B.重载函数C.递归函数D.模板函数解析:解析 函数

36、模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。因此,函数模板使一个函数可以定义成对许多不同数据类型完成同一个任务。14.以下描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系 解析:解析 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。15.有如下程序:#includeiostreamusing n

37、amespace std;int i=1;class Funpublic:static int i;int value()return i-1;int value()constreturn i+1;int Fun:i=2;int main()int i=3;Fun fun 1;const Fun fun2;_return 0;若程序的输出结果是:123则程序中横线处的语句是( )。(分数:2.00)A.coutfun1.value()Fun:ifun2.value(); B.coutFun:ifun1.value()fun2.value();C.countfun.value()fun2.val

38、ue()Fun:i;D.coutfun2.value()Fun:ifun1.value();解析:解析 此题因为定义的变量 i 是 static 类型的(main()函数内部的 i 只是一个局部变量),所以,选项 A)中 fun1.value()的返回值是 1,Fun:i 引用的是外部变量会输出 2;fun2.value();会调用常成员函数 int valueoconstfrerun i+1;使得外部静态变量 i 的值增加为 3,故输出 3。16.下面叙述错误的是( )。(分数:2.00)A.对基类成员的访问能力在 private 派生类中和 public 派生类中是相同的B.基类的 pri

39、vate 成员在 public 派生类中不可访问C.基类中的 public 成员在 protected 派生类中是 protected 的D.基类中的 public 成员在 protected 派生类中仍然是 public 的 解析:解析 基类的公有成员和保护成员在保护派生类中都成了保护成员,其私有成员仍为基类私有。17.在进行任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态:其中只能用于检测输入流状态的操作函数名称是( )。(分数:2.00)A.failB.eof C.badD.good解析:解析 可以用文件流对象的成员函数来判别文件流当前的状态:fail,刚进行的操作失败时

40、返回true,否则返回 false;eof,进行输入操作时,若文件到达文件尾返回 true,否则返回 false;bad,如果进行了非法操作返回 true,否则返回 false;good,刚进行的操作成功时返回 true,否则返回 false。18.有如下程序:#includeiostreamusing namespace std;class TestClass1public:TestClass1 ()cout“TestClass1“;TestClass1 ()cout“TestClass1“;class TestClass2:public TestClass1TestClass1 *p;pu

41、blic:Testclass2()cout“TestClass2“;p=new TestClass1();TestClass2()cout“TestClass2“;delete p;);int main()TestClass2 obj;return 0;执行这个程序的输出结果是( )。(分数:2.00)A.TestClass2TestClass1TestClass1TestClass1TestClass2TestClass1B.TestClass1TestClass2TestClass1TestClass2TestClass1TestClass1 C.TestClass2TestClass1T

42、estClass1TestClass2TestClass1TestClass1D.TestClass1TestClass2TestClas1TestClass1TestClass2TestClass1解析:解析 派生类中构造函数的执行顺序是:先调用基类构造函数,对基类数据成员初始化,然后调用子对象构造函数,对子对象数据成员初始化;最后执行派生类构造函数本身,对派生类数据成员初始化。由主函数 main 入手,首先定义了一个 TestClass2 对象 obj。其中 TestClass2 公共继承 TestClass1,对象 obj 可以访问 TestClass1 中的公有成员函数。TestCla

43、ss2 中定义了一个 TestClass1 的指针 p,给 p 分配新空间,即指向类 TestClass1,输出“TestClass1”。在 TestClass2 的构造函数中首先输出“TestClass2”,并在 TestClass1 构造函数中输出“TestClass1”。TestClass2 析构函数中输出“TestClass2”,删除指针 p,输出“TestClass1”。析构 TestClass1 输出“TestClass1”。19.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return

44、语句C.标准 C+要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式解析:解析 此题考查的是有关函数的概念。内联函数是在函数定义之前加关键字 inline 来声明的函数,而不是定义在另一个函数体内部的函数,故选项 A)错误;无返回值的函数在执行完最后一条语句后,会自动返回而不必加入 return 语句,故选项 B)错误;如果函数只是返回值类型不同,而其他完全相同,则不能作为函数重载来使用。20.下列变量名中,合法的( )。(分数:2.00)A.CHINA B.byte.sizeC.doubleD.A+a解析:解析 变量的定义要符合标识符的

45、定义规则。选项 B)byte-size 中含有不合法的字符“-”;选项C)中的变量名是 C+中的保留字;选项 D)变量名中同样含有非法的字符“+”:只有选项 A)符合要求。21.在声明派生类时,如果不显示地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义:class TestClassprotected:void fun();class TestClass1:TestClass;则 TestClass 类中的成员函数 fun(),TestClass1 类中的访问权限是( )。(分数:2.00)A.publicB.private C.protectedD.virtual

46、解析:解析 程序中的 TestClass1 为 TestClass 的派生类,如果不写继承方式,则默认为 private,所以 TestClass1 私有继承 TestClass,对于基类中的保护成员,继承类的访问权限为 private。所以选择 B)。22.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;class Bpublic:B()cout“B“;class C:public AB b;public:C()cout“C“;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC 解析:解析 此题中,语句 C obj 对象初始化首先调用基类的构造函数 A(),输出“A”,其次是 C 类中对象的构造函数的调用,即调用 B(),输出“B”;最后是调用自身的构造函数 C(),输出“C”。23.静态数据成员在( )进行初始化。(分数:2.00)A.成员函数列表B.类体外 C.构造函数D.成员函数解析:解析 静态数据成员不能在参数初始化表对静态数据成员初始化,只能在类体外进行初始化。24.按照“先进后出”原则组织数据的数据结构是( )。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1