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

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

1、二级 C+笔试-267 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostreamusing namespace std;class TlestClassint n;public:TestClass(int k):n(k)int get()return n;int get()constreturn n+1;int main()TestClass p(5);colast TestClass q(6);coutp.get()q.get();return 0;执行后的输出结果是( )。(分数:2.00)A.55B

2、.57C.75D.772.下列哪种数据模型可以用树形结构来表示实体之间联系( )。(分数:2.00)A.网状模型B.数据模型C.关系模型D.层次模型3.下列程序执行后,输出的结果是( )。int x=-5,y=0;while(+x)y+;coutyend1;(分数:2.00)A.1B.2C.4D.54.1,2,3,4 四个元素按顺序进栈,不可能的出栈顺序为( )。(分数:2.00)A.1 2 3 4B.2 3 4 1C.1 4 3 2D.3 1 4 25.设程序如下:#includeiostreamusing namespace std;int main()int *p,*q,r=10;q=p

3、=cout*p+1end1;return 0;以上程序的输出结果是( )。(分数:2.00)A.p的地址B.r的地址C.11D.运行错误6.对长度为 N的线性表进行顺序查找,在最坏情况下,需要的比较次数是( )。(分数:2.00)A.N+1B.NC.(N+1)/2D.N/27.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为( )。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩8.下列工具中,不属于结构化分析的常用工具的是( )。(分数:2.00)A.

4、PAD图B.数据字典C.判定树D.数据流图9.设有下列二叉树:(分数:2.00)A.DEBFCAB.DBEAFCC.ABDECFD.ABCDEF10.下列程序执行后,屏幕的输出是( )。#includeiostreamusing namespace std;void swap(int x,int y)int temp=x;x=y;y=temp;cout“x=“x“,y=“yend1;int main()int x=3,y=2;swap(x,y);cout“x=“x“,y=“yend1;return 0;(分数:2.00)A.x=3,y=2x=3,y=2B.x=2,y=3x=3,y=2C.x=2

5、,y=3x=2,y=3D.x=3,y=2x=2,y=311.类中的一个字符指针成员指向具有 m个字节的存储空间时,它所能存储的字符串的最大长度为( )。(分数:2.00)A.m-2B.m-1C.mD.m+112.下面的函数调用为:fun(x+y,3,min(n-1,y)则 fun的实参个数是( )。(分数:2.00)A.3B.4C.5D.613.执行下列语句:#includeiostreamusing namespace std;int main()int x=3;if(x=5)coutx+end1;elsecoutxend1;return 0;程序的输出是( )。(分数:2.00)A.3B.

6、4C.5D.614.下面关于常成员函数的说法中正确的是( )。(分数:2.00)A.常成员函数不能修改任何的数据成员B.常成员函数只能修改一般的数据成员C.常成员函数只能修改常数据成员D.常成员函数只能通过常对象来调用15.下列关于栈的叙述中,正确的选项是( )。(分数:2.00)A.在栈中只能删除数据B.在栈中只能插入数据C.栈是先进先出的线性表D.栈是先进后出的线性表16.下列的方法中,不属于软件调试技术的是( )。(分数:2.00)A.强行排错法B.集成测试法C.回溯法D.原因排除法17.在每个 C+程序中必须有且仅有一个( )。(分数:2.00)A.函数B.主函数C.预处理指令D.语句

7、18.下面的符号中可以用作 C+标识符的是( )。(分数:2.00)A.3testB.fccothterC.elseD.radius19.假定 TestClass为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.TestClass(TestClass x)B.TestClassclass TestClassstatic int i;public:TestClass()i+;TestClass()i-;static int getVal()return i;int TestClass:i=0;void f()TestClass obj2;coutobj2.getVal();

8、int main()TestClass obj 1;f();TestClass *obj3=new TestClass;coutobj3-getVal();delete obj3;coutTestClass:getVal();return 0;程序的输出结果是( )。(分数:2.00)A.232B.221C.222D.23121.下面关于指针的说法中错误的是( )。(分数:2.00)A.在指针定义的同时可以对其进行初始化B.指针根据其所指向变量的类型的不同,所占用内存大小也不同C.指针中存放的是内存单元的地址D.相同类型的指针之间可以相互赋值22.有如下程序:#includeiostreamu

9、sing namespace std;int main()cout.fill(*);cout.width(6);cout.fill(#);cout888end1;return 0;的执行结果是( )。(分数:2.00)A.#888B.888#C.*888D.888*23.数据视图的描述称为( )。(分数:2.00)A.外模式B.内模式C.概念模式D.存储模式24.下面关于函数模板的表述中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译过程中不会产生任何代码C.类模板只能有虚拟类型的参数D.用类模板定义一个对象时,实参不能省略25.下列对于线性链表的描述中

10、,正确的是( )。(分数:2.00)A.存储空间必须连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且各元素的存储顺序是任意的C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间不一定是连续,且前件元素一定存储在后件元素的前面26.有如下类声明:class TestClassint n;public:TestClass(int i=0):n(i)void setValue(int n0);下面关于 setValue成员函数的实现中,正确的是( )。(分数:2.00)A.TestClass:setValue(int n0)n=n0;)B.void TestClass:s

11、etValue(int n0)n=n0;C.void setValue(int n0)n=n0;D.setValue(int n0)n=n0;27.下面关于虚函数的描述中,正确的是( )。(分数:2.00)A.基类中利用 virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加 virtual来说明B.虚函数是非成员函数C.虚函数是 static类型的成员函数D.派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型28.下面类的声明中的几个语句,正确的是(设定语句是主函数中的语句)( )。class TestClassprivate:int data;publi

12、c:TestClass(int g_dat(分数:2.00)A.data=g_data;br29.有如下程序:#includeiostreamusing namespace std;classApublic: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.ABCB.BACC.ACBD.CBA30.下面关于派生类的描述中错误的是( )。(分数:2.00)A.派生类中至少有一个基类B.一个派生类可以作为

13、另一个派生类的基类C.派生类只继承了基类中的公有成员和保护成员D.派生类的缺省继承方式是私有31.下列关于抽象类的表述中正确的是( )。(分数:2.00)A.派生类必须要实现作为基类的抽象类中的纯虚函数B.抽象类的成员函数至少有一个没实现C.抽象类不可能用来定义对象D.派生类不能成为抽象类32.下面不属于 C+的预定义的流对象是( )。(分数:2.00)A.cinB.iostreamC.clogD.Celt33.有如下定义:int b10=1,2,3,4,5,6,7,8,9,10,*q=b;则数值为 8的表达式是( )。(分数:2.00)A.*q+8B.*(q+7)C.*q+=8D.q+734

14、.有如下程序:#includeiostreamusing namespace std;class Baseprotected:Base()coutBase;Base(char c)coutc;class Derived:public Basepublic:Derived(char c)coutc;int main()Derived d(Derived);return 0;执行这个程序屏幕上将显示输出( )。(分数:2.00)A.DerivedB.DerivedBaseC.BaseDerivedD.DerivedDerived35.在公有派生时,派生类中定义的成员函数只能访问原基类的( )。(分

15、数:2.00)A.私有成员、保护成员和公有成员B.保护成员和私有成员C.公有成员和保护成员D.公有成员和私有成员二、填空题(总题数:15,分数:30.00)36.一个项目具有一个项目主管,一个项目主管只可管理一个项目,则实体“项目主管”与实体“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_37.在最坏情况下,冒泡排序的时间复杂度为 1。(分数:2.00)填空项 1:_38.在结构化分析使用的数据流图中,使用用 1 解释其中的图形元素。(分数:2.00)填空项 1:_39.二叉树的遍历分为三种,它们是前序遍历、_遍历和后序遍历。(分数:2.00)填空项 1:_40.数据流的类型有

16、 1 和事务型。(分数:2.00)填空项 1:_41.执行下列语句后,变量 n的值是_。int n=0;for(int i=1;i=3;i+)for(int j=1;j=i;j+)n+;(分数:2.00)填空项 1:_42.C+中通常和一个运算符连用,构成一个运算符函数名的 C+关键字为 1。(分数:2.00)填空项 1:_43.C+中每个类都有一个隐含的 1 指针。(分数:2.00)填空项 1:_44.C+中将两个字符串连接起来组成一个字符串的函数是 1。(分数:2.00)填空项 1:_45.如果把类 FriendClass定义为类 TestClass的友元类,则应该在类 TestClass

17、的定义中加入语句 1。(分数:2.00)填空项 1:_46.在下面程序的横线处填上适当的语句,使程序执行后的输出结果为 ABCD。#includeiostreamusing namespace std;classApublic:A()coutA;class B:_public:B()coutB;class C:_public:C()coutC;class D:public B,public Cpublic:D()coutD;void main()D obj;)(分数:2.00)填空项 1:_47.设 p是指向一个类动态对象的指针变量,则执行“delete p;“语句时,将自动调用该类中的 1

18、函数。(分数:2.00)填空项 1:_48.有如下程序:#includeiostreamusing namespace std;class Apublic:virtual void f()cout“1“;class B:public Apublic:B ()cout“2“;class C:public Bpublic:virtual void f()B:f();cout“3“;int main()A aa,*p;B bb;C cc;p=p-f();return 0;执行上面程序的输出是_。(分数:2.00)填空项 1:_49.执行下列语句序列:im x=1,coutx-yend1;输出结果为_

19、。(分数:2.00)填空项 1:_50.以下函数模板 min的功能是返回数组 a中最小元素的值。请将横线处缺失部分补充完整。templatetypename TT min(T a,int n)T temp=a0;for(int i=1,in;i+)if(aitemp)_;return temp;(分数:2.00)填空项 1:_二级 C+笔试-267 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostreamusing namespace std;class TlestClassint n;public:Tes

20、tClass(int k):n(k)int get()return n;int get()constreturn n+1;int main()TestClass p(5);colast TestClass q(6);coutp.get()q.get();return 0;执行后的输出结果是( )。(分数:2.00)A.55B.57 C.75D.77解析:解析 C+中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为“intget()const;“的函数,对于非常对象将调用原型为“int get();“的函数。因为首先用 5对对象 p进行了初始化,所以执行 p.get()时直接返回

21、 5,而对于常对象则以 6对 q进行初始化,在调用 q.get()时,将调用原型为“int get()const;“的函数该函数将返回 n+1,第二个输出应为 7,所以本题答案为 57。2.下列哪种数据模型可以用树形结构来表示实体之间联系( )。(分数:2.00)A.网状模型B.数据模型C.关系模型D.层次模型 解析:解析 层次模型是最早发展出来的数据库模型。它的基本结构是树形结构。3.下列程序执行后,输出的结果是( )。int x=-5,y=0;while(+x)y+;coutyend1;(分数:2.00)A.1B.2C.4 D.5解析:解析 循环条件是+x,在 C+中,对于非 0值全都为真

22、,0 代表假。x 的初始值为-5所以循环能进行 4次。4.1,2,3,4 四个元素按顺序进栈,不可能的出栈顺序为( )。(分数:2.00)A.1 2 3 4B.2 3 4 1C.1 4 3 2D.3 1 4 2 解析:解析 栈的操作原则为后进先出。选项 A)中出栈顺序可按“1 进,1 出,2 进,2 出,3 进,3 出,4进,4 出”实现;选项 B)可按 1进,2 进,2 出,3 进,3 出,4 进,4 出实现;C)可按“1 进,1 出,2进,3 进,4 进,4 出,3 出,2 出”实现。选项 D) 无法实现。5.设程序如下:#includeiostreamusing namespace st

23、d;int main()int *p,*q,r=10;q=p=cout*p+1end1;return 0;以上程序的输出结果是( )。(分数:2.00)A.p的地址B.r的地址C.11 D.运行错误解析:解析 p 为一个二级指针,其存放的是指针变量 q的地址,而 q存放的又是 r的地址。故式子+p相当于对 r的引用。所以最后输出的结果为 11。6.对长度为 N的线性表进行顺序查找,在最坏情况下,需要的比较次数是( )。(分数:2.00)A.N+1B.N C.(N+1)/2D.N/2解析:解析 在进行顺序查找过程中,如果线性表中被查的元素是线性表中的最后一个,或者被查元素根本不在线性表中,则为了

24、查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。所以在此最坏情况下所需要比较的次数是该线性表的长度值。7.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为( )。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 关键字是指属性或属性的组合,其值能够惟一地标识一个元组,而在 SC中学号和课号的组合可以对元组进行惟一的标识。8.下列工具中,不属于结构化分析的常用工具的是( )。(分数:2.00)A.PAD图 B.数据字典C.判

25、定树D.数据流图解析:解析 结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而 PAD图是常见的过程设计工具中的图形设计。9.设有下列二叉树:(分数:2.00)A.DEBFCAB.DBEAFCC.ABDECF D.ABCDEF解析:解析 所谓前序遍历,首先访问根结点,然后遍历左予树,最后遍历右子树;并且在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。10.下列程序执行后,屏幕的输出是( )。#includeiostreamusing namespace std;void swap(int x,int y)int temp=x;x=y;y=temp;cout“x=

26、“x“,y=“yend1;int main()int x=3,y=2;swap(x,y);cout“x=“x“,y=“yend1;return 0;(分数:2.00)A.x=3,y=2x=3,y=2B.x=2,y=3x=3,y=2 C.x=2,y=3x=2,y=3D.x=3,y=2x=2,y=3解析:解析 C+中默认的参数传递是值传递,也就是将实参的副本传递给被调用函数的形参,被调用的函数中对形参的任何改动都不会影响实参。11.类中的一个字符指针成员指向具有 m个字节的存储空间时,它所能存储的字符串的最大长度为( )。(分数:2.00)A.m-2B.m-1 C.mD.m+1解析:解析 在 C+

27、中,字符串以0作为字符串结束的标志,所以个数为 m-1。12.下面的函数调用为:fun(x+y,3,min(n-1,y)则 fun的实参个数是( )。(分数:2.00)A.3 B.4C.5D.6解析:解析 在 C+中,形参列表是由逗号分开的。分别说明函数的各个参数。在 fun()函数中它包括三个形参:x+y,3 和 min(n-1,y);当调用一个函数时,实参与形参一对一匹配,所以突参个数也是 3个。13.执行下列语句:#includeiostreamusing namespace std;int main()int x=3;if(x=5)coutx+end1;elsecoutxend1;re

28、turn 0;程序的输出是( )。(分数:2.00)A.3B.4C.5 D.6解析:解析 if(条件)语句 1 else语句 2,语句的执行过程是:首先判断条件是否为真(不为 0),为真则 0执行语句 1,否则执行语句 2。题目中的条件是 x=5,意思是把 5赋予变量 x,它将 x置 5且返回一个真值。14.下面关于常成员函数的说法中正确的是( )。(分数:2.00)A.常成员函数不能修改任何的数据成员 B.常成员函数只能修改一般的数据成员C.常成员函数只能修改常数据成员D.常成员函数只能通过常对象来调用解析:解析 C+中使用 const关键字来说明函数称为常成员函数,常成员函数不能更新对象中

29、的数据成员。15.下列关于栈的叙述中,正确的选项是( )。(分数:2.00)A.在栈中只能删除数据B.在栈中只能插入数据C.栈是先进先出的线性表D.栈是先进后出的线性表 解析:解析 栈是限定在一端进行插入与删除的线性表。这种线性表只能在固定的一端进行插入和删除操作,因此栈又称后进先出表或先进后出表。16.下列的方法中,不属于软件调试技术的是( )。(分数:2.00)A.强行排错法B.集成测试法 C.回溯法D.原因排除法解析:解析 调试的关键在于推断程序内部的错误位置及原因。主要的凋试方法有强行排错法、回溯法和原因排除法。17.在每个 C+程序中必须有且仅有一个( )。(分数:2.00)A.函数

30、B.主函数 C.预处理指令D.语句解析:解析 在每一个 C+程序中必须有且只有一个主函数,每个程序的执行都是从主函数的开始。18.下面的符号中可以用作 C+标识符的是( )。(分数:2.00)A.3testB.fccothterC.elseD.radius 解析:解析 C+标识符是以字母、下划线开头的,由字母、数字及下划线组成的,不与关键字相同的字符串。选项 C)中 else为关键字。19.假定 TestClass为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.TestClass(TestClass x)B.TestClassclass TestClassstatic

31、int i;public:TestClass()i+;TestClass()i-;static int getVal()return i;int TestClass:i=0;void f()TestClass obj2;coutobj2.getVal();int main()TestClass obj 1;f();TestClass *obj3=new TestClass;coutobj3-getVal();delete obj3;coutTestClass:getVal();return 0;程序的输出结果是( )。(分数:2.00)A.232B.221 C.222D.231解析:解析 由于

32、 i是类 TestClass的静态成员,该成员被类的所有实例共享。当定义 obj1时,系统自动调用构造函数 TestClass(),i 的值将加 1;调用函数 f()时,在定义 obj2时系统会自动调用构造函数TestClass (),i 的值将再加 1;调用 obj2.getVal();后,将 i的值输出,输出值为 2;当调用函数 f()即将结束时,系统自动调用析构函数TestClass(),i 的值将减 1;当定义 obj3时,系统自动调用构造函数 TestClass(),i 的值将加 1,调用 coatobj3-getVal();后,将 i的值输出,输出值为 2:调用 delete ob

33、j3后将执行 TestClass的析构函数estClass(),执行后,i 的值将减,TestClass:getVal()为类的一个静态成员函数,其作用是返回私有静态成员变量 i的值 1。21.下面关于指针的说法中错误的是( )。(分数:2.00)A.在指针定义的同时可以对其进行初始化B.指针根据其所指向变量的类型的不同,所占用内存大小也不同 C.指针中存放的是内存单元的地址D.相同类型的指针之间可以相互赋值解析:解析 指针是一种用来存放其他变量地址的数据类型,它的声明形式为:类型+变量名,可以在声明的时候对其进行初始化。由于其存放的是内存单元的地址,所以大小一般都是 4个字节。22.有如下程

34、序:#includeiostreamusing namespace std;int main()cout.fill(*);cout.width(6);cout.fill(#);cout888end1;return 0;的执行结果是( )。(分数:2.00)A.#888 B.888#C.*888D.888*解析:解析 C+在流操作中,利用 cout对象的 width属性设置输出字符的宽度,用 fill函数来设置需要填充的字符。题目程序中,首先设置填充字符为*,输出宽度为 6,但存输出前又设置了填充字符为#。所以在输出时,其填充字符为#,由于 888不足 6个字符,所以在前面以三个“#”来填充。2

35、3.数据视图的描述称为( )。(分数:2.00)A.外模式 B.内模式C.概念模式D.存储模式解析:解析 外模式也称子模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导而出来的,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。24.下面关于函数模板的表述中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译过程中不会产生任何代码C.类模板只能有虚拟类型的参数 D.用类模板定义一个对象时,实参不能省略解析:解析 类模板本身在编译时是不会产生代码的。只有在其实例化以后才产生代码。定义一个对象时,不能省略其实参。25.

36、下列对于线性链表的描述中,正确的是( )。(分数:2.00)A.存储空间必须连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且各元素的存储顺序是任意的 C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间不一定是连续,且前件元素一定存储在后件元素的前面解析:解析 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。26.有如下类声明:class TestClassint n;public:TestClass(int i=0):n(i)void setValue(int

37、n0);下面关于 setValue成员函数的实现中,正确的是( )。(分数:2.00)A.TestClass:setValue(int n0)n=n0;)B.void TestClass:setValue(int n0)n=n0; C.void setValue(int n0)n=n0;D.setValue(int n0)n=n0;解析:解析 C+中类成员函数的实现形式为:返回类型类名:成员函数名(参数列表)代码块27.下面关于虚函数的描述中,正确的是( )。(分数:2.00)A.基类中利用 virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加 virtual来说明 B

38、.虚函数是非成员函数C.虚函数是 static类型的成员函数D.派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型解析:解析 虚函数是非 static类型的成员函数,基类中可以利用 virtual关键字来声明虚函数,派生类中定义相同原型函数时可不必加 virtual说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。28.下面类的声明中的几个语句,正确的是(设定语句是主函数中的语句)( )。class TestClassprivate:int data;public:TestClass(int g_dat(分数:2.00)A.data=g_

39、data;br 解析:解析 C+中,若没有类的显式声明构造函数则系统会为其提供一个默认的构造函数,若提供了构造函数则会将系统提供的默认的构造函数覆盖。调用构造函数时,实参必须与形参匹配。但是如果声明一个对象指针时,不是定义一个对象,不调用对象的构造函数。29.有如下程序:#includeiostreamusing namespace std;classApublic:A()cout“A“;class Bpublic:B()cout“B“;class C:public AB b;public:C()cout“C“;int main()C obj;return 0;执行后的输出结果是( )。(分数

40、:2.00)A.ABC B.BACC.ACBD.CBA解析:解析 C+程序中的执行子类,首先执行基类的构造函数,然后执行数据成员类的构造函数,最后执行子类本身的构造函数,所以输出结果为 ABC。30.下面关于派生类的描述中错误的是( )。(分数:2.00)A.派生类中至少有一个基类B.一个派生类可以作为另一个派生类的基类C.派生类只继承了基类中的公有成员和保护成员 D.派生类的缺省继承方式是私有解析:解析 继承方式有公有继承、私有继承和保护继承 3种,缺省的继承方式是私有继承。派生类从基类继承所有的成员,但是对于基类的私有成员派生类是不可直接访问的。31.下列关于抽象类的表述中正确的是( )。

41、(分数:2.00)A.派生类必须要实现作为基类的抽象类中的纯虚函数B.抽象类的成员函数至少有一个没实现C.抽象类不可能用来定义对象 D.派生类不能成为抽象类解析:解析 C+中拥有纯虚函数的类称为抽象类。抽象类不能用采定义对象。如果一个抽象类的派生类没有重定义来自基类的某个纯虚函数,刚该函数在派生类中仍是纯虚函数,该类仍为抽象类。32.下面不属于 C+的预定义的流对象是( )。(分数:2.00)A.cinB.iostream C.clogD.Celt解析:解析 C+中的四个预定义流对象:cout,cin,cerr,clog。33.有如下定义:int b10=1,2,3,4,5,6,7,8,9,1

42、0,*q=b;则数值为 8的表达式是( )。(分数:2.00)A.*q+8B.*(q+7) C.*q+=8D.q+7解析:解析 数组的下标是从 0到数组的长度减 1。*(p+i)是取数组的第 i+1个元素,即下标为 i的元素。因此*(p+7)取数组的第八个元素,即元素 8。34.有如下程序:#includeiostreamusing namespace std;class Baseprotected:Base()coutBase;Base(char c)coutc;class Derived:public Basepublic:Derived(char c)coutc;int main()De

43、rived d(Derived);return 0;执行这个程序屏幕上将显示输出( )。(分数:2.00)A.DerivedB.DerivedBaseC.BaseDerived D.DerivedDerived解析:解析 派生类 Derived由基类 Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构造函数。调用 Derived d(Derived);后,执行类 Derived构造函数的 Derived(char c),系统自动调用基类的缺省构造函数 Base(),输出字母 Base;再执行派生类的构造函数 Derived(char c),输出字母 Derived。35.在公有

44、派生时,派生类中定义的成员函数只能访问原基类的( )。(分数:2.00)A.私有成员、保护成员和公有成员B.保护成员和私有成员C.公有成员和保护成员 D.公有成员和私有成员解析:解析 派生类中的成员,一部分是从基类继承来的,另一部分是自己定义的新成员,所有的这些成员也分为公有、私有和保护三种访问权限。其中,从基类继承下来的全部成员构成派生类的基类,这部分的私有成员是派生类不能直接访问的,而公有成员和保护成员则是派生类可以直接访问的,但它们在派生类中的访问属性随着派生类对基类的继承方式而改变。二、填空题(总题数:15,分数:30.00)36.一个项目具有一个项目主管,一个项目主管只可管理一个项目

45、,则实体“项目主管”与实体“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_ (正确答案:一对一 或 1:1)解析:解析 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。所以实体“项目主管”与实体“项目”的联系属于一对一的联系。37.在最坏情况下,冒泡排序的时间复杂度为 1。(分数:2.00)填空项 1:_ (正确答案:n(n-1)/2)解析:解析 冒泡排序法是通过相邻数据元素的交换逐步将线

46、性表变成有序。假设线性表的长度为 n,则在最坏的情况下,冒泡排序需要经过 n/2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n-1)/2。38.在结构化分析使用的数据流图中,使用用 1 解释其中的图形元素。(分数:2.00)填空项 1:_ (正确答案:数据字典)解析:解析 数据字典(DataDictionary,简称 DD) 的作用是对 DFD中出现的被命名的图形元素进行确切解释。通常数据字典包含的信息有名称、别名、何处使用/如何使用、内容描述、补充信息等。39.二叉树的遍历分为三种,它们是前序遍历、_遍历和后序遍历。(分数:2.00)填空项 1:_ (正确答案:中序

47、)解析:解析 二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左予树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。40.数据流的类型有 1 和事务型。(分数:2.00)填空项 1:_ (正确答案:变换型)解析:解析 典型的数据流

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

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

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