- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2007年上半年程序员下午试卷
1.试题一(共15分)
阅读以下说明和流程图,回答问题1和问题2,将解答填入答题纸的对应栏内。
[说明]
为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和10个数字组成,其格式为:ISBN组号-出版者号-书名号-校验码。其中,校验码是根据前面9个数字计算得到的,用于计算机自动校验。假设标准书号的10个数字依次是a(1),a(2),…,a(10),则校验码a(10)的设置应使S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10)能被11整除。如果校验码a(10)应设置成10,则规定以“X”表示之。例如,信息处理技术员考试大纲的标准书号为:ISBN7-302-11191-X。第1段上的数字“7”是国际ISBN中心分配给中国ISBN中心管理的组号。第2段上的“302”表示清华大学出版社。标准书号的校验过程如图1-1所示,计算校验码的过程如图1-2所示,其中,Mod(S,11)表示S除以11得到的余数。
[流程图]
[问题1]请填补流程图中的空缺(1)~(4)。
[问题2]设“程序员考试大纲”标准书号前9个数字为7-302-08493,请写出其校验码。[15分]
参考答案:
【问题1】
(1)(11-I)*a[I]
(2)9
(3)S+(11-I)*a[I]-S
(4)(11-R)%11
【问题2】9
2.试题二(共15分)
阅读以下说明和C语言函数,将解答填入答题纸的对应栏内。
[说明]
下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入,则输出的整数为“4532”。下面给出的C程序代码中有五个错误,请指出所有的错误。
[C程序代码]
[15分]
参考答案:
错误1:变量k没有声明
错误2:变量num没有初始化,或者num应初始化为0
错误3:第10行scanf函数参数错
错误4:第13行循环条件错
错误5:第14行if语句条件错,或者将=改为==
3.试题三(共15分)
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
函数count_months(DATEstart,DATEend)的功能是:计算两个给定日期之间所包含的完整月份数。
该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。
规定两个相邻年份的同月同日之间的间隔为1年。例如,2007.5.30~2008.5.30的间隔为1年。若相邻两年中前一年是闰年,并且日期是2月29日,则到下一年的2月28日为1年,即2008.2.29~2009.2.28的间隔为1年。
规定两个相邻月份的相同日之间的间隔为1个月,但需要特别考虑月末的特殊情况。例如,2007.1.29~2007.2.28的间隔为1个月,同理,2007.1.30~2007.2.28、2007.1.~2007.2.28的间隔都是1个月。
计算起止日期间隔不足一年的完整月份数时,分两种情况:
1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为2008.3.31~2008.9.20,通过月号算出月份数为6。修正时,通过调用函数makevalid将2008.9.31改为2008.9.30,与终止日期2008.9.20比较后,将月份数修正为5。
2)起止日期跨年度。计算方法如下例所示:对于起止日期2008.7.25~2009.3.31,先计算2008.7.25~2008.12.25的月份数为5,再算出2008.12.25~2009.3.25的月份数为3,因此2008.7.25~2009.3.31之间的完整月份数为8。
日期数据类型定义如下:
typedefstruct{
intyear;intmonth;intday;/*日期的年号(4位)、月和日号*/
}DATE;
程序中使用的函数cmp_date()、isLeapYear()和makevalid()说明如下:
[C语言函数]
intcount_months(DATEstart,DATEend)
{
intyears=0,months=0;
DATEr;
if(cm
您可能关注的文档
最近下载
- 八年级生物(上)第六章 《人体生命活动的调节》单元检测卷含答案解析.docx
- 一种水生萤火虫室内规模化饲养装置.pdf VIP
- D301-1~3 室内管线安装(2004年合订本).docx VIP
- 2025至2030中国电子树脂行业产业运行态势及投资规划深度研究报告.docx
- 三一中型挖掘机SY335BH SIC_产品手册用户使用说明书技术参数图解图示电子版.pdf VIP
- 全科教学模式探讨及实践(安徽医科大学第一附属医院 全科医学科 全科医学教研室 唐海沁).pdf VIP
- 最全(一)公安局辅警招聘考试题库.doc VIP
- 直接引语和间接引语课件详细.ppt VIP
- 西式面点师(初级)课件 项目2 面包制作.pptx
- 发酵设备课程设计——1000m³内循环气升式生物酒精发酵罐设计.doc VIP
文档评论(0)