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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级(C++)机试-试卷15-1及答案解析.doc

1、国家二级(C+)机试-试卷 15-1 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列语句中,错误的是( )。(分数:2.00)A.constintbuffer=256;B.constinttemp;C.constdouble*point;D.constdouble*rt=newdouble(5.5);2.由于常对象不能被更新,因此( )。(分数:2.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值3.在 C+中,cin 是一个( )。(分数:2.

2、00)A.类B.对象C.模板D.函数4.执行下列语句段后,输出字符“*“的个数是( )。for (int i=50; i1; i-=2)cout draw(); int main() Shape s; Triangle t; plot( plot( s=t; s.draw(); return 0; 运行这个程序的输出是(分数:2.00)A.STTB.STSC.TSSD.TTT18.下列函数声明中,错误的是(分数:2.00)A.voidfun(intx=0,inty=0);B.voidfun(intx,inty=0);C.voidfun(intx=0,inty);D.voidfun(intx,i

3、nty);19.若 Pay 是一个类名,则执行语句 Pay p1,p22,*p3;时 Pay 的构造函数被调用的次数是(分数:2.00)A.1B.2C.3D.420.下列语句中,错误的是( )。(分数:2.00)A.constintbuffer=256;B.constdouble*point;C.intconstbuffer=256;D.double*constpoint;21.下列关于派生类构造函数和析构函数的说法中,错误的是( )。(分数:2.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造

4、函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数22.下列叙述中正确的是( )。(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对23.若已经声明了函数原型“boolfun(boola,intb=0);“,则下列重载函数声明中正确的是(分数:2.00)A.boolfun(boola=true,intb=0);B.intfun(boola,intB);C.voidfun(doublea,intB);D.voidfun(boola,intb=0);24.有如下程序: #incl

5、ude #include using namespace std; class Person public: Person(string n):name(n) Person() cout1; i-=2)cout draw(); int main() Shape s; Triangle t; plot( plot( s=t; s.draw(); return 0; 运行这个程序的输出是(分数:2.00)A.STTB.STS C.TSSD.TTT解析:解析:main 函数中,plot 函数的参数通过 Shape 对象引用和 Triangle 对象引用来调用虚函数draw(),由于形参 s 是基类引

6、用,所以符合多态性调用,程序将在运行时期根据 s 引用对象的类型决定调用哪个 draw(),这里实参 s 是 Shape 类类型,因而调用 Shape 类的 draw()函数,实参 t 是 Triangle 类类型,因而调用 Triangle 类的 draw()函数,输出:“ST“;程序接着将派生类对象 t 赋给 s,由于基类Shape 没有显式的定义赋值运算符和将派生类对象作为参数的基类构造函数,因而编译器自动产生基类Shape 的赋值运算符 operator=(ShapeB.voidfun(intx,inty=0);C.voidfun(intx=0,inty); D.voidfun(int

7、x,inty);解析:解析:默认参数是通过给形参表中的形参提供明确的初始值来指定的,可以为一个或多个形参定义默认值,但是如果有一个形参具有默认值,那它右边的形参都必须有默认值(即全是默认参数)。选项 C 错误,形参 y 也必须要有默认值;答案为 C。19.若 Pay 是一个类名,则执行语句 Pay p1,p22,*p3;时 Pay 的构造函数被调用的次数是(分数:2.00)A.1B.2C.3 D.4解析:解析:程序定义了 Pay 对象 p1,Pay 对象数组 p2 和 Pay 对象指针 p3,编译器自动生成默认构造函数初始化 p1 对象和 p2 的两个对象元素;p3 没有初始化,没有调用构造函

8、数,答案为 C。20.下列语句中,错误的是( )。(分数:2.00)A.constintbuffer=256;B.constdouble*point;C.intconstbuffer=256;D.double*constpoint; 解析:解析:const 是一个 C+关键字,用于限定不允许改变的变量。选项 B 是指向常量的指针,定义时可以不初始化;选项 D 是指针常量,定义时必须初始化。故答案为 D。21.下列关于派生类构造函数和析构函数的说法中,错误的是( )。(分数:2.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立

9、派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数 解析:解析:在销毁派生类对象时,先调用派生类的析构函数,再调用基类的析构函数。22.下列叙述中正确的是( )。(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对 解析:解析:栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。23.若已经声明了函数原型“boolfun(boola,intb=0);“,则下列重载函数声明中正确的是(分数:2.00)A.boolfun(boo

10、la=true,intb=0);B.intfun(boola,intB);C.voidfun(doublea,intB); D.voidfun(boola,intb=0);解析:解析:本题考查函数重载相关知识,重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。ABD 选项的形参都与原函数相同,所以不能作为重载函数,选项 C 正确。24.有如下程序: #include #include using namespace std; class Perso

11、n public: Person(string n):name(n) Person() coutx=x,this-y=y; (2)voidshow()consttout(x,); (3):p1(pt1),p2(pt2)或p1=pt1;p2=pt2)解析:解析:(1)主要考查考生对构造函数的掌握,因为形参名和私有成员名称一样,因此不能直接赋值,在这里使用成员列表初始化,也可以使用 this 指针赋值。 (2)主要考查考生对语句基本语法的掌握,根据语句:voidshow()consteout(x,y)。可看出函数体内并没有“;”作为 cout 语句的结束符,因此程序错误。 (3)主要考查考生对构造

12、函数的掌握,形参是 pt1 和 pt2,这里写反了,也可以使用成员列表初始化法,可以避免这种错误。三、简单应用题(总题数:1,分数:2.00)42.请使用“答题”菜单或使用 VC6 打开考生文件夹 proj2 下的工程 proj2。此工程包含一个程序文件maincpp,其中有日期类 Date、人员类 Person 以及排序函数 sortByName 和主函数 main 的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为:按姓名排序排序前:张三男出生日期:1978 年 4 月 20 日王五女出生日期:1965 年 8 月 3 日杨六女出生

13、日期:1965 年 9 月 5 日李四男出生日期:1973 年 5 月 30 日排序后:李四男出生日期:1973 年 5 月30 日王五女出生日期:1965 年 8 月 3 日杨六女出生日期:1965 年 9 月 5 日张三男出生日期:1978 年 4月 20 日注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“*found*”。#includeiostreamusingnamespacestd;classDate日期类 intyear,month,day;年、A、日 public:Date(intyear,intmonth,intday):year(year),m

14、onth(month),day(day)intgetYear()constreturnyear;intgetMonth()const(returnmonth;intgetDay()constreturnday;classPerson人员类 charname14;姓名boolismale;性别,为 true 时表示男性 Datebirthdate;出生日期public:Person(char*name,booliSmale,Datebirthdate)*found*:_strcpy(this-name,name);constchar*getName()constreturnname;boolisMale()constreturnismale;DategetBirthdate()constreturnbirthdate;利用 strcmp()函数比较姓名,返回一个正数、0 或负数,分别表示大于、等于、小于 intcompareName(constPerson int counter = 1; int length = strlen(str); for (int i = 0; i length; i+) if (isspace(stri) counter+; return counter;)解析:解析:主要考查考生对动态数组的掌握情况,计算单词个数通过计算空格数目来完成。

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