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

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

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

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

    【计算机类职业资格】国家二级(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;)解析:解析:主要考查考生对动态数组的掌握情况,计算单词个数通过计算空格数目来完成。


    注意事项

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




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

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

    收起
    展开