【计算机类职业资格】二级C++笔试-267及答案解析.doc
《【计算机类职业资格】二级C++笔试-267及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-267及答案解析.doc(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解析:解析 在进行顺序查找过程中,如果线性表中被查的元素是线性表中的最后一个,或者被查元素根本不在线性表中,则为了
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 267 答案 解析 DOC
