2018下半年程序员考试真题及答案-下午卷.docVIP

2018下半年程序员考试真题及答案-下午卷.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE / NUMPAGES 2018下半年程序员考试真题及答案-下午卷 第1题 说明 设[a1b1],[a2,b2],...,[an,bn]是数轴上从左到右排列的n个互不重叠的区间(a1b1a2b2...anbn).以下流程图将一个新的区间[A,B](AB)添加到上述区间集,形成新的从左到右排列的若千个互不重叠的区间(若A、B落在原有的两个区间,则以原有区间最左端点和最右端点为基准,形成新的区间),最后依次输出这些区间的端点。 例如,给定区间集:[1,2],[4,6],[8,10],[13,15],[17,20],添加区间[5,14]后,依次输出1,2,4,15,17,20,表示合并后的区间集:[1,2],[4,15],[17,20]。 该流程图采用的算法是:先在a1,b1,a2,b2,...,an,bn中扫描定位A点,再继续描定位B点,在扫描过程中随时输出已确定的区间的端点值。 问题:1.1 阅读以下说明和C代码,填写程序中的空(1) ~(5),将解答写入答题纸的对应栏内。 答案解析: 1.A 2.ai 3.bi 4.A,B 5.B 首先判断A=ai,如果不满足,那么表示ai比较小,所以输出的是ai,判断A=bi,如果不满足那么输出的就是bi,朝一个推进,如果依次都不满足,最终循环输出的就是区间[A,B]。这里可以判断(2)空为ai,(3)空为bi,(4)空为A,B。 如果在判断A=ai满足,那么表示A比较小,所以输出的是A,所以(1)空填A。 判断(5)空,这是在B=bi依次判断都不满足,知道最后一个区间都判断结束,这个时候说明B是大于所有的bi,所以此时输出来的是B。所以(5)空填B。 第2题 【C代码1】 问题:2.1 写出【C代码1】运行时分别输入-1331、795的输出结果。 问题:2.2 写出【C代码2】运行时的输出结果。 答案解析: (1)输入-1331的结果是: Palindromic number. a=-1331 b=1331 输入795的结果是: a=795 b=597 答案解析: (2)输出结果是: Passed,point=4 Passed,point=1 Passed,point=1 Passed,point=1 Failed 第3题 【说明】 某地电价分三档: (1)当月用电量不超过180度时,每度电0.5元: (2)当月用电量超出180度但不超过360度的部分,每度电0.55元: (3)当月用电量超过360度的部分,每度电0.7元。 例如,某户A一个月的用电量为150度,其电费为150*0.5=75.00元;某户B用电量为280度,其电费为180*0.5+(280-180)*0.55=145.00元;某户C用电量为450度,其电费为180*0.5+(360-180)*0.55+(450-360)*0.7=90.0+99.0+63.0=252.00元 下面程序运行时读入m(m0)个住户某月的用电量,计算该月每户应缴的电费并输出,同时找出这m个住户中该月的最大用电量和最小用电量。 问题:3.1 阅读以下说明和C代码,填写程序中的空(1) ~(6),将解答写入答题纸的对应栏内。 答案解析: 1.qt=180 2.qt=360 3.180*0.5+(360-180)*0.55+(qt-360)*0.7 4.minimumqt 5.maximumqt 6.m-- 第4题 【说明】 函数insertElem 的功能是在元素升序排列的数组中加入一个新元素并保持数组元素升序排列的特点。在main函数中输入若干表示价格的实数,输入为0或负数或实数个数超出限定数量时终止,调用insertElem将价格按升序保存在数组pdata中,最后输出所输入的实数。 问题:4.1 阅读以下说明和C代码,填写程序中的空(1) ~(6),将解答写入答题纸的对应栏内。 答案解析: 1.arr[n] 2.arr[i+1]=arr[i] 3.arr[i+1] 4.break 5.pdata,n,price 6.idxn (1)空如果arr数组里面目前的所有的数字都比新元素都要小,那么新元素肯定是插入到最后,所以填的是arr[n]; (2)(3)空执行查找插入位置并将元素后移,并将元素放在相应位置,首先如果elemarr[i],此时elem应该插入在arr[i]的后面,所以使用arr[i+1]=elem。 (4)空如果输入的price小于等于0的话,按照题目要求的话,是终止循环,所以此处填入break。 (5)空是进行调用insertElem函数,此处填入调用的参数,分别是pdata,n,price。 (6)空是进行数组遍历输出,遍历到有

文档评论(0)

zhuimengvip + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体高新区追梦信息技术咨询中心
IP属地河北
统一社会信用代码/组织机构代码
92130101MA0GHP2K98

1亿VIP精品文档

相关文档