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

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

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

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

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

    1、国家二级(C+)机试-试卷 4-1 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.在面向对象方法中,不属于“对象“基本特点的是( )。(分数:2.00)A.一致性B.分类性C.多态性D.标识唯一性2.下列运算符中,不能被重载的是( )。(分数:2.00)A. class Base public: void output() coutPrint(); delete ptr; return 0; 执行这个程序的输出结果是( )。(分数:2.00)A.1BB.1DC.2BD.2D4.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连

    2、接B.交C.投影D.并5.有如下类定义和变量定义: class A public: A() data = 0; A() int GetData() const return data; void SetData(int n) data = n; private: int data; ; const A a; A b;下列函数调用中错误的是(分数:2.00)A.a.GetData();B.a.SetData(10);C.b.GetData();D.b.SetData(10);6.下列关于模板形参的叙述中,错误的是(分数:2.00)A.模板形参表必须在关键字 template 之后B.模板形参表必

    3、须用括弧()括起来C.可以用 class 修饰模板形参D.可以用 typename 修饰模板形参7.下列选项中,正确的 C+标识符是(分数:2.00)A.student-3B._3studentC.3studentD.student38.下列关于类的析构函数的叙述中,错误的是(分数:2.00)A.定义析构函数时不能指定返回值B.析构函数的函数名就是类名前加上字符C.析构函数可以重载D.在一个类中如果没有定义析构函数,系统将自动生成一个析构函数9.要利用 C+流进行文件操作,必须在程序中包含的头文件是(分数:2.00)A.iostreamB.fstreamC.strstreamD.cstdlib

    4、10.有如下程序段:int i=1;int j=4;int main() int j=i, i=8; cout0; i-=3) n+;之后,变量 n 的值是(分数:2.00)A.20B.21C.60D.6140.下列函数模板声明中,合法的是(分数:2.00)A.templateTabs(Tx);B.templateclassTabs(Tx);C.templateTabs(Tx);D.templateoutput 后,会执行基类的 output 函数,输出 1,由于Print 是虚函数,所以 ptr-Print()会执行派生类的 Print,即输出 D,所以本题答案为 B。4.有三个关系 R、S

    5、 和 T 如下: (分数:2.00)A.自然连接 B.交C.投影D.并解析:解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据 T 中元组可以判断 R 和 S 做的是自然连接操作。5.有如下类定义和变量定义: class A public: A() data = 0; A() int GetData() const return data; void SetData(int n) data = n; private: int data; ; const A a; A b;下列函数调用中错误的是(分数:2.00)A.a.

    6、GetData();B.a.SetData(10); C.b.GetData();D.b.SetData(10);解析:解析:本题考查常对象,如果一个对象被定义为常对象,那么它不能调用该对象的非 const 型的成员函数,所以 B 选项错误,a 为常对象,调用了 SetData 这个非 const 型的成员函数。6.下列关于模板形参的叙述中,错误的是(分数:2.00)A.模板形参表必须在关键字 template 之后B.模板形参表必须用括弧()括起来 C.可以用 class 修饰模板形参D.可以用 typename 修饰模板形参解析:解析:本题考查模板的定义,使用的括号为Tabs(Tx);解析

    7、:解析:选项 B 中类型形参 T 前需要有关键字 class 或 typename 修饰;选项 C 中函数 ads 需要返回值;选项 D 中形参表不能为空;答案为 A。二、基本操作题(总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 prog1 下的工程 prog1,该工程中包含程序文件maincpp,其中有 Salary(“工资”)类和主函数 main 的定义。程序中位于每个“ERROR*found*”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为:应发合计:3500 应扣合计:675 实发工资:34325 注意:只修改每个“ERROR*fou

    8、nd*”下的那一行,不要改动程序中的其他内容。#includeiostreamusingnamespacestd;classSalarypublic:Salary(constchar*id,doublethe_base,doublethebonus,doublethe_tax)ERROR*found*:thebase(base),thebonus(bonus),thetax(tax)staffid=newcharstrlen(id)+1;strcpy(staffid,id);ERROR*found*Salary()delete*staffid;)doublegetGrossPay()const

    9、returnbase+bonus;返回应发项合计 doublegetNetPay()constreturngetGrossPay()_tax;返回实发工资额 private:char*staffid;职工号 doublebase;基本工资doublebonus;奖金 doubletax;代扣个人所得税;intmain()Salarypay(“888888“,30000,5000,6750);cout“应发合计:“paygetGrossPay()“;cout“应扣合计:“paygetGrossPay()-paygetNetPay()“;ERROR*found*cout“实发工资:“pay:get

    10、NetPay()end1;return0;(分数:2.00)_正确答案:(正确答案:(1):base(the_base),bonus(the_bonus),tax(the_tax) (2)Salary()deletestaff_id; (3)cout“实发工资:“paygetNetPay()end1;)解析:解析:(1)主要考查考生对构造函数的掌握情况,构造函数的成员初始列表要把形参放在括号内。 (2)主要考查考生对析构函数的掌握情况,析构函数使用 delete 释放指针,delete 后要跟标识符“”。(3)主要考查考生对成员函数调用的掌握情况,调用类的成员函数使用标识符“”,而不是作用域符

    11、“:”。三、简单应用题(总题数:1,分数:2.00)42.请使用 VC6 或使用【答题】菜单打开考生文件夹 pmj2 下的工程 pmj2,该工程中包含程序文件mainepp,其中有类 Mammal(“哺乳动物”)、类 Elephant(“大象”)、类 Nouse(“老鼠”)的定义和主函数 main 的定义。请在横线处填写适当的代码并删除横线,以实现上述定义。此程序的正确输出结果应为:ELEPHANTMOUSE 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“:*found*”。#includeiostreamusingnamespacestd;enHMcatego

    12、ryENPTY,ELEPHANT,NOUSE;char*output=“ENPTY“,“ELEPHANT“,“NOUSE“);classMammalpublic:Nammal(char*str)*found*name=new_strcpy(name,str);virtualchar*NhoAmI()=0;virtualNammal()deletename;voidPrint()coutWhoAmI()end1;private:char*name;classElephant:publicNammalpublic:*found*Elephant(char*str):_char*WhoAml()re

    13、turnoutputELEP-IANT;classNouse:publicNammalpublic:Nouse(char*sir):Nammal(sir)*found*char*WhoAml()_;intmain()*found*Nammal*pm=new_(“Huanhuan“);pm-Print();deletepm;pm=newNouse(“Nicky“);pm-Print();deletepm;return0;(分数:2.00)_正确答案:(正确答案:(1)charstrlen(sir)+1; (2)Mammal(str) (3)retumoutputMOUSE; (4)Elephan

    14、t)解析:解析:(1)主要考查分配空间,程序要给 name 分配空间,由下一条语句中 strcpy(name,str)可知程序要把字符串 str 复制给 name,因此要分配的空间大小为 strlen(str)+1。 (2)主要考查考生对构造函数的掌握,因为 Elephant 类是 Mammal 类的派生类,所以其构造函数要使用成员列表先对 Mammal 类初始化。 (3)主要考查考生对枚举类型的掌握,先看程序:enumcategoryEMPTY,ELEPHANT,MOUSE。再参考Elephant 类中的 WhoAmI 函数:char*WhoAmI()returnoutputELEPHANT

    15、;。可知这里要填写的返回语句为:retumoutputMOUSE;。 (4)主要考查考生对派生类的掌握,题目要求输出: ELEPHANANT MOUSE 可知,要先调用 Elephant 类的 WhoAmI 函数,因此给指针 pm 分配 Elephant 类空间。四、综合应用题(总题数:1,分数:2.00)43.请使用 VC6 或使用【答题】菜单打开考生目录 proj3 下的工程文件 pmj3,该工程中包含一个源程序文件 proj3cpp,其中定义了用于表示平面坐标系中的点的类 NyPoint 和表示圆形的类 NyCircle;程序应当显示:(1,2),5,314159,785398 但程序中

    16、有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“*1*found*”的下方是构造函数的定义,它用参数提供的圆心和半径分别对 cen 和rad 进行初始化。(2)在“*2*found*”的下方是非成员函数 perimeter 的定义,它返回圆的周长。(3)在“*3*found*”的下方是友元函数 area 的定义,它返回圆的面积。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。proj3cpp#includeiostream#includecmathusingnamespacestd;classMyPoint表示平面坐标系中的点的类 dou

    17、blex;doubley;public:MyPoint(doublex,doubley)this-x=x;this-y=y;doublegetX()constreturnx;doublegetY()constreturny;voidshow()constcout(x,y);classMyCircle表示圆形的类MyPointcen;圆心 doublerad;半径 public:MyCircle(MyPoint,double);MyPointcenter()constreturncen;返回圆心 doubleradius()constreturnrad;返回圆半径frienddoublearea

    18、(MyCircle);返回圆的面积,*1*found*MyCircle:MyCircle(MyPointp,doubler):cen(p),_#definePI31415926535doubleperimeter(MyCirclec)返回圆 c 的周长*2*found*returnPI*_;*3*found*doublearea(_)返回圆 a 的面积returnPI*arad*arad;intmain()MyCircleC(MyPoint(1,2),50);Ccenter()show();cout,Cradius(),perimeter(c),area(c)end1;return0;(分数:2.00)_正确答案:(正确答案:(1)rad(r) (2)2*c.radius() (3)MyCircle a)解析:解析:(1)主要考查考生对构造函数的掌握,使用成员列表初始化给 rad 赋初始值。 (2)主要考查考生对成员函数的掌握,函数功能为返回圆 c 的周长。要返回圆的周长,应利用公式 PI*2*c.radius()完成。 (3)主要考查考生对成员函数的掌握,因为函数功能为返回圆 a 的面积,所以函数的形参应该为 MyCircle a。


    注意事项

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




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

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

    收起
    展开