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

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

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

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

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

    1、二级 C+笔试-305 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.以下内容属于存储在计算机内有结构的数据集合的是( )。(分数:2.00)A.数据库系统B.数据库C.数据库管理系统D.数据结构2.编制好的程序,首先要确保它的正确性和可靠性,还应强调良好的编程风格。在书写功能性注解时应考虑( )。(分数:2.00)A.仅为整个程序作注解B.仅为每个模块作注解C.为程序段作注解D.为每个语句作注解3.若有以下程序:#include iostreamusing namespace std;class Baseint x;protected:

    2、int y;public:int z;void setx(int i)x=i;int getx ( )return x;class Inherit : private Baseprivate:int m;public:int p;void setvalue(int a,int b,int c, int d) setx((分数:2.00)A.;class Basepublic:void fun ()cout“Base: :fun“end1;class Derived : public Basepublic:void fun ( )cout“Derived: :fun“end1;int main

    3、( )Base a,*pb;Derived b;_;pb-fun(); /调用基类的成员函数 fun()return 0 ;(分数:2.00)A.pb=private:int data;class Derive : public Basepublic:Derive() : Base(O)Derive (int x)d=x;void setvalue(int i)data=i;private:d;(分数:2.00)A.1B.2C.3D.47.设有关系 R 及关系 S,它们分别有 p、q 个元组,则关系 R 与 S 经笛卡儿积后所得新关系的元组个数是( )。(分数:2.00)A.pB.qC.p+q

    4、D.p*q8.以下各选项中,( )中都是 C+语言保留字。(分数:2.00)A.cout,operator,thisB.short,string,staticC.if,while,=D.private,public,printf9.在一个单链表中,若 q 节点是 p 节点的前驱节点,若在 q 与 p 之间插入节点 s,则执行( )。(分数:2.00)A.sqink=plink; plink=sB.plink=s; sqink=qC.plink=slink; slink=pD.qlink=s; slink=p10.利用 ER 模型进行数据库的概念设计,可以分成 3 步:首先设计局部 ER 模型,

    5、然后把各个局部 ER 模型综合成一个全局的模型,最后对全局 ER 模型进行( )。(分数:2.00)A.简化B.结构化C.最小化D.优化11.有以下程序:#include iostreamusing namespace std;class sampleprivate:int n;public:sample()sample (int m)n=m;sample add(sample sl,sample s2)this-n=sl.n+s2.n;return (*this);void disp()cout“n=“nend1;int main ( )sample sl(10) ,s2 (5),s3;s3

    6、.add(s1,s2);s3.disp();return 0;程序运行后,输出的结果是( )。(分数:2.00)A.n=10B.n=5C.n=20D.n=1512.以下程序执行后的输出结果是( )。#include iostreamusing namespace std;void try(int,int,int,int);int main ( )int x,y,z,r;x=1;y=2;try(x,y,z,r);coutrend1;return 0;void try(int x,int y, int z,int r)z = x+y;x = X*X;y = y*y;r = z+x+y;(分数:2.

    7、00)A.18B.9C.10D.不确定13.有如下类的定义。空格处的语句是( )。class MyClass_ int x, y;public:MyClass(int a=0,int b=0)x=a;y=b;static void change()x-=10;y-=10;(分数:2.00)A.staticB.constC.privateD.不需要填入内容14.有以下程序:#include iostreamusing namespace std;int main ()int n;cinn;if (n+10)coutnend1;elsecoutn-end1;return 0;若执行该程序时从键盘上

    8、输入 9,则输出结果是( )。(分数:2.00)A.11B.10C.9D.815.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为 ( )。(分数:2.00)A.MyClassB.MyClass (MyClass x);C.MyClass(MyClass D.MyClass (MyClass *x);16.有以下程序:#includeiostreamusing namespace std;class Aprivate:int x;public:A(int(分数:2.00)A.protected:int z;public:class Embedprivate:int y;publ

    9、ic:Embed ( )y=100;int Embed_Fun();MyEmbed;int Contain_Fun();;下列对上面定义的描述中,正确的是( )。(分数:2.00)A.定义类 Embed 对象的语句是:Contain:Embed Myobject;B.类 Contain 的成员函数 Contain_Fun()中可以访问对象 MyEmbed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可以直接访问类 Contain 的所有成员D.类 Embed 的成员函数 Embed_Fun()中只能直接访问类 Contain 的公有成员19.C+流中重载了运算符,它是

    10、一个( )。(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数20.已知枚举类型定义语句为:enum Token NAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列说法中,错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1021.有以下程序:#include iostreamusing namespace std;int main ( )int n3,i,j,k = 2

    11、;for(i = 0;ik;i+)ni = O;for(i = O;ik;i+)for(j = O;jk;j+)nj = ni + 1;coutn 0 end1;return 0;上述程序运行后,输出结果是( )。(分数:3.00)A.0B.1C.2D.322.若有以下程序:#include iostreamusing namespace std;int main()int a=3;cout(a+=a-=a+(分数:3.00)A.end1;return 0;程序执行后的输出结果是( )。A) -6B.12C.0D.-1223.算法的空间复杂度是指( )。(分数:3.00)A.算法程序的长度B.

    12、算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间24.设有语句:char str1=“string“,str28,*str3,*str4=“string“;则下列对库函数 strcpy()调用不正确的是( )。(分数:3.00)A.strcpy(str1,“Hell01“);B.strcpy(str2,“Hell02“);C.strcpy(str3,“Hell03“);D.strcpy(str4,“Hell04“);25.下列函数中,哪项是正确的递归函数( )。A int Fun(int n)if(n1) return 1;else return n*Fun(n

    13、+1);B) int Fun(ira n)if(abs(n)1) return 1;else return n*Fun(n/2);C) int Fun(int n)if(n1) return 1;else return n*Fun(n*2)1D) int Fun(int n)if(n1) return 1;else retun n*Fun(n-1);(分数:3.00)A.B.C.D.26.在进行单元测试时,常用的方法是( )。(分数:3.00)A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试27.以下函数实现的功能是 ( )。void fun

    14、(char *s)char *p,*q, temp;p=s;q=s+strlen (s) -1;while (pq)temp=*p;*p=*q;*p=temp;p+;q-;(分数:3.00)A.将一个字符串首尾颠倒B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母28.一个满二叉树其深度为 4,则其叶子节点的个数为( )。(分数:3.00)A.8B.16C.32D.429.以下程序段有( )处错误。#include iostreamusing namespaces std;class Sampleprivate:int n;public:Sample (int

    15、in=i;void setvalue(int i)n=i;void display()cout“n=“nend1;int main ( )const Sample a(lO);a. setvalue (5);a.display();return 0;(分数:3.00)A.1B.2C.3D.430.下面几种调试方法中,不适合调试大规模程序的是( )。(分数:3.00)A.强行排错法B.回溯法C.原因排除法D.静态调试二、填空题(总题数:13,分数:30.00)31.数据的逻辑结构可用一个二元组 B(K,R)来表示,其中 K 是 【1】 ,R 是 【2】 。(分数:4.00)填空项 1:_32.设

    16、栈 S 和队列 Q 的初始状态为空,元素 e1、e2、e3、e4、e5 和 e6 依次通过栈 S,一个元素出栈后即进入队列 Q,若 6 个元素出队的顺序是 e2、e4、e3、e6、e5、e1,则栈 S 的容量至少应是 【3】 。(分数:2.00)填空项 1:_33.下图所示的二叉树的先序遍历序列是 【4】 。(分数:2.00)填空项 1:_34.数据库管理系统是位于 【5】 之间的软件系统。(分数:2.00)填空项 1:_35.有以下程序:#include iostreamusing namespace std;int main()int i=010,j=10;cout(+i)“,“i-end

    17、1;return 0;则该程序运行后的输出结果是 【6】 。(分数:2.00)填空项 1:_36.设有以下程序:#includeiostreamusing namespace std;int main()int a,b,k:4,m=6,*p1=if (yz)a=y;y=z;z=a;if (xy)a=x;x=y;y=a;(分数:2.00)填空项 1:_42.以下程序运行后的输出结果是 【14】 。#include iostream#include stringusing namespace std;class Y;class Xint x;char *strx;public:X(int a, c

    18、har *str)x=a;strx=new charstrlen(str)+l;strcpy(strx,str);void show(Y ;class Yprivate:int y;char *stry;public:Y(int b,char *str)y=b;stry=new charstrlen(str)+l;strcpy(stry, str);friend void X:show(Y ;void X:show(Y coutob.stryend1;int main()X a(10,“stringX“);Y b(20,“stringY“);a. show (B) ;return 0;(分数:

    19、2.00)填空项 1:_43.若有以下程序:#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()return y;class Circle : public Pointint r;public:Circle(int a, int b,int C) : Point (a, b) r=c;int getr()return r;double area()return

    20、PI*r*r;int main()Circle c1(5,7,10);coutc1.area()end1;return 0;程序执行后的输出结果是 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-305 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.以下内容属于存储在计算机内有结构的数据集合的是( )。(分数:2.00)A.数据库系统B.数据库 C.数据库管理系统D.数据结构解析:解析 本题考查考生对几个概念的理解。其中数据库系统是指数据库和数据库管理系统软件的合称。数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。

    21、数据结构描述数据的类型、内容、性质以及数据间的联系。数据库是指存储在计算机内有结构的数据集合。2.编制好的程序,首先要确保它的正确性和可靠性,还应强调良好的编程风格。在书写功能性注解时应考虑( )。(分数:2.00)A.仅为整个程序作注解B.仅为每个模块作注解C.为程序段作注解 D.为每个语句作注解解析:解析 首先应该知道功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。所以它描述的是一段程序,而不是每一个语句,是为程序段作注解。3.若有以下程序:#include iostreamusing namespace std;class Basei

    22、nt x;protected:int y;public:int z;void setx(int i)x=i;int getx ( )return x;class Inherit : private Baseprivate:int m;public:int p;void setvalue(int a,int b,int c, int d) setx((分数:2.00)A.;class Basepublic:void fun ()cout“Base: :fun“end1;class Derived : public Basepublic:void fun ( )cout“Derived: :fun

    23、“end1;int main ( )Base a,*pb;Derived b;_;pb-fun(); /调用基类的成员函数 fun()return 0 ;(分数:2.00)A.pb=private:int data;class Derive : public Basepublic:Derive() : Base(O)Derive (int x)d=x;void setvalue(int i)data=i;private:d;(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考核派生类的定义和成员的访问权限。第 1 处错误:在派生类的构造函数 Derive(intx)中没有调用基类的构

    24、造函数对基类对象初始化。第 2 处错误:数据 data 是基类 Base 的私有成员,派生类 Derive 不能访问,所以在函数 setvalue 中对data 的赋值是错误的。7.设有关系 R 及关系 S,它们分别有 p、q 个元组,则关系 R 与 S 经笛卡儿积后所得新关系的元组个数是( )。(分数:2.00)A.pB.qC.p+qD.p*q 解析:解析 本题考核对笛卡儿积运算的掌握。笛卡儿积是两个关系的合并操作,关系 R 的每一个行依次跟关系 S 的每一个行组成一个新元组,因此关系 R 与 S 经笛卡儿积后所得新关系的元组个数是 p*q。8.以下各选项中,( )中都是 C+语言保留字。(

    25、分数:2.00)A.cout,operator,this B.short,string,staticC.if,while,=D.private,public,printf解析:解析 本题主要考察有关 C+语言保留字这个知识点。C+语言中,运算符(=)、函数名(printf)和非基本数据类型(string)都不是 C+语言的保留字(关键词)。9.在一个单链表中,若 q 节点是 p 节点的前驱节点,若在 q 与 p 之间插入节点 s,则执行( )。(分数:2.00)A.sqink=plink; plink=sB.plink=s; sqink=qC.plink=slink; slink=pD.qli

    26、nk=s; slink=p 解析:解析 在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱节点原先的后继节点。10.利用 ER 模型进行数据库的概念设计,可以分成 3 步:首先设计局部 ER 模型,然后把各个局部 ER 模型综合成一个全局的模型,最后对全局 ER 模型进行( )。(分数:2.00)A.简化B.结构化C.最小化D.优化 解析:解析 本题考核实体联系模型。在概念设计中按照模块的划分画出每个模块的 ER 图,然后把这些图合成一张 ER 图作为全局模型,最后应该对全局 ER 图进行优化,看看是否有重复和

    27、不合理的地方。不能只是进行简单的合并。11.有以下程序:#include iostreamusing namespace std;class sampleprivate:int n;public:sample()sample (int m)n=m;sample add(sample sl,sample s2)this-n=sl.n+s2.n;return (*this);void disp()cout“n=“nend1;int main ( )sample sl(10) ,s2 (5),s3;s3.add(s1,s2);s3.disp();return 0;程序运行后,输出的结果是( )。(分

    28、数:2.00)A.n=10B.n=5C.n=20D.n=15 解析:解析 本题考核 this 指针的使用。类中成员函数 add 中的 this 指针指向该成员函数被调用的对象。在主函数 main()中调 s3add(s1,s2),即对象 s3 的私有变量 n 的值为对象 s1 和 s2 私有变量的和,所以程序最后输出 15,即选项 D。12.以下程序执行后的输出结果是( )。#include iostreamusing namespace std;void try(int,int,int,int);int main ( )int x,y,z,r;x=1;y=2;try(x,y,z,r);cou

    29、trend1;return 0;void try(int x,int y, int z,int r)z = x+y;x = X*X;y = y*y;r = z+x+y;(分数:2.00)A.18B.9C.10D.不确定 解析:解析 本题常见的错误解答是:把 x=1,y=2 代入到函数 try 中,逐步计算出 r=8。最后得到 r 的输出值是 8。下面是正确解答。根据程序逐步分析:程序中定义了一个名为 try 的 void 型函数,即函数 try()没有任何返回值。而 try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量 r 的值。但在主函数中,并没有对变量 r 赋值。在

    30、 C+语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数 try()中,r 的值为 8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。13.有如下类的定义。空格处的语句是( )。class MyClass_ int x, y;public:MyClass(int a=0,int b=0)x=a;y=b;static void change()x-=10;y-=10;(分数:2.00)A.static B.constC.privateD.不需要填入内容解析:解析 类的静态成员函数只可以直接访问类中的

    31、静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数 change()访问了类 MyClass 的数据成员 x 和 y,只能把 x 和 y 定义为静态数据成员。14.有以下程序:#include iostreamusing namespace std;int main ()int n;cinn;if (n+10)coutnend1;elsecoutn-end1;return 0;若执行该程序时从键盘上输入 9,则输出结果是( )。(分数:2.00)A.11B.10 C.9D.8解析:解析 程序的功能是从键盘输入一个整数,然后执行 if 语句的条件表达式“n+10”,表达

    32、式“n+10”等价于“n10;n+;”这两条语句。所以输出结果 n 的值为 10。15.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为 ( )。(分数:2.00)A.MyClassB.MyClass (MyClass x);C.MyClass(MyClass D.MyClass (MyClass *x);解析:解析 声明拷贝构造函数的格式为:类名:拷贝构造函数(const类名class Aprivate:int x;public:A(int(分数:2.00)A.protected:int z;public:class Embedprivate:int y;public:Emb

    33、ed ( )y=100;int Embed_Fun();MyEmbed;int Contain_Fun();;下列对上面定义的描述中,正确的是( )。(分数:2.00)A.定义类 Embed 对象的语句是:Contain:Embed Myobject; B.类 Contain 的成员函数 Contain_Fun()中可以访问对象 MyEmbed 的私有成员 yC.类 Embed 的成员函数 Embed_Fun()中可以直接访问类 Contain 的所有成员D.类 Embed 的成员函数 Embed_Fun()中只能直接访问类 Contain 的公有成员解析:解析 对象 MyEmbed 是类 C

    34、ontain 的成员对象,通过对象 MyEmbed 不能访问其私有数据成员 y,所以选项 B 是错误的。类 Embed 是类 Contain 的嵌套类,类 Embed 的成员函数不能直接访问类 Contain 的所有成员,所以选项 C和 D 都是错误的。19.C+流中重载了运算符,它是一个( )。(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数 解析:解析 C+流中重载了和,其中用于有格式输入,用于有格式输出。且都重载为非成员函数。20.已知枚举类型定义语句为:enum Token NAME,NUMBER,PLUS=

    35、5,MINUS,PRINT=10;则下列说法中,错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是 0。枚举类型常量的值允许彼此相同。虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。由此可知,枚举常量 NAME 的值应为 0。所以选项 A 是错误的。21.有以下程序:#include io

    36、streamusing namespace std;int main ( )int n3,i,j,k = 2;for(i = 0;ik;i+)ni = O;for(i = O;ik;i+)for(j = O;jk;j+)nj = ni + 1;coutn 0 end1;return 0;上述程序运行后,输出结果是( )。(分数:3.00)A.0B.1C.2D.3 解析:解析 本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组 n 的所有元素赋初值 0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下:i=0 时,j 分别取值 0、1,使得 n0、n1的值分别变 1、2,内层

    37、循环结束。i=1 时,对外层循环进行判断,符合循环条件,执行内层循环,j 分别取值 0、1,使得 n0、n1的值变为 3、3,退出内层循环。i=2 时,判断外层循环,不再符合循环条件,退出外层循环,执行 cout 语句,输出 n0的值为 3。22.若有以下程序:#include iostreamusing namespace std;int main()int a=3;cout(a+=a-=a+(分数:3.00)A.end1;return 0;程序执行后的输出结果是( )。A) -6B.12C.0D.-12 解析:解析 本题考核运算符的优先级和结合性。根据运算符的优先级和结合性用括号来分出表达

    38、式的优先级:a+=(a-=(a*A) )。先计算 a*a 得 9,再执行语句:a-=9:得到 a=-6,然后执行 a+=a 得到结果-12。23.算法的空间复杂度是指( )。(分数:3.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 本题考查算法的空间复杂度,是重点之一。算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。24.设有语句:char

    39、 str1=“string“,str28,*str3,*str4=“string“;则下列对库函数 strcpy()调用不正确的是( )。(分数:3.00)A.strcpy(str1,“Hell01“);B.strcpy(str2,“Hell02“);C.strcpy(str3,“Hell03“); D.strcpy(str4,“Hell04“);解析:解析 本题考核库函数 strcpy()的正确调用。函数 strcpy()的函数原型为:char*strcpy(char*strDest,constchar*strSrC) ;其功能是复制 strSrc 所有字符到 strDest,并返回 str

    40、Dest。根据函数 strcpy()的原型可知,选项 A、B 和 D 的调用都是正确的。在选项 C 中,由于指针*str3 没有初始化其字符长度,容易引起访问越界,故是不正确的。25.下列函数中,哪项是正确的递归函数( )。A int Fun(int n)if(n1) return 1;else return n*Fun(n+1);B) int Fun(ira n)if(abs(n)1) return 1;else return n*Fun(n/2);C) int Fun(int n)if(n1) return 1;else return n*Fun(n*2)1D) int Fun(int n

    41、)if(n1) return 1;else retun n*Fun(n-1);(分数:3.00)A.B. C.D.解析:解析 本题考查递归函数这个知识点。递归函数由递归出口和递归体两部分组成:递归出口给出了递归终止的条件;递归体给出了递归的方式。对于选项 A,当参数 n=1 时,不满足递归调用的结束条件;对于选项 C,当参数 n=0 时,不满足递归调用的结束条件;对于选项 D,当参数 n:2 时,不满足递归调用的结束条件。26.在进行单元测试时,常用的方法是( )。(分数:3.00)A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试解析:解析

    42、 本题考核软件测试方法的应用。白盒测试是测试程序内部的逻辑结构及有关信息,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,即是比较深层次的测试,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试只能作辅助。27.以下函数实现的功能是 ( )。void fun(char *s)char *p,*q, temp;p=s;q=s+strlen (s) -1;while (pq)temp=*p;*p=*q;*p=temp;p+;q-;(分数:3.00)A.将一个字符串首尾颠倒 B.计算字符串的长度C.统计

    43、字符串中的空格个数D.将字符串中的小写字母变成大写字母解析:解析 在该函数中,循环开始时,指针 p 指向字符串的第 1 个字符,指针 q 指向字符串的最后一个字符,首先交换这两个字符:然后,指针 p 前进一个字符位置 (指向下一个字符),指针 q 后退一个字符位置(指向前一个字符):经过若干次循环,条件 pq 将为假(即指针 p 和指针 q 相遇),循环结束。从而实现了将一个字符串首尾颠倒的功能。28.一个满二叉树其深度为 4,则其叶子节点的个数为( )。(分数:3.00)A.8 B.16C.32D.4解析:解析 若深度为 k,则叶子节点的个数为 2k-1,这是满二叉树的性质之一。29.以下程

    44、序段有( )处错误。#include iostreamusing namespaces std;class Sampleprivate:int n;public:Sample (int in=i;void setvalue(int i)n=i;void display()cout“n=“nend1;int main ( )const Sample a(lO);a. setvalue (5);a.display();return 0;(分数:3.00)A.1B.2 C.3D.4解析:解析 本题考查常对象的掌握。本程序中有两个错误:第 1 处错误是“asetvalue(5);”语句,由于对象 a

    45、为常对象,所以对象 a 的私有数据成员 n 不能被更新。第 2 处错误是语句“a.display();”。由于对象 a 为常对象,所以通过对象 a 只能调用它的成员函数,而成员函数 display()不是常成员函数。30.下面几种调试方法中,不适合调试大规模程序的是( )。(分数:3.00)A.强行排错法B.回溯法 C.原因排除法D.静态调试解析:解析 本题考查对几种调试方法的掌握,其中强行排错法是最常用也是最低效的,主要思想是通过“计算机找错”,适合调试大规模程序。 回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。这是在小程序中常用的一种有效的调试方法。程序变大后,

    46、可能的回溯路线显著增加,以致人工进行完全回溯可望而不可及。原因排除法是靠演绎、归纳以及二分法来实现的适合调试大规模程序。静态调试是一种调试手段,主要是指通过人的思维来分析源程序代码和排错。二、填空题(总题数:13,分数:30.00)31.数据的逻辑结构可用一个二元组 B(K,R)来表示,其中 K 是 【1】 ,R 是 【2】 。(分数:4.00)填空项 1:_ (正确答案:1 数据元素的集合2数据元素之间的前后间关系)解析:解析 数据的逻辑结构是指数据间(抽象的逻辑)关系的描述,而不管数据在计算机中的存储方式。因此,它有两个要素:数据元素的集合、数据元素之间的前后间关系。32.设栈 S 和队列

    47、 Q 的初始状态为空,元素 e1、e2、e3、e4、e5 和 e6 依次通过栈 S,一个元素出栈后即进入队列 Q,若 6 个元素出队的顺序是 e2、e4、e3、e6、e5、e1,则栈 S 的容量至少应是 【3】 。(分数:2.00)填空项 1:_ (正确答案:大于 3)解析:解析 栈的操作原则“后进先出”,队列的操作原则“先进后出”。出队列顺序即为入队列顺序,而入队列顺序也就是出栈顺序是:e2、e4、e3、e6、e5、 e1。为得到出栈顺序为e2、e4、e3、e6、e5、e1。则入栈操作应为 e1、e2 进栈,e2 出栈。(进栈后有 e1、e2,出栈后仅有 e1) e3、e4 进栈,e4、e3 出栈。(进栈后有 e1、e3、e4,出栈后仅有 e1) e5、e6 进栈,e5、e6、e1 出栈。(进栈后有 el、e5、 e6,出栈后为空)。33.下图所示的二叉树的先序遍历序列是 【4】 。(分数:2.00)填空项 1:_ (正确答案:A B D G C E H I F)解析:解析 二叉树的遍历是很重要的知识点,先序、中序、后序三种不同的方式要比较来掌握,注意其中的区别。此类题一定要先看清题目要求的是哪种遍历方法,然后根据不同遍历的特点来计算。本题要求是先序遍历,其遍历顺序应该为访问根节点:先序遍历左子


    注意事项

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




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

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

    收起
    展开