欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1324525       资源大小:88.50KB        全文页数:29页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、二级 C+笔试-285 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostream.husing namespace std;Class Basepublic:Base()cout“BB”;f();void()cout“BF”;class Derived:public Basepublic:Derived()cout“DD”;void f()cout“Df”;);int main()Derived d;return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDDB.BBDfDDDfC.D

    2、DD.DDBBBf2.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是( )。(分数:2.00)A.ofstream myfile;mynle.open(“d:ofile.txt”);B.ofstream * mynle=new ofstream;mynle-open(“d:Ofile.txt”);C.ofstream myhle(“d:ofile.txt”);D.ofstream * mynle=new(“d:ofile.txt”);3.有如下程序:#includeiostreamusing namespace std;classApublic:virtua1 voidfunc1(

    3、)cout“A1”;voidfunc2()cout“A2”;class B:publicApublic:void funcl()cout“B1”;void func2()cout“B2”;intmain()A*pnew B;p-funcl();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B24.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。(分数:2.00)A.a=b+lB.a=b=c+2C.int 18.5%3D.aa+7=c+b5.有如下程序:#includeiostreamusi

    4、ng namespqce Std;class TestClassprivate;Char C;public;TestClass(char n):c(n)TestClass()coutc;class TestClassl:public TestClassprivate:Char C;public:TestClassl(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClassl obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)A.xyB.yxC.xD.y6.针对数组定义 intdata10,下列表

    5、述中错误的是( )。(分数:2.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data共有 10个元素,其首元素是 data17.关于纯虚函数,下列表述中正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类8.以下类定义中可能会引起错误的语句是( )。Class Apublic:A()/1int i;/2private:int j;/3 A(int i)i+;/4;(分数:

    6、2.00)A.1B.2C.3D.49.结构化分析方法是面向( )的自顶向下,逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标10.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类B.对象C.函数D.模板类11.下列选项中,不是一个算法的基本特征的是( )。(分数:2.00)A.完整性B.可行性C.有穷性D.拥有足够的情报12.有如下程序:#include(iostreamusing namespace std;Class Testpublic:Test() n+2;Test() n-3;)static int getNum()

    7、return n;private:static int n;int Test:n1;int main()Test*p=new Test;delete p;cout“n”Test:getNum()endl;return 0;执行该程序的输出结果是( )。(分数:2.00)A.n0B.n1C.n2D.n=313.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序14.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能15.设有定义:class personint num;char name10;

    8、public:void init(int n,char*m);personstd30则以下叙述不正确的是( )。(分数:2.00)A.std是一个含有 30个元素的对象数组B.std数组中的每个元素都是 person类的对象C.std数组中的每个元素都有自己的私有变量 num和 nameD.std数组中的每个元素都有各自的成员函数 init16.下列叙述中正确的是( )。(分数:2.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在

    9、存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的17.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是( )。(分数:2.00)A.DB包括 DBS和 DBMSB.DBMS包括 DB和 DBSC.DBS包括 DB和 DBMSD.没有任务关系18.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.2C.3D.919.有以下程序:#includeiostreamusing namespace std;class Aprivate:i

    10、nt a;public:A(int i)ai;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)ck;)void disp()a:disp();B:disp();coutcendl;int main()C obj(10);objdisp();return 0;程序执行后的输出结果是( )。(分数:2.00)A.10,10,10B.10,12,14C.8

    11、,10,12D.8,12,1020.若有以下定义:inta1,2,3,4,5,6,7;char clb,c2=2;则数值不为 2的表达式是( )。(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-021.有下列二叉树,对此二叉树中序遍历的结果是( )。(分数:2.00)A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ22.下列程序的输出结果是( )。#includeiostream.hvoid main()char*str”12123434”;int x10,x2=0,x30,x40,i;for(i=0;stri!/0;i+)switch(s

    12、tri)case1:x4+;case2:x3+;case3:x2+;case4:xl+;)coutxl“,”x2“,”x3“,”x4;(分数:2.00)A.8,6,4,1B.8,6,3,2C.8,8,4,lD.8,6,4,223.有如下的程序:#includecstring.h)#ingcludeiostream.h)using namespace std;Class MyStringpublic:MyString(const char*s);MyString()deletedata;protected:unsigned len;char*data;MyString:MyString(cons

    13、t char*S)lenstflen(s);daranew char1en+1;strcpy(dara,s);int main()MyString a(“C+Programing”);MyString b(a);return 0;在运行上面的程序时出错,出错的原因是( )。(分数:2.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深拷贝)的复制构造函数C.构造对象 a时实参与形参类型不符D.系统不能生成默认的复制构造函数24.有如下程序:#inCludeiostreamusing namespace std;Class TestClasspublic:virtUal vo

    14、id furll()cout“funlTestclass”;virtual void fun2()cout“fun2TestClass”;class TestClassl:public TestClassvoid fun()cout“funlTestClass1”;int main()TestClass obj1,*p;TestClassl obj2;pi+)s*a+;returns;void main()inta:1,2,3,4,5,6,7,8;intb=Func(a,6)+Func(class Basepublic:void fun()cout“Basefun”endl;);class D

    15、erivde:public Basepublic:void fun()/调用基类的函数 fun()cout“Derived fun”endl;(分数:2.00)填空项 1:_47.在下面横线上填上适当的语句,完成程序。#includeiostreamusing namespace std;class Baseint x;public:Base(int i)xi;Base();class Derived:public Basepublic:_/完成类 Derive构造函数的定义;iht main()Derived obj;return 0;在横线处应填入的语句是_。(分数:2.00)填空项 1:

    16、_48.下列程序将 x、y 和 z按从小到大的顺序排列,请将下面的函数模板补充完整。templateclass Tvoid order( )T alif(xy)ax;xy; ya;if(yz)ay;y=Z; za;if(xy)aX;X=y; y=a;(分数:2.00)填空项 1:_49.下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应该出现的语句是_。#includeiostream.h#include(fstream.h)void main()fstream filel,file2;charfnl10,fn210,ch;cout“输入源文件名”;cinfnl;cout

    17、“输入目标文件名”;cinfn2;filel.open(fnl,ios:in);while(ch;filel.get()!EOF)coutch;file2.put(ch);filel.close();file2.close();(分数:2.00)填空项 1:_50.operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:2.00)填空项 1:_二级 C+笔试-285 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostream.

    18、husing namespace std;Class Basepublic:Base()cout“BB”;f();void()cout“BF”;class Derived:public Basepublic:Derived()cout“DD”;void f()cout“Df”;);int main()Derived d;return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:解析 本趣考查的是类的继承和派生。派生类执行构造函数的一般次序为;首先调用基类构造函数,然后调用成员对象的构造函数,最后是派生类构造函数中的内容。

    19、题目中定义派生类对象 d时,先调用基类 Base的构造函数,输出 BBBf,然后调用派生类 Derived的构造函数,输出 DD。2.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是( )。(分数:2.00)A.ofstream myfile;mynle.open(“d:ofile.txt”);B.ofstream * mynle=new ofstream;mynle-open(“d:Ofile.txt”);C.ofstream myhle(“d:ofile.txt”);D.ofstream * mynle=new(“d:ofile.txt”); 解析:解析 本题考查文件对象的创建方

    20、法。可以直接定义文件对象,也可以用 new来动态生成。很明显,选项 D中使用 new的方式是错误的。3.有如下程序:#includeiostreamusing namespace std;classApublic:virtua1 voidfunc1()cout“A1”;voidfunc2()cout“A2”;class B:publicApublic:void funcl()cout“B1”;void func2()cout“B2”;intmain()A*pnew B;p-funcl();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B

    21、.A1A2C.B1A2 D.A1B2解析:解析 程序中 B为 A的派生类,由主函数入手,主函数中定义了类 A的指针 p指向类 B。根据基类中的“vir- tual void funcl()”知道 A中的 funcl为虚函数,执行“p-funcl();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的 funcl函数,输出 B1。而fun2不是虚函数,所以执行“p-rune2();”输出为 A2。4.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。(分数:2.00)A.a=b+lB.a=b=c+2 C.int 18.5%3D.aa+7=c+b解析:

    22、解析 本题考查 C+语言的正确赋值方法。a=bc+2 实际上相当于 a=(bc+2),进而可分解为两个表达式:bc+2 和 a=b。选项 A中包含一个不合法的运算符”:=”;选项 C应改为(int)18.5%3,选项D可理解为两个表达式 ca+7:c+b 和 aa+7,其中第一个是错的,因为 C+语言规定赋值号的左边只能是单个变量,不能是表达式戊常量等。5.有如下程序:#includeiostreamusing namespqce Std;class TestClassprivate;Char C;public;TestClass(char n):c(n)TestClass()coutc;cl

    23、ass TestClassl:public TestClassprivate:Char C;public:TestClassl(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClassl obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)A.xy B.yxC.xD.y解析:解析 本题中 TestClass为基类,TestClassl 为派生类。在主函数中定义 TestClassl对象obj(x),“TestClassl(char n):TestClass(n+1),c(n)”,所以选输出 x,然

    24、后调用基类构造函数,x+1=y,所以输出 y,即答案为 xy。6.针对数组定义 intdata10,下列表述中错误的是( )。(分数:2.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data共有 10个元素,其首元素是 data1 解析:解析 数组元素的下标是从。到数组长度-1,所以数组 data的首元素是 data0末元素是data9。其他选项的描述都是正确的。7.关于纯虚函数,下列表述中正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0

    25、”结束 C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类解析:解析 纯虚函数是在声明虚函数时被“初始化”为。的虚函数。纯虚函数没有函数体,纯虚函数的作用是在基类中为其派生类保留一个函数名字。8.以下类定义中可能会引起错误的语句是( )。Class Apublic:A()/1int i;/2private:int j;/3 A(int i)i+;/4;(分数:2.00)A.1B.2C.3 D.4 解析:9.结构化分析方法是面向( )的自顶向下,逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流 D.目标解析:解析 结构化分析方法是面向数据流进行需求分析

    26、的方法,采用自项向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。10.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类 B.对象C.函数D.模板类解析:解析 类模板就是把类中的数据分离出来,作为一个类的描述。C+编译器根据类模板和特定伪数据类型来产生一个类,类模板就是一个抽象的类。11.下列选项中,不是一个算法的基本特征的是( )。(分数:2.00)A.完整性 B.可行性C.有穷性D.拥有足够的情报解析:解析 作为一个算法,一般应该具有下列 4个特征:(1) 可行性,即考虑到实际的条件能够达到一个满意的结果;(2) 确定性,

    27、算法中的每一个步骤都必须是有明确定义的,(3) 有穷性,一个算法必须在有限的时间内做完;(4) 拥有足够的情报。12.有如下程序:#include(iostreamusing namespace std;Class Testpublic:Test() n+2;Test() n-3;)static int getNum() return n;private:static int n;int Test:n1;int main()Test*p=new Test;delete p;cout“n”Test:getNum()endl;return 0;执行该程序的输出结果是( )。(分数:2.00)A.n

    28、0 B.n1C.n2D.n=3解析:解析 本题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员 n的运算具有叠加性,执行“n+=2”和“n-=3”后 n的值为 0。13.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序。冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。14.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.

    29、软件开发费用D.软件系统功能 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。15.设有定义:class personint num;char name10;public:void init(int n,char*m);personstd30则以下叙述不正确的是( )。(分数:2.00)A.std是一个含有 30个元素的对象数组B.std数组中的每个元素都是 person类的对象C.std数组中的每个元素都有自己的私有变量 num和 nameD.std数组中的每个元素

    30、都有各自的成员函数 init 解析:解析 std 是对象数组,里面有 30个对象,每个对象都有自己的私有数据成员,由于成员函数是公有的,在内存中存在一份即可,各个对象都可以使用。16.下列叙述中正确的是( )。(分数:2.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 解析:解析 在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据

    31、元素的前后件关系。17.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是( )。(分数:2.00)A.DB包括 DBS和 DBMSB.DBMS包括 DB和 DBSC.DBS包括 DB和 DBMS D.没有任务关系解析:解析 数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件:平台和软件平台 5个部分组成,可见 DB和 DBMS都是 DBS的组成部分。18.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.

    32、2 C.3D.9解析:解析 根据二分法查找法需要两次;(1) 首先将 90与表中间的元素 50进行比较,由于 90大于50,所以在线性表的后半部分查找。(2) 第二次比较的元素是后半部分的中间元素,即 90,这时两者相等,即查找成功。19.有以下程序:#includeiostreamusing namespace std;class Aprivate:int a;public:A(int i)ai;void disp()couta“,”;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,”;class C:public B,pu

    33、blic Aprivate:int C;public:c(int k):A(k-2),B(k+2)ck;)void disp()a:disp();B:disp();coutcendl;int main()C obj(10);objdisp();return 0;程序执行后的输出结果是( )。(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,10 解析:解析 本题中,派生类 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。20.若有以下定义:inta1,2,3,4,5,6,7;char clb,c2=2;则数值不为

    34、2的表达式是( )。(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-0 解析:解析 字符在进行数学运算时取其 ASC码值,其中b的 ASC码值为 98,d的 ASC码值为 100,字符2的 ASC码值为 50。可知 D选项中表达式 c2-0的值为 50。21.有下列二叉树,对此二叉树中序遍历的结果是( )。(分数:2.00)A.BDYEACFXZB.DYBEAFCZX C.ABCDEFXYZD.ABDYECFXZ解析:解析 对二叉树的中序遍历是指:首先遍历左于树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树-根结点-右子树”的顺序。本题的遍历顺序是这样

    35、的;(1) 首先访问左于树:BDEY;(2) 在左于树 BDEY中,也按中序遍历,先访问左于树 DY,在左子树 DY中;也按中序遍历,先访问左子树,左子树没有,则访问根结点 D,然后访问右于树 Y;(3) 接着访问根 B,再访问右子树 E,(4) 访问左子树 BDEY 后,接着访问根结点 A,然后访问右于树 CFXZ;(5) 同理可得右于树 CFXZ的访问顺序为 FCZX。22.下列程序的输出结果是( )。#includeiostream.hvoid main()char*str”12123434”;int x10,x2=0,x30,x40,i;for(i=0;stri!/0;i+)switc

    36、h(stri)case1:x4+;case2:x3+;case3:x2+;case4:xl+;)coutxl“,”x2“,”x3“,”x4;(分数:2.00)A.8,6,4,1B.8,6,3,2C.8,8,4,lD.8,6,4,2 解析:解析 本题考查循环的嵌套,for 和 switch语句的应用。C+中。各种条件判断,循环语句的用法。只要注意在 C+语言中,系统在字符指针的最后位置会增加一个字符串结束符/0,执行 8次 for循环,再根据,witch 语句中的条件易知答案。23.有如下的程序:#includecstring.h)#ingcludeiostream.h)using namesp

    37、ace std;Class MyStringpublic:MyString(const char*s);MyString()deletedata;protected:unsigned len;char*data;MyString:MyString(const char*S)lenstflen(s);daranew char1en+1;strcpy(dara,s);int main()MyString a(“C+Programing”);MyString b(a);return 0;在运行上面的程序时出错,出错的原因是( )。(分数:2.00)A.构造函数的实参不允许是本类的对象B.没有定义实现

    38、深层复制(深拷贝)的复制构造函数 C.构造对象 a时实参与形参类型不符D.系统不能生成默认的复制构造函数解析:解析 C+语宫中当一个新对象被另一个已存在的同类型对象初始化时要调用复制构造函数,语句MyS- trmg b(a),”符合此条件将调用类 MyString的复制构造函数,但是类 MyString没有定义此复制构造函数,所以会出错。24.有如下程序:#inCludeiostreamusing namespace std;Class TestClasspublic:virtUal void furll()cout“funlTestclass”;virtual void fun2()cout

    39、“fun2TestClass”;class TestClassl:public TestClassvoid fun()cout“funlTestClass1”;int main()TestClass obj1,*p;TestClassl obj2;p然后执行语句 while(k-O)cout*;,因为其中的 k是后缀自减,所以会输出 20个“*”。28.已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS5,MINUS,PRINT10;则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME的值为 1 B.枚举常量 NUMBER的值为 1C.枚举常量 MIN

    40、US的值为 6D.枚举常量 PRINT的值为 10解析:解析 本题考查的是 C+语言的数据类型。第一个枚举常量的值为 0,允许程序曼示的定义中指定部分或全都枚举常量的值,枚举常量默认时,在首一枚举常量值的基础上以此增 1。29.有如下程序:#includeiostream)using namespace std;classBASEpublic:BASE()cout“BASE”;class DERIVED:public BASEpublic:DERIVED()COUt“DERIVED”;int main()DERIVED x;return 0;执行后的输出结果是( )。(分数:2.00)A.BA

    41、SEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE 解析:解析 本题考查派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当 main函数结束时,派生类 DERIVED的对象 x将被删除,那么派生类 DERIVED的析构函数先被调用,输出 DERIVED,然后调用基类的析构函数输出 BASE。30.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。(分数:2.00)A

    42、.函数调用可以作为独立的语句存在B.函数调用可以无返回值C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参 解析:解析 本题考查函数的调用方式。函数的形参和实参具有以下特点:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用读形参变量。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便杷这些值传送给形参。因此应通过预先用赋值,输入等办法使实参获得确定值,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误。

    43、函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。31.下列关于运算符重载不正确的是( )。(分数:2.00)A.运算符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能改变对预定义类型数据的操作方式 解析:解析 本题考查 C+语言中操作符重载的概念。运算符重载的关键字是 operator。运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方

    44、式。32.重载输入流运算符)必须使用的原型为( )。(分数:2.00)A.istream。33.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析 本题考查的是标识符。标识符是由数字、字母以及下划线构成。其第一个字符必须是字母戌下划线,中间不能有空格,标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符,标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。34.下列对于软件测试的描述正确的是( )。(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确

    45、C.软件测试的目的是尽可能地多发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。35.派生类对象对其基类中的什么成员是可访问的?( )(分数:2.00)A.公有继承的私有成员B.私有继承的公有成员 C.私有继承的保护成员D.保护继承的保护成员解析:解析 本题是关于 C+语言继承问题中派生类对基类的访问能力的考查。C+语言中通常有三种继承修饰符 public,protected,private,限制依次严格,另外对类中的数据和函数也有这三种修饰符进行限制,有 3种是不能继承的:公有继承基类的私有成员,私有

    46、继承基类的私有成员,保护继承基类的私有成员。二、填空题(总题数:15,分数:30.00)36.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_ (正确答案:加工。)解析:解析 数据流图是从数据传遵和加工的角度,来刻画数据流从输入到输出的移动变换过程,其中的每一个加工对应一个处理模块。37.数据库的逻辑模型设计阶段的任务是将 1 转换成关系模式。(分数:2.00)填空项 1:_ (正确答案:E-R 图。)解析:解析 数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而 E-R图是主要的概念模型,因此数

    47、据库的逻辑设计的主要工作是将 E.R图转换成关系模式。38.在面向对象程序设计中,从外面只能看到对象的外部特征,而不知道无需知道数据的具体结构以及实现操作的算法,这称为对象的 1。(分数:2.00)填空项 1:_ (正确答案:封装性。)解析:解析 对象具有下列 5个基本特点:(1) 标识惟一性,(2) 分类性,(3) 多态性:(4) 封装性,(5) 模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。39.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于 1 中的一个阶段。(分数:2.00)填空项 1:_ (正确答案:软件开发期。)解析:解析 软件生命周期分为 3个时期,共 8个阶段:软件定义期(问题定义、可行性研究和需求分析)、软件开发期(系统设计,详细设计、编码和测试)、软件维护期(即运行维护阶段)。40.树中度为零的结点称为_。(分数:2.00)填空项 1:_


    注意事项

    本文(【计算机类职业资格】二级C++笔试-285及答案解析.doc)为本站会员(inwarn120)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开