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

    【计算机类职业资格】计算机二级C++考试9+2015年及答案解析.doc

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

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

    【计算机类职业资格】计算机二级C++考试9+2015年及答案解析.doc

    1、计算机二级 C+考试 9+2015 年及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 1 分,共 40 小题,共 40 分(总题数:40,分数:40.00)1.设计程序时,应采纳的原则之一是( )。(分数:1.00)A.程序的结构应有助于读者的理解B.限制 goto 语句的使用C.减少或取消注释行D.程序越短越好2.需求分析阶段的任务是确定( )。(分数:1.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能3.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法。(分数:1.00)A.对象B.数据结构C.数据流D.目标4.下列叙述中,

    2、不属于软件需求规格说明书的作用的是( )。(分数:1.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析5.对下列二叉树 (分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG6.SQL 语言又称为( )。(分数:1.00)A.结构化定义语言B.结构化控制语言C.结构化操纵语言7.下列叙述中正确的是( )。 (分数:1.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的

    3、位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的8.有下列二叉树,对此二叉树中序遍历的结果县( )。 (分数:1.00)A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ9.最简单的交换排序方法是( )。(分数:1.00)A.快速排序B.选择排序C.堆排序D.冒泡排序10.数据库设计包括两个疗面的设计内容,他们是( )。(分数:1.00)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计11.下列关于类和对象的叙述中,

    4、错误的是( )。(分数:1.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系12.在函数中,可以用 aut0、extern、register 和 static 这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(分数:1.00)A.autoB.externC.registerD.static13.若变量已正确定义并赋值,以下符合 C语言语法的表达式是( )。(分数:1.00)A.a:=b1B.a=b=c2C.intl853D.a=a7=cb14.以下叙述中正确的是( )。(分数:1.

    5、00)A.构成 C语言程序的基本单位是类B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义15.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2;则下列选项正确的是( )。(分数:1.00)A.表达式 Wednesday=Friday 的值是 trueB.Dayday;day=3;C.Dayday;day=Monday3;D.Daydayday=Tuesday10;16.下列有关模板的叙述中,正确的是( )。(分数:1.00)A.函数模板不能含有常规形参B.函数模板

    6、的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参17.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是( )。(分数:1.00)A.intoperator-(FunNumber);B.FunNumberoperator-();C.FunNumberoperator-(int);D.intoperator-(FunNumber,FunNumber);18.下列各组类型声明符中,含义相同的一组是( )。(分数:1.00)A.unsignedlongint 和 longB.signedshort 和 shortC.unsigne

    7、dshort 和 shortD.shortint 和 int19.关于纯虚函数,下列表述中正确的是( )。(分数:1.00)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类20.若已定义: inta=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i9,则对 a 数组元素不正确的引用是( )。(分数:1.00)A.ap-aB.*(ai)C.piD.a1021.派生类的成员函数不能访问基类的( )。(分数:1.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员

    8、22.函数定义为 Fun(inti),变量定义 n=100,则下面调用正确的是( )。(分数:1.00)A.Fun(20);B.Fun(20n);C.Fun(n);D.Fun(n);23.有如下四个语句: coutfun();29.有以下程序: #include usingnamespacestd; classsample private: intn; public: sample() sample(intm) n=m: sampleadd(samplesl,samples2) this-n=s1ns2n; return(*this); voiddisp() cout(3,5L);C.plus

    9、(3,5L);D.plus(3,5L);31.有以下程序; #include usingnamespacestd; classComplex public: Complex(doubler=0,doublei=O):re(r),im(i) doublereal()constreturnre; doubleimag()constreturnim; Complexoperator(Complexc)const returnComplex(reCre,imCim); private: doublere,im; ; intmain() Complexa=Complex(1,1)Complex(5);

    10、coutshow(); voidfun2(Bref)refshow(); voidfun3(BB)bshow(); intmain() Bb,*p=newD; Dd; funl(p); fun2(b); fun3(d); return0; 程序的输出结果是( )。(分数:1.00)A.BBBB.BBDC.DBBD.DBD34.下面程序的输出结果是( )。 #include #include voidmain() charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“: strcpy(str2,strcat(p1,p2

    11、); coutnext=b;D.(*p)next=q;36.设有程序段: intk=10。 while(k=O)k=k-1; 则下面描述中正确的是( )。 (分数:1.00)A.循环执行 10 次B.无限循环C.循环体语句一次也不执行D.循环体语句执行一次37.有如下程序: #include usingnamespacestd; classA public: A()cout*、:、?:五个运算符不能重载。25.有如下的程序: #include #include usingnamespacestd; classMyString public: MyString(constchar*s); MyS

    12、tring()deletedata; protected: unsignedlem char*data; MyStrin9:MyString(constchar*s) len=strlen(s); data=newcharlen1; strcpy(data,s); intmain() MyStringa(“CPrograming“); MyStringb(a); return0; 在运行上面的程序时出错,出错的原因是( )。(分数:1.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制的复制构造函数 C.构造对象 a 时实参与形参类型不符D.系统不能生成默认的复制构造函数解析:

    13、【解析】C语言中当一个新对象被另一个已存在的同类型对象初始化时要调用复制构造函数,语句“MyStringb(a);“符合此条件,将调用类 MyString 的复制构造函数,但是类 MyString 没有定义此复制构造函数,所以会出错。26.有如下程序: #include usingnamespacestd; classMyClass public: MyClass()count;) MyClass()-count;) staticintgetCount()returncount; private: staticintcount; ; intMyClass:count=0; intmain()

    14、MyClassobj; coutfun();解析:【解析】如果在子类中要访问父类的函数应用:运算符。29.有以下程序: #include usingnamespacestd; classsample private: intn; public: sample() sample(intm) n=m: sampleadd(samplesl,samples2) this-n=s1ns2n; return(*this); voiddisp() cout(3,5L);C.plus(3,5L);D.plus(3,5L); 解析:【解析】C中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实

    15、参都被省略了,但模板实参的省略并不是必然的,而是有条件的:从模板函数实参表获得的信息有矛盾;需要莸得特定类型的返回值,而不管参数的类型如何;虚拟类型参数不出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数 T2 没有出现在模板数的形参列表中,所以在调用时不能省略,D 选项的调用省略了 T3,这是允许的。31.有以下程序; #include usingnamespacestd; classComplex public: Complex(doubler=0,doublei=O):re(r),im(i) doublereal()constreturnre; doublei

    16、mag()constreturnim; Complexoperator(Complexc)const returnComplex(reCre,imCim); private: doublere,im; ; intmain() Complexa=Complex(1,1)Complex(5); coutshow(); voidfun2(Bref)refshow(); voidfun3(BB)bshow(); intmain() Bb,*p=newD; Dd; funl(p); fun2(b); fun3(d); return0; 程序的输出结果是( )。(分数:1.00)A.BBBB.BBDC.D

    17、BB D.DBD解析:【解析】本题考查的知识点是虚函数与多态性。在成员函数声明的前面加上 virtual 修饰,即把该函数声明为虚函数。在 C中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。故本题最终输出结果为 DBB。34.下面程序的输出结果是( )。 #include #include voidmain() charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“: strcpy(str2,strcat(p

    18、1,p2); coutnext=b;D.(*p)next=q; 解析:【解析】要把结点 b 连接到结点 a 之后,必须把 b 的地址给 a 的 next 指针,选项 A 中,指针变量q 保存的就是变量 b 的地址,选项 B 中的 P 是指针变量,应该是 P-next=b;在选项 D 中,用*运算符取出结构体变量,并且保存的就是 b 的地址,所以正确。36.设有程序段: intk=10。 while(k=O)k=k-1; 则下面描述中正确的是( )。 (分数:1.00)A.循环执行 10 次B.无限循环C.循环体语句一次也不执行 D.循环体语句执行一次解析:【解析】while 中表达式值一直为

    19、0,故循环一次也不执行。37.有如下程序: #include usingnamespacestd; classA public: A()cout0是指 pij中的字符只要不是字符串结束标志0就继续循环,语句 j=2;是使下标 j 每次增加 2,即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从 p1所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果 s 中的值应该是 6385。二、程序改错题(18 分)(总题数:1,分数:1

    20、8.00)41.使用 VC60 打开考生文件夹下的源程序文件 1cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: member:1 member:10 member:100 注意:错误的语句在*error*的下面,修改该语句即可。其他的语句不能修改。 试题程序: #include inti=100; classTC public: TC(inti) couti=i9;(*this)i=i_9;或 TC:i=i9;”。 (2)“TCobj;”应改为“TCobj(1);”。 (3)“cout=MaxData) MaxData=datai; MaxPos=i: returnMaxPos

    21、; )解析:【解析】本题考查的是查找最大值算法。根据题意,首先检查传入参数的合法性,如不合法或为空串,则返回-1,然后通过 for 循环遍历整个字符串,将最大值字符保存到 MaxData 内,并将最大位置保存给 MaxPos,最后返回 Max-Pos。 四、综合应用题(18 分)(总题数:1,分数:18.00)43.用 VC60 打开考生文件夹下的源程序文件 3cpp,这个工程完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能: (1)初始化 Num2 的值为 j,请在注释 1 后添加适当的语句。 (2)补充全局函数 fun 使之能够调用类 TC 的成员变量,请在注释 2 后

    22、添加适当的语句。 (3)初始化静态变量,请在注释 3 后添加适当的语句。 (4)修改注释 4 后的语句。使得程序输出以下内容: Num1=7 Num2=12 Num3=-7 Num1=6 Num2=9 Num3=-17 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 试题程序: #include classTC public: *1* TC(inti,intj) Num1=i: Num3-=i: voidPrint() cout“Numl=“ cout“Num2=“ cout“Num3=“ voidAdd(inti) Num3-=i: private: intNuml; cons

    23、tintNum2; staticintNum3; *2*; *3*voidfun( ) TCobj(5,9); objNuml=6; *4*objAdd( ); objPrint( ); voidmain( ) TCobj(7,12); objPrint( ); fun( ); return; (分数:18.00)_正确答案:( (1)“TC(inti,intj)”应改为“TC(inti,intj):Num2(j)”。 (2)应添加“friendvoidfun();”。 (3)应添加“intTC:Num3=0;”。 (4)“objAdd();”应改为“0bjAdd(5);”。)解析:【解析】本

    24、题考查了构造函数初始化列表、声明友元函数、初始化静态成员变量。第 1 处应该添加初始化 Num2 成员的语句,由于该成员为常成员,所以只能通过初始化列表初始化。第 2 处应添加将 fun函数声明为 TC 类友元的语句。静态成员变量需要在类外初始化,就像定义类的成员函数一样。可以将静态成员变量看成全局变量。Add 函数需要一个 int 型参数,从 Add 函数的定义来看,它将增加形参 i 的值。由于 main 函数中先调用了一次 Print 成员函数,已经输出了 3 行数据,然后再调用 fun 函数的,所以fun 函数中调用 Print 是输出后 3 行数据。Num3 在第 1 次输出时值为 10,fun 函数中创建 obj 对象时,又让其增加 1,而希望它最终的值是 16,所以不难得知,Add()中应传入 5 才能达到目的。


    注意事项

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




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

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

    收起
    展开