ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:95KB ,
资源ID:1338471      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1338471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】计算机二级考试C++模拟题四2014年及答案解析.doc)为本站会员(syndromehi216)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】计算机二级考试C++模拟题四2014年及答案解析.doc

1、计算机二级考试 C+模拟题四 2014 年及答案解析(总分: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.结构化查询语苦D.结构化操纵语言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.以下叙述中正确的是

5、( )。(分数:1.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.函数模板不能含有

6、常规形参B.函数模板的一个实例就是一个函数定义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 和 shor

7、tC.unsignedshort 和 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.

8、私有成员D.保护成员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,

9、5L);C.plus(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)Co

10、mplex(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.DBBD.DBD34.下面程序的输出结果是( )。 #include #include voidmain() charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“: strcpy(str2,st

11、rcat(p1,p2); 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(constcha

12、r*s); MyString()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; i

14、ntmain() 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

16、; doubleimag()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.BB

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

18、,strcat(p1,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 分)(总题

20、数:1,分数:18.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: retu

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

22、请在注释 2 后添加适当的语句。 (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: intNu

23、ml; constintNum2; 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 才能达到目的。

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