2018年上半年程序员下午题答案及解析.pdfVIP

2018年上半年程序员下午题答案及解析.pdf

  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文档。上传文档
查看更多

一、问答题

1、阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏

【说明】

如果一个自然数N恰好等于它所有不同的真因子(即N的约数以及1,但不包括N)

之和S,则称该数为“完美数”。例如6=1+2+3,28=1+2+4+7+14,所以6和28

都是完美数。显然,6是第1个(即最小的)完美数。

下面流程图的功能是求500以内所有的完美数。

【流程图】

循环开始框中要注明:循环变量=初始值,终值[,步长],步长为1时可以缺省

如果某自然数小于其所有真因子之和(例如24<1+2+3+4+6+8+12),则称该

自然数为亏数;如果某自然数大于其所有真因子之和(例如8>1+2+4),则称该

自然数为贏数;如果某自然数等于从1开始的若干个连续自然数之和(例如10=1+

2+3+4)则称该自然数为三角形数。据此定义,自然数496是()。

供选择答案:

A.亏数B.赢数C.完美数,非三角形数D.完美数和三角形数

参考答案:

(1)2

(2)N%K

(3)S+K

(4)S

(5)D

解析:

首先,流程图的功能是求500以内所有的完美数,根据定义,完美数的真因子是从2

开始的连续整数,因此循环变量的初始值应为2,终值为N/2(N为需要判断的数)

。在循环体中,需要判断K是否为N的真因子,即N%K是否为0,如果是真因子则

将K累加到S中。循环结束后,判断N是否等于S,若相等则为完美数。对于自然数

496,其真因子之和确实等于其本身,所以是完美数。同时,496可以表示为从1开

始的若干个连续自然数之和,因此也是三角形数。所以答案是D(完美数和三角形

数)。

2、阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。

【C代码1】

floatadjustSalary(intservice_year,intage,floatsalary){

if(service_year=5){

if(age30)

salary*=1.2;

}

else

salary*=2.0;

returnsalary;

}

【C代码2】

voidfoo(intcoin){

switch(coin){

case1:printf(Cent\n);

case5:printf(Nicke1\n);break;

case10:printf(Dime\n);

case25:printf(Quarter\n);

}

}

【C代码3】

intgetSum(intn)

{

intt,i=0,sum=0;

while(in){

scanf(%d,t);

if(t0)

continue;

sum+=t;

i++;

}

returnsum;

}

问题:3.1【问题1】(3分)

对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。

x1=adjustSalary(1,25,9000.0);

x2=adjustSalary(8,32,7000.0);

x3=adjustSalary(5,41,5000.0);

问题:3.2【问题2】(6分)

(1)写出函数调用为foo(1)的输出结果;

(2)写出函数调用为foo(5)的输出结果;

(3)写出函数调用为foo(10)的输出结果;

(4)写出函数调用为foo(25)的输出结果。

问题:3.3【问题3】(6分)

(1)简要说明【C代码3】中的函数getSum()的功能;

(2)程序员小王将函数getSum改写后得到下面的函数getSum_v2(即用for语句来

描述循环)。请问,getSum_v2的功能是否与【C代码3】的

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档