2007上半年程序员下午试题分析与解答试题一阅读以下说明和流程图,回答问题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,请写出其校验码。参考答案[问题1](1)(11-I)*a[I](或I*a(11-I))(2)9(3)S+(11-I)*a[I]→S(或S+(I+1)*a(10-I)→S)(4)MOD(11-R,11)[问题2]9试题一[分析]制订标准书号的目的是实现图书的国际统一编码,以便于实现计算机化的图书管理信息系统,使出版社内的图书管理、书库中的图书管理以及书店的图书销售管理具有更高的工作效率和管理水平。标准书号采用分段编码,总长度是统一的,而段的长度是不统一的。例如,中国的出版者号规定为2~7位数字。对较大的出版社分配比较短的码,留出较长的书名号为较多的书进行编码。标准书号的最后一位是校验码。设置校验码可以大大减少录入错误造成的管理混乱。校验码一般由计算机程序产生。当操作人员录入前9个数字后,计算机就会自动启动计算校验码的过程,输出正确的校验码。在书店(或书库),不论是建库还是查询检索,在手工输入带校验码的标准书号后,计算机就会自动启动校验过程,判断是否输入错误。计算校验码的过程中,首先要计算S=10*a(1)+9*a(2)+8*a(3)+…+2*a(9),这就要采用循环。在循环前应设置初始值S=0,在循环体内应执行S+(11-I)*a(1)→S或S+(I+1)*a(10-I)→S(其中的乘号“*”不要丢失)。该循环应对循环变量I=1~9进行(步长默认为1),因此,(2)处应填9,(3)处填S+(11-I)*a(I)→S或S+(I+1)*a(10-I)→S。接着再计算该S值除以11的余数R。显然0R10。由于R与校验码之和应能被11整除,因此,校验码应等于MOD(11-R,11)(填11-R者没有考虑R=0的情况)。从而(4)处应填MOD(11-R,11)。在校验码等于10的情况,还应以符号X表示之。对标准书号的校验过程中,首先要将校验码为x的情况转换成数据10,以便于后续计算。为了计算S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10),需要采用循环。在循环前,应设置初始值S=0,对循环变量I从1到10(步长默认为1),执行语句S+(10-I+1)*a(I)→S或S+I*a(11-I)→S,因此,(1
2007上半年程序员下午试题分析与解答 来自淘豆网www.taodocs.com转载请标明出处.