- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
试卷第 PAGE 8 页共 NUMPAGES 8 页
资格程序员应用技术考试卷)
姓名:_____________ 年级:____________ 学号:______________
题型
选择题
填空题
解答题
判断题
计算题
附加题
总分
得分
评卷人
得分
2007年上半年程序员下午试卷 backplay第 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”表示之。例如,信息处理技术员考试大纲的标准书号为:ISBN 7-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,请写出其校验码。第 2 题 试题二(共15 分) 阅读以下说明和C 语言函数,将解答填入答题纸的对应栏内。[说明] 下面待修改的 C 程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入,则输出的整数为”4532”。下面给出的 C 程序代码中有五个错误,请指出所有的错误。[C 程序代码]第 3 题 试题三(共15 分) 阅读以下说明和 C 语言函数,将应填入(n)处的字句写在答题纸的对应栏内。[说明] 函数 count_ months(DATE start, DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。 该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。 规定两个相邻年份的同月同日之间的间隔为 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。 日期数据类型定义如下: typedef struct { int year;int month;int day; /*日期的年号(4 位)、月和日号*/ }DATE; 程序中使用的函数 cmp_date( )、isLeapYear( )和 makevalid( )说明如下: [C语言函数]int count_months(DATE start, DATE end){ int years = 0, months = 0; DATE r; if (cmp_date(start,end) < 0){ r = start; start = end; end = r; } years = end.year
您可能关注的文档
- 下半年网络规划设计师上午试卷(计算机网络规划设计师综合知识考试卷)_0.doc
- 下半年网络规划设计师上午试卷(计算机网络规划设计师综合知识考试卷)_1.doc
- 下半年网络规划设计师上午试卷(计算机网络规划设计师综合知识考试卷)_2.doc
- 下半年网络规划设计师下午试卷I(计算机网络规划设计师案例分析考试卷).doc
- 下半年网络规划设计师下午试卷II(计算机网络规划设计师论文考试卷).doc
- 下半年系统分析师上午试卷(计算机系统分析师综合知识考试卷).doc
- 下半年系统分析师上午试卷(计算机系统分析师综合知识考试卷)_1.doc
- 下半年系统分析师上午试题(计算机系统分析师综合知识考试卷).doc
- 下半年系统分析师上午试题(计算机系统分析师综合知识考试卷)_0.doc
- 下半年系统分析师下午试卷I(计算机系统分析师案例分析考试卷).doc
原创力文档


文档评论(0)