欢迎来到天天文库
浏览记录
ID:43483606
大小:176.30 KB
页数:5页
时间:2019-10-07
《2017年海淀区信息学竞赛小学组试卷》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2017年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)答题注意事项:(1)请使用QBASIC(BC7.0版本)或C/C++(DEVC++5.11版本)语言编程环境;(2)以各自题目要求的名称(如:isbn.bas/或isbn.c/或isbn.cpp)命名保存源文件;(3)输入输出均采用文件读写,将写好的源文件保存入D:TEST文件夹中按要求提交。如:D:TESTisbn.cppnumber.cppid.cppstick.cpp„„„1、ISBN码(100分)(源文件名称:isbn.cpp/isbn.c/isbn.bas
2、)【题目描述】每一本正式出版的图书都有一个ISBN码与之对应,ISBN码包括9位数字、1位识别码和3个分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。识别码的计算方法如下:首位数字乘以1,加上次位数字乘以2,„„,以此类推,第九位数字乘以9,最
3、后用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,...,9,再求和,即0×1+6×2+„„+2×9=158,然后取158mod11的结果4作为识别码。你的任务是编写程序判断输入的ISBN码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN码。【输入文件】文件名为:isbn.in仅一行,一个字符串,表示一本书的ISBN码(输入保证符合ISBN码的格式要求
4、)。【输出文件】文件名为:isbn.out共一行,假如输入的ISBN码的识别码正确,就输出“Right”,否则,按照规定的格式,输出正确的ISBN码(包括分隔符“-”)。【样例输入】0-670-82162-0【样例输出】0-670-82162-42017年海淀区中小学生信息学奥林匹克竞赛1/52、第N个智慧数(100分)(源文件名称:number.cpp/number.c/number.bas)【题目描述】一个正整数如果能表示成了两个正整数的平方差,则称这个数为“智慧数”,比如16就等于5的平方减去3的平方,所以16就是一个智慧数,从1开始的自然数列中
5、,将“智慧数”从小到大编号为1,2,3,„„,n。现输入一个正整数n,输出第n个“智慧数”。【输入文件】文件名为:number.in文件中仅包含一个正整数n。【输出文件】文件名为:number.out文件中仅包含一个正整数,表示编号为n的智慧数。【样例输入】3【样例输出】16【数据范围】1<=n<=100。3、第m大的身份证号码(100分)(源文件名称:id.cpp/id.c/id.bas)【题目描述】身份证号是我国公民的唯一识别码,它由18位数字或字母组成(只可能最后一位是字母)。18位身份证号码各位的含义如下:第1-2位为省、自治区、直辖市代码;第
6、3-4位为地级市、盟、自治州代码;第5-6位为县、县级市、区代码。第7-14位为出生年月日,比如19970401代表1997年4月1日;第15-16位为顺序号,第17位代表性别,男为单数,女为双数;第18位为校验码,0-9和X。作为尾号的校验码,是把前十七位数字代入统一的公式计算出来的,解答本题你不用关心是如何计算出来的。现在给你n个身份证号码,请你按照出生年月日的字典序(年龄从大到小)输出第m个人的身份证号。【输入文件】文件名为:id.in文件中第一行包含两个正整数n和m,两数间用一个空格分隔,接下来的n行每行为一个形如上述格式的身份证号码(不需要关
7、心校验码的正确性,不影响本题解答)。【输出文件】文件名为:id.out文件中仅包含一行,为题目要求的一个身份证号码。【样例输入】4211010819600406302213021119640203652X420333197902112718210222200012036512【样例输出】13021119640203652X【数据范围】1<=n<=100,1<=m<=n。2017年海淀区中小学生信息学奥林匹克竞赛2/54、锯木棍(100分)(源文件名称:stick.cpp/stick.c/stick.bas)【题目描述】有一根粗细均匀长度为L的木棍,先用
8、红颜色刻度线将它m等分,再用蓝色刻度线将其n等分(m>n),然后按所有刻度线将该木棍锯成小段,
此文档下载收益归作者所有