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

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

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

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

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

    1、二级 C+笔试-393 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统2.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,

    2、相互依赖性小D.上述三种说法都不对3.若有以下定义:int a=1,2,3,4,5,6,7;char c1=b,C2=2;则数值不为 2 的表达式是(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-04.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类中保持不变5.下列类的定义中,有( )处语法错误。class Basepublic:Base()Base(int i)data=i;private:int data;cl

    3、ass Derive: public Basepublic:Derive(): Base(0)Derive(int x)d=x;void setvalue(int i)data=i;private:d;(分数:2.00)A.1B.2C.3D.46.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型C.网状模型D.数据模型7.关于类模板,下列表述不正确的是(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数8.有以下程序#include iostreamusing

    4、 namespace std;static int days= 31,28,31,30,31,30,31,31,30,31,30,31 ;class dateprivate:int month, day, year;public:date( int m, int d, int y )month = m;day = d;year = y;date()void disp()coutyear“-“month“-“dayend1;date operator+( int day )date dt = *this;day+= dt.day;while ( day daysdt.month - 1 )day

    5、 -= days dt.month - 1 ;if ( +dt.month = 13 )dt.month = 1;dt.year+;dt.day = day;return dt;int main()date d1( 6, 20, 2004 ), d2;d2: d1 + 20;d2.disp();return 0;执行后的输出结果是(分数:2.00)A.2004-7-10B.2004-6-20C.2004-7-20D.程序编译时出错9.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测

    6、试不考虑程序内部的逻辑结构D.上述三种说法都不对10.下面不属于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽11.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型12.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClass(分数:2.00)A.plus(3,5L);B.plus(3,5L);C.plusint(3,5L);D.plusint, do

    7、uble(3,5L);14.下列叙述中正确的是(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构15.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据16.若有如下程序:#include iostreamusing namespaces std;int s=0;class samplestatic iht n;public:sample(int i)n=i;static void add()s+=

    8、n;int sample:s=0;int main()sample a(2),b(5);sample:add();coutsendl;return 0;程序运行后的输出结果是(分数:2.00)A.2B.5C.7D.317.若有以下程序: #include iostreamusing namespace std;class datapublic:int x;data(int x)data: :x=x;class Aprivate:data d1;public:A(int x): d1(x)void dispa()coutd1.x“,“;class B: public Aprivate:data

    9、d2;public:B(int x): A(x-1),d2(x)void dispb()coutd2.xend1;class C: public Bpublic:C(int x): B(x-1)void disp()dispa();dispb();int main()C obj(5);obj.disp();return 0;程序执行后的输出结果是 (分数:2.00)A.5,5B.4,5C.3,4D.4,318.若有以下程序:#include iostreamusing namespace std;class Basepublic:Base()x=0;int x;class Derivedl:

    10、virtual public Basepublic:Derivedl()x=10;class Derived2: virtual public Basepublic:Derived2()(x=20;class Derived: public Derivedl,protected Derived2 ;int main()Derived obj; coutobj.xend1;return 0;该程序运行后的输出结果是(分数:2.00)A.20B.30C.10D.019.C+流中重载了运算符,它是一个(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D

    11、.用于输出操作的非成员函数20.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定一一对应B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对21.以下程序执行后的输出结果是#includeiostreamusing 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

    12、, int z,int r)z = x+y;x = x*x;y = y*y;r = z+x+y;(分数:2.00)A.18B.9C.10D.不确定22.若执行语句:coutsetfill(*)setw(10)123OKend1 后将输出(分数:2.00)A.*123OKB.123*OKC.*123*OKD.123*OK*23.已知:int n=10;那么下列语句中错误的是(分数:2.00)A.int*p=new longn;B.int pn;C.int*p=new long(n);D.int p10;24.下列运算符中不能在 C+中重载的是(分数:2.00)A.?:B.+C.-D.=25.面向

    13、对象程序设计思想的主要特征中不包括(分数:2.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性26.设有以下程序段:int a5=0,*p,*q;p=a;q=a;则下列选项中,合法的运算是(分数:2.00)A.p+qB.p-qC.p*qD.Pq27.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operator+(0).operator *(y);B.operator * (x.operator+(0),y);C.operator * (operator+(x,0

    14、)D.operator * (operator+(x,0),y)28.若有以下程序:#include iostreamusing namespaces std;class Apublic:A()A(int i)x1=i;void dispa()coutx1=“x1“,“;private:int x1;class B: public Apublic:B()B(int i):A(i+10)x2=i;void dispb()dispa();cout“x2=“x2end1;private:int x2;int main()B b(2);b.dispb():return 0;程序运行后的输出结果是(分数

    15、:2.00)A.x1=10,x2=2B.x1=12,x2=10C.x1=12,x2=2D.x1:2,x2=229.C+语言中 while 循环和 do-while 循环的主要区别是(分数:2.00)A.do-while 的循环体至少无条件执行一次B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句30.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)A.5B.6C.7D.831.程序设计方法要求在程序设计过程中(分

    16、数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对32.下列打开文件的表达式中,错误的是(分数:2.00)A.ofstream ofile; ofile.open(“C:/vc/abc.txt“,ios:binary);B.fstream iofile; iofile.open(“abc.txt“,ios:ate);C.ifstream ifile(“C:/vc/abc.txt

    17、“);D.cout,open(“C:/vc/abc.txt“,ios:binary);33.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化34.有以下程序:#includeiostream using namespace std;class sampleprivate:int n;public:sample() sample(int m)n=m;sample add(sample s1,sample s2)this-n=s1.n+s2.n;return (*this);void d

    18、isp()cout“n=“nend1;int main()sample s1(10),s2(5),s3;s3.add(s1,s2);s3.disp();return 0;程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=1535.模板函数的真正代码是在( )时候产生。(分数:2.00)A.源程序中声明函数时B.源程序中定义函数时C.源程序中调用函数时D.运行执行函数时二、填空题(总题数:14,分数:28.00)36.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有上 【1】 个元素。(分数:2.00)填空项

    19、 1:_37.在面向对象方法中,属性与操作相似的一组对象称为 【2】 。(分数:2.00)填空项 1:_38.Jackson 方法是一种面向 【3】 的结构化方法。(分数:2.00)填空项 1:_39.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 【4】 的联系。(分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为 【5】 。(分数:2.00)填空项 1:_41.假设 a、b 均是整型变量,则表达式 a=2,b=5,a+,b+,a

    20、+b 值为 【6】 。(分数:2.00)填空项 1:_42.设在主函数中有以下定义和函数调用语句,且 fun()函数为 void 类型,请写出 fun()函数的首部 【7】 。int main()double s1022;int n;fun(s);return 0;(分数:2.00)填空项 1:_43.若有以下程序段:#include iostreamusing namespace std;int main()char*p=“abcdefgh“,*r;long*q;q=(long*)p;q+;r=(char*)q;coutrend1;return 0;该程序的输出结果是 【8】 。(分数:2.

    21、00)填空项 1:_44.表达式 c3=c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 【9】 。(分数:2.00)填空项 1:_45.下列程序的输出结果是 【10】 。#include iostreamusing namespace std;void fun(int int main()int num= 500;fun(num);coutnumend1;return 0;(分数:2.00)填空项 1:_46.在下面程序的横线处填上适当的语句,使该程序的输出为 12。#include iostreamusing namespace std;class B

    22、asepublic:int a;Base(int i)a=i;class Derived: public Baseint a;public:Derived(int x): Base(x),b(x+l)void show()【11】 ;输出基类数据成员 a 的值。coutbend1;;int main()Derived d(1);d.show();return 0;(分数:2.00)填空项 1:_47.假定 A 为一个类,则语句 A(Aif(xy)a=x; x=y; y=a;if(yz)a=y; y=z; z=a;if(xy)a=x; x=y; y=a;(分数:2.00)填空项 1:_49.下面

    23、程序的输出是:*5.235.23*请将下划线上遗漏的部分补充完整。 #include iostream#include iomanipusing namespace std;void main() double i=5.23;cout 【14】 setw(14)icoutendl 【15】 setw(14)i;(分数:2.00)填空项 1:_二级 C+笔试-393 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设

    24、计与具体的数据库管理系统有关 C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统解析:解析 数据库设计主要分四个步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计。选项 B 错误,应为所选,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关。2.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依

    25、赖性小 D.上述三种说法都不对解析:解析 在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项 A 与 B 错误,选项 C 正确。3.若有以下定义:int a=1,2,3,4,5,6,7;char c1=b,C2=2;则数值不为 2 的表达式是(分数:2.00)A

    26、.a1B.d-c1C.a3-c2D.c2-0 解析:解析 本题考查数组的定义、初始化及其引用,以及对字符 ASCII 码值的熟悉程度。解本题的关键在于熟悉字符的 ASCII 码值。字符在进行数学运算时取其 ASCII 码值,其中b,的 ASCII 码值为98,d的 ASCII 码值为 100,字符2的 ASCII 码值为 50。根据以上知识,可知 D)选项中表达式 c2-0 的值为 50。4.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权

    27、限到派生类中保持不变 解析:解析 本题考核继承与派生。基类与派生类的关系为:基类是对派生类的抽象,派生类是对基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加信息将抽象的基类变为某种有用的类型,派生类是基类定义的延续。派生类是基类的组合。公有派生类的对象可以作为基类的对象处理。由此可知A、B 和 C 选项都是正确的。而在继承中,采用不同的继承方式,将限制派生类对基类成员的访问。所以D 选项是错误的。5.下列类的定义中,有( )处语法错误。class Basepublic:Base()Base(int i)data=i;private:int data;class Derive: p

    28、ublic Basepublic:Derive(): Base(0)Derive(int x)d=x;void setvalue(int i)data=i;private:d;(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考核派生类的定义和成员的访问权限。第一处错误:在派生类的构造函数 Derive(int x)中没有调用基类的构造函数对基类对象初始化:第二处错误:数据 data 是基类 Base 的私有成员,派生类 Derive 不能访问,所以在函数 setvalue 中对 data 的赋值是错误的。6.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层

    29、次模型 C.网状模型D.数据模型解析:解析 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有 3 种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。7.关于类模板,下列表述不正确的是(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数 C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数解析:解析 本题考核类模板的概念。类模板就是一系列相关类的模型或样板,

    30、这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。C 柑中可以为类模板的参数设置默认值,所以 B)选项是不正确的,其他选项的表述都是正确的。8.有以下程序#include iostreamusing namespace std;static int days= 31,28,31,30,31,30,31,31,30,31,30,31 ;class dateprivate:int month, day, year;public:date( int m, int d, int y )month = m;day = d;year =

    31、 y;date()void disp()coutyear“-“month“-“dayend1;date operator+( int day )date dt = *this;day+= dt.day;while ( day daysdt.month - 1 )day -= days dt.month - 1 ;if ( +dt.month = 13 )dt.month = 1;dt.year+;dt.day = day;return dt;int main()date d1( 6, 20, 2004 ), d2;d2: d1 + 20;d2.disp();return 0;执行后的输出结果是

    32、(分数:2.00)A.2004-7-10 B.2004-6-20C.2004-7-20D.程序编译时出错解析:解析 本题考核运算符的重载。本题通过将“+”运算符重载为类 date 的成员函数实现简单的对象加法。9.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征 B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项 A 是正确的,选项 B 错误。白箱测试是根据对程序内部逻辑结构的分析来选取测

    33、试用例,选项 C 错误。正确答案为 A。10.下面不属于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上 D.信息隐蔽解析:解析 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。它们是:抽象、模块化、信息隐蔽、模块独立性。没有自底向上,所以,本题的正确答案是 C。11.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 本题考核虚函数的概念。虚

    34、函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。所以 A 选项不正确;虚函数必须是类的成员函数,所以 B 选项是错误的;虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以 C 选项是不正确的;一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故 D选项的说法是正确的。12.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClass(分数:2.00)A.plus(3,5

    35、L);B.plus(3,5L);C.plusint(3,5L);D.plusint, double(3,5L); 解析:解析 本题考核函数模板的使用。C+中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数的类型如何:虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数T2 没有出现在模板函数的形参列表中,所以在调用时不能省略,D 选项的调用省略了 T3,这是允许的。14.下列叙述中正确

    36、的是(分数:2.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 非空的数据结构如果满足下列两个条件则称为线性结构:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。线性表是线性结构。选项 A 的说法正确;栈与队列是特殊的线性表,因此,它们也是线性结构,选项 B 的说法错误:线性链表是线性表的链式存储结构,因此,其对应的逻辑结构也是线性结构,而不是非线性结构,选项 C 的说法错误;二叉树是非线性结构,而不是线性结构,选项 D 的说法错误。15.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余

    37、 B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据解析:解析 数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项 A 正确,选项 B 错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项 C 错误。数据库系统比文件系统能管理

    38、更多的数据,并非是数据库系统的特点,选项 D 错误。本题正确答案是 A。16.若有如下程序:#include iostreamusing namespaces std;int s=0;class samplestatic iht 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();coutsendl;return 0;程序运行后的输出结果是(分数:2.00)A.2B.5 C.7D.3解析:解析 本题考核静态数据成员和静态成员函数的应用。程序中

    39、定义一个类 sample,它包括一个静态数据成员 n 和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n 赋值。在主函数 main 中,定义对象 a(2)时,通过构造函数使静态数据成员 n 的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。17.若有以下程序: #include iostreamusing namespace std;class datapublic:int x;data(int x)data: :x=x;class Aprivate:data d1;publ

    40、ic:A(int x): d1(x)void dispa()coutd1.x“,“;class B: public Aprivate:data d2;public:B(int x): A(x-1),d2(x)void dispb()coutd2.xend1;class C: public Bpublic:C(int x): B(x-1)void disp()dispa();dispb();int main()C obj(5);obj.disp();return 0;程序执行后的输出结果是 (分数:2.00)A.5,5B.4,5C.3,4 D.4,3解析:解析 本题考核派生类的定义和访问权限。本

    41、题涉及多层次的继承关系。类 B 是类 A 的派生类,类 C 又是类 B 的派生类。类 C 中的构造函数调用了类 B 的构造函数来初始化类 B 的私有数据成员,而类 B的构造函数又调用了类 A 的构造函数来初始化类 A 的私有数据成员。由此可知,程序最后的输出为 3,4。18.若有以下程序:#include iostreamusing namespace std;class Basepublic:Base()x=0;int x;class Derivedl: virtual public Basepublic:Derivedl()x=10;class Derived2: virtual publ

    42、ic Basepublic:Derived2()(x=20;class Derived: public Derivedl,protected Derived2 ;int main()Derived obj; coutobj.xend1;return 0;该程序运行后的输出结果是(分数:2.00)A.20 B.30C.10D.0解析:解析 本题考核虚基类的应用。本题中,虽然 Derivedl 和 Derivec2 都是由共同的 基类 x 派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x 只存在一份拷贝,不论在类 Derivedl 中修改,还是在类 Derivect

    43、2 中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj;”时,就会先调用虚基类 Base 的构造函数,使得 x=0,然后执行类 Derivedl 的构造函数使得 x=10,再执行类 Derived2 的构造函数,使得 x=20。最后输出 x 的值为 20。19.C+流中重载了运算符,它是一个(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数 解析:解析 本题考核运算符的重载。C+流中重载了和,其中用于有格式输入,用于有格式输出,且都重载为非成员函数。20.下列叙述中正确的是(分数:2.00)

    44、A.数据的逻辑结构与存储结构必定一一对应B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对 解析:解析 一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的,因此选项 A 错误。计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此选项 B 错误。数组一般是顺序存储结构,但利用数组也能处理非线性结构。选项 C 错误。只有选项

    45、D 的说法正确。21.以下程序执行后的输出结果是#includeiostreamusing 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.00)A.18B.9C.10D.不确定 解析:解析 本题考核函数调用(参数的传递)。本题常见的错误解答是:把 x=1,y=2 代入到函数 try 中,逐步计

    46、算出 r=8。最后得到 r 的输出值是 8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为 try 的 void 型函数,即函数 try 没有任何返回值。而 try 函数在 main 函数中是以一条独立语句的方式被调用的,且 main 函数最后输出变量 r 的值。但在 main 函数中,并没有对变量 r 赋值。在 C+语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数 try 中,r 的值为 8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。22.若执行语句:coutsetfill(*)se

    47、tw(10)123OKend1 后将输出(分数:2.00)A.*123OK B.123*OKC.*123*OKD.123*OK*解析:解析 本题考核格式控制数据的输入输出。函数 setfill(charc)用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为0,例如题中语句以宽度 10 输出数据“123”后,字符串“OK的输出宽度就自动恢复为 0 了。而且输出的初始状态为右对齐,所以最终的输出为*123OK。23.已知:int n=10;那么下列语句中错误的是(分数:2.00)A.int*p=new longn;B.int pn; C.int*p=new long(n);D.int p10;解析:解析 本题考核指针、数组和 new 运算符。运算符 new 用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式


    注意事项

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




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

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

    收起
    展开