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

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

1、二级 C+笔试-362 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型3.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday

2、=2:则下列语句正确的是(分数:2.00)A.表达式 Wednesday=Friday的值是 trueB.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;4.若有以下程序#include iostreamusing namespace std;class Apublic:A(int i,int j)a=i;b=j;void move(int x,int y)a+=x;b+=y;void show()couta“,“bend1;privateint a,b;class B: private Apublic:B(int i

3、,int j):A(i,j) void fun()move(3,5);void fl()A:show();int main()B d(3,4);d. fun();d.fl();return 0;程序执行后的输出结果是(分数:2.00)A.3,4B.6,8C.6,9D.4,35.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对6.下面类的定义,有( )处错误。class MyClasspublic:void MyClass();MyClass(int Value);

4、private:int i=0;(分数:2.00)A.1B.2C.3D.47.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表8.若有以下程序:#include iostreamusing namespace std;#define PI 3.14class Pointprivate:int x,y;public:Point(int a,int B) x=a;y=b;int getx()return x;int gety()reurn y;class Circle: public Pointpri

5、vate:int r;public:Circle(int a,int b.int C) :Point(a,B) r=c;int getr()return r;double area()return PI*r*r;int main()Circle cl(5,7,10);coutc 1 .area()end1;return 0;程序执行后的输出结果是(分数:2.00)A.314B.157C.78.5D.153.869.语句 ofstream f(“DATA.DAT“,ios_base:app|ios_base:binary);的功能是建立流对象 f,并试图打开文件 DATADAT 并与之连接,而且

6、(分数:2.00)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件,若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件10.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及(分数:2.00)A.阶段性报告B.需求评审C.总结D.都不正确11.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系C.键D.域12.在关系数据库中,用来表示实体之间联系的是(分数:2.00)A.树结构B.

7、网结构C.线性表D.二维表13.若有以下程序:#includeiostreamusing namespace std;class sampleprivate:int n;public:sample()sample(int m)n=m;void addvalue(int m)sample s;s.n=n+m;*this=s;void disp()cout“n“=nend1;int main()sample s(10);s.addvalue(5);s.disp();return 0;程序运行后的输出结果是(分数:2.00)A.n=10B.n=5C.n=15D.n=2014.有如下函数模板的定义:t

8、emplateclass TT func(T x,T y)return x*x+y*y;在下列对 func的调用中不正确的是(分数:2.00)A.func(3,5);B.func(3,5);C.func(3,5.5);D.funcint(3,55);15.关于类和对象描述错误的是(分数:2.00)A.对象(Obiect)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例16.下列语句段将输出字符*的个数为int i=100;while (1)i-;if(i=0)break;cout,*;(分数

9、:2.00)A.98个B.99个C.100个D.101个17.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operator/(xoperator-(),y);B.operator/(operator-(x),y);C.operator-().operator/(y);D.operator/(operator-(x);18.有以下程序:#includeiostreamusing namespace std;class Rpublic:R(int r1,int r2)R1=rl;R2=r2;void print(

10、);void print()const;private:int R1,R2;void R:print()coutR1“,“R2end1;void R:print() constcotR1“,“R2end1;int main()Ra(5,4);const R b(20,52);b.print();return 0;执行后的输出结果是(分数:2.00)A.5,4B.20,52C.0,0D.4,519.下列关于构造函数的描述中,错误的是( )。(分数:2.00)A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载20.若类 A和类 B的定义如

11、下:class Aint i,j;public:int geti()return i;class B:public Aint k;public:void make()k=i*j;;则上述定义中非法的表达式是(分数:2.00)A.k=i*jB.int k;C.retum i;D.void make()21.以下选项中合法的用户标识符是(分数:2.00)A.longB._2TestC.3DmaxD.dat22.若有如下程序:#includeiostreamusing namespace std;int s=O;class samplestatic int n;public:sample(int i

12、)n=i;static void add()s+=n;int sample:s=0;int main()sample a(2),b(5);sample:add();coutSend1;return 0;程序运行后的输出结果是(分数:2.00)A.2B.5C.7D.323.下面有关重载函数的描述中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表D.重载函数名可以不同24.下列叙述中正确的是(分数:2.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解

13、决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法25.下列对字符数组进行初始化的语句正确的是(分数:2.00)A.chara=“Hello“;B.chara=H,e,l,l,o;C.char a5=“Hello“;D.chara25=“Hello“,“World“:26.在软件生存周期小,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析27.在深度为 5的满二叉树中,叶子结点的个数为(分数:2.00)A.31B.3

14、2C.16D.1528.重载输入流运算符必须使用的原型为(分数:2.00)A.ostreamclass Aprivate:int a;public:A(int i)a=i;void disp()couta“,“;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,“;class C: public B,public Aprivate:int c;public:C(int k):A(k-2),B(k+2)c=k;void disp()A:disp();B:disp();coutcend1;int main()C obj(10);ob

15、j.disp();return 0;程序执行后的输出结果是(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1031.在面向对象的程序设计中,下列叙述中错误的是(分数:2.00)A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖C.下一层次的对象可以继承上一层次对象的某些属性D.上述三种说法都正确32.对于语句 cinx 中的各个组成部分,下列叙述中错误的是(分数:2.00)A.“cin”是一个输出流对象B.“;”的作用是表示语句结束C.“x”是一个变量D.“”称作提取运算符33.在 C+语言中函数返回值的类型

16、是由( )决定的。(分数:2.00)A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型34.函数定义为 Fun(int coutcount:test()end1;return 0;(分数:2.00)填空项 1:_45.以下程序运行后的输出结果是 【10】 #include iostream#include stringusing namespace std;class Y;class Xint x;char *strx;public:x(int a,char *str)x=a;strx=new charstrlen(str)

17、+1;strcpy(strx,str);void show(Y ;class Yprivate:int y;char *stry;public:Y(int b,char *str)y=b;stry=new charstrlen(str)+1;strcpy(stry, str);friend void X:show(Y ;void X:show(Y class Derived1:virtual public Basepublic:Derived1()x=10;class Derived2:virtual public Basepublic:Derived2()x=20;class Derived

18、:public Derived1, protected Derived2;int main()Derived obj;coutobj.xend1;return 0;该程序运行后的输出结果是 【14】 。(分数:2.00)填空项 1:_50.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用:请补充完整。class complexprivate:int real;int imag;public:complex(int r=0,int i=0):real(r),imag(i)void show()coutreal(imag0?

19、“-“:“+“)imagi;【15】 ;complexclass Apublic:A(int i,int j)a=i;b=j;void move(int x,int y)a+=x;b+=y;void show()couta“,“bend1;privateint a,b;class B: private Apublic:B(int i,int j):A(i,j) void fun()move(3,5);void fl()A:show();int main()B d(3,4);d. fun();d.fl();return 0;程序执行后的输出结果是(分数:2.00)A.3,4B.6,8C.6,9

20、D.4,3解析:解析 本题考核派生类的应用。本题中,类 B是类 A的私有派生类,在类 B的成员函数 fun中调用基类 A的成员函数 move,并传入实参 3和 5。在类 B的成员函数 f1 中调用基类 A的成员函数 show,宋显示基类数据成员 a和 b的值。主函数 main中,定义了派生类 B的对象 d,并赋初值 3和 4。然后调用对象 d的成员函数 fun和 f1,通过上述对函数 fun和 n的功能的描述可知,程序最后输出 6和 9。5.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的

21、数据量D.以上三种说法都不对解析:解析 程序执行的实际计算工作量与不仅与程序的控制结构有一定的关系,还与处理的数据量有关,但还与数据的存储结构密切相关。所以,选项 A正确,选项 B和 C错误。所以,本题的正确答案为A。6.下面类的定义,有( )处错误。class MyClasspublic:void MyClass();MyClass(int Value);private:int i=0;(分数:2.00)A.1B.2C.3 D.4解析:解析 上述类的定义共有 3处错误。第一处:类的成员变量不能在定义时进行初始化:第二处:类的构造函数不能有返回值(包括 void类型);第三处:类的析构函数不能

22、有参数。7.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项 A和选项 B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项 C正确,选项 D错误。8.若有以下程序:#include iostreamusing namespace std;#define P

23、I 3.14class Pointprivate:int x,y;public:Point(int a,int B) x=a;y=b;int getx()return x;int gety()reurn y;class Circle: public Pointprivate:int r;public:Circle(int a,int b.int C) :Point(a,B) r=c;int getr()return r;double area()return PI*r*r;int main()Circle cl(5,7,10);coutc 1 .area()end1;return 0;程序执行

24、后的输出结果是(分数:2.00)A.314 B.157C.78.5D.153.86解析:解析 本题考核派生类的定义和应用。本程序设计了一个点类 Point,包含了横、纵两个坐标数据 x和 y,由它派生出了圆类 Circle,并加入了新的数据成员,即一个半径数据 r和一个求圆面积的函数成员 area。在主函数 main中,首先定义了一个圆 Circle类的对象 c1,并通过它的构造函数初始化其数据成员。由此可知,其半径 r的值为 10,所以其面积为 PI*10*10=314,即对象 c1的函数成员 area的返回值为314。9.语句 ofstream f(“DATA.DAT“,ios_base:

25、app|ios_base:binary);的功能是建立流对象 f,并试图打开文件 DATADAT 并与之连接,而且(分数:2.00)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件,若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:解析 本题考核文件 I/O操作。C+中可以在定义文件流对象的同时打开文件,也可以在定义文件流对象以后用 open函数打开文件。可以通过构造函数或 open函数的第 2个参数,确定文件的打开模式。根据以上知识点可知关于

26、题中语句的描述中,只有 C选项是正确的。10.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及(分数:2.00)A.阶段性报告B.需求评审 C.总结D.都不正确解析:解析 需求分析阶段的工作,可以概括为以下 4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。本题的正确答案为 B。11.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系 C.键D.域解析:解析 把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。本题的正确答案是 B。12.在

27、关系数据库中,用来表示实体之间联系的是(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。本题的正确答案是 D。13.若有以下程序:#includeiostreamusing namespace std;class sampleprivate:int n;public:sample()sample(int m)n=m;void addvalue(int m)sample s;s.n=n+m;*this=s;void disp()cout“n“=nend1;i

28、nt main()sample s(10);s.addvalue(5);s.disp();return 0;程序运行后的输出结果是(分数:2.00)A.n=10B.n=5C.n=15 D.n=20解析:解析 本题考核 this指针的应用。上述程序中 sample类定义了一个 addvalue非静态成员函数。addvalue函数的原型是:void addvalue (sample *this,int m);,该函数的第一个参数是执行该类对象的一个指针即 this指针。由于这个参数是系统隐含的,所以我们在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过 this访问这参数。上

29、述程序的最后输出结果是 15。14.有如下函数模板的定义:templateclass TT func(T x,T y)return x*x+y*y;在下列对 func的调用中不正确的是(分数:2.00)A.func(3,5);B.func(3,5);C.func(3,5.5); D.funcint(3,55);解析:解析 本题考核函数模板的使用。对于 C) 选项,编译系统从 3获得的信息是“T 对应于 int”,从 5.5处获得的信息是“T 对应于 double”,二者相互矛盾,在编译时会产生错误。对于 D) 选项中紧跟在函数名后的int就是模板实参表,通过它通知编译系统在调用过程中,doub

30、le 型的参数 5.5将被自动换成 int型。15.关于类和对象描述错误的是(分数:2.00)A.对象(Obiect)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例 D.类是对象的抽象,对象是类的实例解析:解析 C+中,类是用户自定义的一种数据类型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为一种数据类型,它可以定义多个对象16.下列语句段将输出字符*的个数为int i=100;while (1)i-;if(i=0)break;cout,*;(分数:2.00)A.98个B.99个 C.100个D.101

31、个解析:解析 本题考核指针的使用。在程序段中,有语句:char str=“BCDE“,*ptr=str:。由字符串赋值的规则可知:字符串数组 str中的 5个元素的值分别为:B、C、D、 E和/0。而指针 ptr指向 str0。最后程序要求输出*(p+4),即数组元素 str4的值,而 str4中存放的是字符/0。所以最后输出的值为 0。17.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operator/(xoperator-(),y);B.operator/(operator-(x),y); C.opera

32、tor-().operator/(y);D.operator/(operator-(x);解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、c2都是该类的对象,则 c1operator+(c2)与 c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与 c1+c2含义相同。同理,运算符“/“作为友元函数重载,则(-x)/y 与表达式operator/(-x),y)相同。前缀运算符“-”作为友元函数重载,则-x 与 operator-(x)相同,所以组合起来是 operator/(operator -(x),y);,即

33、 B选项。18.有以下程序:#includeiostreamusing namespace std;class Rpublic:R(int r1,int r2)R1=rl;R2=r2;void print();void print()const;private:int R1,R2;void R:print()coutR1“,“R2end1;void R:print() constcotR1“,“R2end1;int main()Ra(5,4);const R b(20,52);b.print();return 0;执行后的输出结果是(分数:2.00)A.5,4B.20,52 C.0,0D.4,

34、5解析:解析 使用 const关键字修饰的对象成为常对象,题中对象 b被声明为类 R的常对象。使用const关键字说明的成员函数称为常成员函数,类 R中用 const重载了函数 print()。在使用常对象和常成员函数时应注意的是:const 是函数类型的一个组成部分,因此在部分也要带 const关键字:常成员函数不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数;如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数;const 关键字可以参与区分重载函数。本题中,b 为类 R的常对象,通过 b只能调用类 R的常成员函数 print()

35、输出 20,52。19.下列关于构造函数的描述中,错误的是( )。(分数:2.00)A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载 解析:解析 构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。C+在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。构造函数可以是内联函数,也可以重载。20.若类 A和类 B的定义如下:class Aint i,j;public:int geti()return i;class B:public Aint k;public:void make()k=i*j;

36、;则上述定义中非法的表达式是(分数:2.00)A.k=i*j B.int k;C.retum i;D.void make()解析:解析 本题考核派生类的定义和访问权限。变量 i和 j都是基类 A的私有变量,它们是隐蔽的,在派生类中不能直接访问。21.以下选项中合法的用户标识符是(分数:2.00)A.longB._2Test C.3DmaxD.dat解析:解析 有关用户标识符的考题经常在考试中出现,考生应该重视。A) 选项中 long是 C+语言保留字,不能用于用户标识符。C) 选项中的 3Dmax,它的第一个字符是数字 3,不是所规定字母或下划线,所以也不是合法的用户标识符。D) 选项中的 A

37、dat,它中间出现了符号,不符合标识符的定义规则。所以只有 B) 选项中的标识符是合法的 C+标识符。22.若有如下程序:#includeiostreamusing namespace std;int s=O;class samplestatic int n;public:sample(int i)n=i;static void add()s+=n;int sample:s=0;int main()sample a(2),b(5);sample:add();coutSend1;return 0;程序运行后的输出结果是(分数:2.00)A.2B.5 C.7D.3解析:解析 本题考核静态数据成员和

38、静态成员函数的应用。程序中定义一个类 sample,它包括一个静态数据成员 n和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n赋值。在主函数main中,定义对象 a(2)时,通过构造函数使静态数据成员 n的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。23.下面有关重载函数的描述中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表 D.重载函数名可以不同解析:解析 所谓函数重载,是指同一个函数名可以

39、对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。即重载函数不许具有不同的形参列表。24.下列叙述中正确的是(分数:2.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法解析:解析 选项 A错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。选项

40、 B错误,自顶向下、逐步细化的设计过程,主要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。选项 D错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。选项 C为正确答案。25.下列对字符数组进行初始化的语句正确的是(分数:2.00)A.chara=“Hello“; B.chara=H,e,l

41、,l,o;C.char a5=“Hello“;D.chara25=“Hello“,“World“:解析:解析 本题考查对字符数组的初始化。A) 选项中,数组 a在定义后紧跟初始化的情况下可省略数组长度,其最终数组长度由所赋字符串常量的长度给定。A) 选项是正确。B) 选项中,a 是一个二维数组,二维数组也能在定义时被初始化。如果对全部元素都赋初值,则定义数组时第一维的大小可以忽略,但第二维的大小不能省略。故 B) 选项是错误。C) 选项和 D) 选项都忽略了字符串的大小要比字符串中的字符数多 1这一点,造成了数组的越界。26.在软件生存周期小,能准确地确定软件系统必须做什么和必须具备哪些功能的

42、阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为 D。27.在深度为 5的满二叉树中,叶子结点的个数为(分数:2.00)A.31B.32C.16 D.15解析:解析 二叉树的一个性质是,在二叉树的第 k层上,最多有 2k-1,(k1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1个结点。所以,在深度为 5的满二叉树中,所有叶子结点在第 5层上,即其结点数为 2

43、 k-1=25-1=16。28.重载输入流运算符必须使用的原型为(分数:2.00)A.ostreamclass Aprivate:int a;public:A(int i)a=i;void disp()couta“,“;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,“;class C: public B,public Aprivate:int c;public:C(int k):A(k-2),B(k+2)c=k;void disp()A:disp();B:disp();coutcend1;int main()C obj(10

44、);obj.disp();return 0;程序执行后的输出结果是(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,10 解析:解析 本题考核派生类构造函数的使用。本题中,派生 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。31.在面向对象的程序设计中,下列叙述中错误的是(分数:2.00)A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖 C.下一层次的对象可以继承上一层次对象的某些属性D.上述三种说法都正确解析:解析 在面向对象的程序设计中,一个对象是一个可以独立存在

45、的实体。各个对象之间相对独立,相互依赖性小。所以,选项 B错误,应为所选。32.对于语句 cinx 中的各个组成部分,下列叙述中错误的是(分数:2.00)A.“cin”是一个输出流对象 B.“;”的作用是表示语句结束C.“x”是一个变量D.“”称作提取运算符解析:解析 本题考核 C+的输出流。cin 是一个输入流对象,所以 A选项的叙述是错误的。33.在 C+语言中函数返回值的类型是由( )决定的。(分数:2.00)A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型 D.调用该函数时的主调函数类型解析:解析 本题考查对函数定义的掌握程度。函数类型决定了函

46、数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将 return 后面的表达式的类型强制转换为该函数定义时指定的返回值类型。34.函数定义为 Fun(int &i),变量定义 n=100则下面调用正确的是(分数:2.00)A.Fun(20);B.Fun(20+n);C.Fun(n); D.Fun(&n);解析:解析 本题考核函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。35.下列对模板的声明中正确的是(分数:2.00)A.templateTB.templateclass T1,T2C.templateclass

47、T1,classT2 D.templateclassT1;classT2解析:解析 本题考核模板的定义。模板定义的类型参数表中包含一个或多个由逗号分隔的类型参数项,每一项由关键字 class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。二、填空题(总题数:15,分数:30.00)36.设一棵完全二叉树共有 700个结点,则在该二叉树中有 【1】 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:350)解析:解析 在任意一棵二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结

48、点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有 1个度为 1的结点。因此,设一棵完全二叉树具有 n个结点,若 n为偶数,则在该二叉树中有 n/2个叶子结点以及 n/2-1个度为 2的结点,还有 1个是度为 1的结点;若 n为奇数,则在该二叉树中有n/2+1 个叶子结点以及n/2个度为 2的结点,没有度为 1的结点。本题中,完全二叉树共有 700个结点,700 是偶数,所以,在该二叉树中有 350个叶子结点以及 349个度为 2的结点,还有 1个是度为 1的结点。本题的正确答案为 350。37.在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。(分数:2.00)填空项 1:_ (正确答案:分类性)解析:解析 在面向对象方法中,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,它描述了属于该对象类型的所有对象的

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

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

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