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

    【计算机类职业资格】程序员-C++程序设计(一)及答案解析.doc

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

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

    【计算机类职业资格】程序员-C++程序设计(一)及答案解析.doc

    1、程序员-C+程序设计(一)及答案解析(总分:23.00,做题时间:90 分钟)一、试题一(总题数:3,分数:5.00)请补齐上述代码中的空缺(1)和(2)。(分数:2.00)填空项 1:_填空项 1:_类 Stock 的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。(分数:2.00)填空项 1:_填空项 1:_1.指出该代码是否存在内存泄漏。(分数:1.00)填空项 1:_二、试题二(总题数:1,分数:5.00)说明C+标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空问为 std。vector 模板类的部分方法说明如表 12-

    2、3 所示。表 12-3 vector 模板类的部分方法方法 含义push_back(k) 向 vector 对象的尾部添加一个元素 kbegin() 返回一个迭代器对象,该对象指向 vector 中的第一个元素end() 返回一个迭代器对象,该对象指向 vector 中的最后一个元素empty() 测试 vector 对象是否为空erase(ptr) 删除 vector 中 ptr 指向的元素C+代码#includeiostream#includevectorusing namespace (1) ; typedef vector (2) INTZECTOR; const int ARRAY_

    3、SIZE=6; void ShowVector(INTVECTOR int main( ) INTVECTOR theVector; /初始化 theVector,将 theVector 的元素依次设置为 0 至 5for (int cEachItem=0; cEachItemARRAY_SIZE; cEachItem+)theVector. push_back( (3) ); ShowVector(theVector); /依次输出 theVector 中的元素theVector. erase(theVector. begin( )+3); ShowVector(theVector); vo

    4、id ShowVector(INTVECTOR return; INTVECTOR:iterator (4) ; for(theIterator = theVector.begin( ); theIterator != theVector.end( ); theIterator+)cout *theIterator; if(theIterator ! =thevector. end( )-1)cout“,“; coutendl; 该程序运行后的输出结果为:0, 1 , 2, 3, 4, 5(5) (分数:5.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_三、试题三

    5、(总题数:1,分数:5.00)说明已知对某载客车辆(Car)进行类建模,如图 12-2 所示,其中类 Engine 表示发动机引擎,类 Wheel 表示车轮,类 Body 表示车身,类 Driver 表示司机,类 Passenger 表示乘客。(分数:5.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:3,分数:8.00)2.关于上述 C+代码中 sh 和 tr 的以下叙述中,哪两个是正确的(写出编号)?sh 和 tr 分别引用同一个对象;sh 和 tr 分别引用同一类型的不同的对象;sh 和 tr 分别引用不同类型的不同对象;sh 和 tr 分

    6、别引用同一个对象的不同复制;sh 和 tr 所引用的内存空间是相同的。(分数:1.00)填空项 1:_写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。(分数:6.00)(1).tr-height( )(分数:1.00)填空项 1:_(2).sh-perimeter( )(分数:1.00)填空项 1:_(3).sq-height( )(分数:1.00)填空项 1:_(4).sq-perimeter( )(分数:1.00)填空项 1:_(5).sh-height( )(分数:1.00)填空项 1:_(6).tr-perimeter( )(分数:1.00)填空项 1

    7、:_3.不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)sq=sh;sh=tr;tr=sq;sq=tr;sh=sq。(分数:1.00)填空项 1:_程序员-C+程序设计(一)答案解析(总分:23.00,做题时间:90 分钟)一、试题一(总题数:3,分数:5.00)请补齐上述代码中的空缺(1)和(2)。(分数:2.00)填空项 1:_ (正确答案:Stock( ):shares(1),share_val(1)或 Stock( ):share_val(1),shares(1)。)解析:填空项 1:_ (正确答案:cout)解析:类 Stock 的定义中有两处错误,请指出错

    8、误所在行号并给出该行修改后的完整结果。(分数:2.00)填空项 1:_ (正确答案:第 4 行,修改为:public:)解析:填空项 1:_ (正确答案:第 9 行,修改为:Stock( ))解析:1.指出该代码是否存在内存泄漏。(分数:1.00)填空项 1:_ (正确答案:不存在内存泄漏)解析:解析 由题中程序可知类 Stock 有默认的构造函数,且该构造函数将初始化类中一些成员变量,所以(1)处应该为 Stock 的构造函数。成员函数 output 用于输出成员变量的值,所以(2)处应为 cout。对于问题 2由于类至少有一个公共的构造函数,所以第 4 行的 protect 应该改为 pu

    9、blic,而析构函数不能有返回值,所以第 9 行应该去掉 void。对于问题 3main 函数中类的使用没有通过 new 操作符生成 Stock 类的对象,所以不存在内存泄漏。二、试题二(总题数:1,分数:5.00)说明C+标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空问为 std。vector 模板类的部分方法说明如表 12-3 所示。表 12-3 vector 模板类的部分方法方法 含义push_back(k) 向 vector 对象的尾部添加一个元素 kbegin() 返回一个迭代器对象,该对象指向 vector 中的第一个元素end(

    10、) 返回一个迭代器对象,该对象指向 vector 中的最后一个元素empty() 测试 vector 对象是否为空erase(ptr) 删除 vector 中 ptr 指向的元素C+代码#includeiostream#includevectorusing namespace (1) ; typedef vector (2) INTZECTOR; const int ARRAY_SIZE=6; void ShowVector(INTVECTOR int main( ) INTVECTOR theVector; /初始化 theVector,将 theVector 的元素依次设置为 0 至 5f

    11、or (int cEachItem=0; cEachItemARRAY_SIZE; cEachItem+)theVector. push_back( (3) ); ShowVector(theVector); /依次输出 theVector 中的元素theVector. erase(theVector. begin( )+3); ShowVector(theVector); void ShowVector(INTVECTOR return; INTVECTOR:iterator (4) ; for(theIterator = theVector.begin( ); theIterator !=

    12、 theVector.end( ); theIterator+)cout *theIterator; if(theIterator ! =thevector. end( )-1)cout“,“; coutendl; 该程序运行后的输出结果为:0, 1 , 2, 3, 4, 5(5) (分数:5.00)填空项 1:_ (正确答案:std)解析:填空项 1:_ (正确答案:int)解析:填空项 1:_ (正确答案:cEachItem)解析:填空项 1:_ (正确答案:theIterator)解析:填空项 1:_ (正确答案:0,1,2,4,5)解析:解析 本题考查的是 C+语言的基本应用。在使用

    13、C+标准库中的对象时,要引入标准的命名空间,空(1)处应为 std,空(2)处是用来指定 vector 对象的类型,此处应为 int,空(3)处是将循环变量的值存入 theVector 中,所以应为 cEachItem,空(4)处代码主要是循环输出 theVector 对象的内容,因此应为定义迭代器变量 theIterator。程序开始会输出 0,1,2,3,4,5,再次输出时则为 0,1,2,4,5。三、试题三(总题数:1,分数:5.00)说明已知对某载客车辆(Car)进行类建模,如图 12-2 所示,其中类 Engine 表示发动机引擎,类 Wheel 表示车轮,类 Body 表示车身,类

    14、 Driver 表示司机,类 Passenger 表示乘客。(分数:5.00)填空项 1:_ (正确答案:MAX_PASSENGERS)解析:填空项 1:_ (正确答案:driverName)解析:填空项 1:_ (正确答案:this)解析:填空项 1:_ (正确答案:engine)解析:填空项 1:_ (正确答案:&driver)解析:解析 根据类图描述,分析可得:一辆汽车可以载 07 名乘客,一辆汽车可以被一个或者多个司机驾驶,并且一辆汽车有 45 个轮胎,一个引擎和一个车框架。程序代码中空(1)处表示一辆汽车最多载客数目,从后面的程序代码分析可得,应该填写 MAX_PASSENGERS。

    15、空(2)处用于构造一个司机对象,需要司机名称 driverName 作为参数。空(3)处主要设置车的假设司机,由于参数的名称与成员变量的名称相同,因此需要加上 this 以示区别。空(4)处所对应代码段是汽车 car 的析构函数,与 car 的构造函数相对应,需要将构造函数中创建的引擎和车轮删除,所以空(4)处应为删除引擎。空(5)处用于产生一个汽车对象,所以,需要给汽车对象传递合适的参数,构造方法中需要传递一个司机对象,因此应该将 driver 对象传递到汽车对象中。四、试题四(总题数:3,分数:8.00)2.关于上述 C+代码中 sh 和 tr 的以下叙述中,哪两个是正确的(写出编号)?s

    16、h 和 tr 分别引用同一个对象;sh 和 tr 分别引用同一类型的不同的对象;sh 和 tr 分别引用不同类型的不同对象;sh 和 tr 分别引用同一个对象的不同复制;sh 和 tr 所引用的内存空间是相同的。(分数:1.00)填空项 1:_ (正确答案:)解析:写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。(分数:6.00)(1).tr-height( )(分数:1.00)填空项 1:_ (正确答案:3)解析:(2).sh-perimeter( )(分数:1.00)填空项 1:_ (正确答案:5)解析:(3).sq-height( )(分数:1.00)填

    17、空项 1:_ (正确答案:无)解析:(4).sq-perimeter( )(分数:1.00)填空项 1:_ (正确答案:4)解析:(5).sh-height( )(分数:1.00)填空项 1:_ (正确答案:无)解析:(6).tr-perimeter( )(分数:1.00)填空项 1:_ (正确答案:5)解析:3.不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)sq=sh;sh=tr;tr=sq;sq=tr;sh=sq。(分数:1.00)填空项 1:_ (正确答案:)解析:解析 根据题中代码可知,仃指向一个 Triangle 对象,sq 指向一个 Square 对象,

    18、sh 和 tr 指向同一个Triangle 对象。所以问题 1 中正确,由于 sh 和 tr 指向同一个对象,其引用的内存空间也必然相同,错误。对于问题 2 中的消息,tr 指向 Triangle 对象,所以 tr-heighl:( )调用 Triangle 类的height 方法;sq 指向 Sqtlare 对象,但 Square 没有 height 方法,所以 sq-height( )没有对应任何方法调用,但 Square 类有 perimeter 方法,所以 sq-perimeter( )调用 Sqtlare 类的 perimeter 方法,其他几项同上。问题 3 中,赋值运算的左边应该是右边的父类或同一类型才可以正确赋值。所以正确的是。


    注意事项

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




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

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

    收起
    展开