2017年海淀区信息学竞赛小学组试卷_第1页
2017年海淀区信息学竞赛小学组试卷_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE5PAGE5/52017年海淀区中小学生信息学奥林匹克竞赛2017年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题100分,共700分)答题注意事项:请使用QBASIC(BC7.0版本)或C/C++(DEVC++5.11版本)语言编程环境;以各自题目要求的名称(isbn.c/isbn.cpp)命名保存源文件;输入输出均采用文件读写,将写好的源文件保存入D:\TEST如:D:\TESTisbn.cppnumber.cppid.cppstick.cpp„„„1、ISBN码(100分)(源文件名称:isbn.cpp/isbn.c/isbn.bas)【题目描述】ISBN91位识别码和3x-xxx-xxxxx-”就是分隔符(键盘上的减号,最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数06701,加上次位数字乘以2,„„,以此类mod10,则识别码为大写字母XISBN0-670-82162-44是这样得到的:对067082162这91,2,...,9,再求和,即0×1+6×2+„„+2×9=158,然后取158mod11的结果4作为识别码。你的任务是编写程序判断输入的ISBN码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN码。【输入文件】文件名为:isbn.in仅一行,一个字符串,表示一本书的ISBN码(输入保证符合ISBN码的格式要求。【输出文件】文件名为:isbn.outISBNRigh输出正确的ISBN码(。样例输入】0-670-82162-0样例输出】0-670-82162-42、第N个智慧数(100分)(源文件名称:number.cpp/number.c/number.bas)【题目描述】一个正整数如果能表示成了两个正整数的平方差,则称这个数为“智慧数”,比如16531611,2,3,„„,n。现输入一个正整数n,输出第n输入文件】文件名为:number.in 文件中仅包含一个正整数。【输出文件】文件名为:number.out文件中仅包含一个正整数,表示编号为n的智慧数。【样例输入】3【样例输出】16【数据范围】1<=n<=100。3、第m大的身份证号码(100分)(源文件名称:id.cpp/id.c/id.bas)【题目描述】身份证号是我国公民的唯一识别码,它由18位数字或字母组成(只可能最后一位是字母。181-23-4位为5-67-14位为出生年月日,比1997040119974115-1617位代表性别,男为单数,女为双数;第18和Xn输出第m个人的身份证号。【输入文件】文件名为:id.in文件中第一行包含两个正整数nn个形如上述格式的身份证号码(不需要关心校验码的正确性,不影响本题解答。【输出文件】文件名为:id.out文件中仅包含一行,为题目要求的一个身份证号码。【样例输入】4211010819600406302213021119640203652X420333197902112718210222200012036512样例输出数据范围】1<=n<=100,1<=m<=n。4、锯木棍(100分)(源文件名称:stick.cpp/stick.c/stick.bas)【题目描述】L的木棍,先用红颜色刻度线将它m等分,再用蓝色刻度线将其n等分m>度和根数。【输入文件】文件名为:stick.in文件中仅有一行,包含三个正整数L,m和n,两两之间用一个空格分隔。【输出文件】文件名为:stick.out文件包含两个正整数a和(所有的测试数据中mn一定是L的约数。两数间用一个空格分隔。【样例输入】1264【样例输出】24【数据范围】1<=L<=100000。5、坐标统计(100分)(源文件名称:count.cpp/count.c/count.bas)【题目描述】输入n个点在平面上的坐标(横纵坐标都是整数,对于每个点可以控制所有位于它左下方的点(即横坐标x和纵坐标y都比它小。【输入文件】文件名为:count.in第一行包含一个正整数n,接下来的n行,每行描述一个点的坐标,第i+1行包含两个正整数x和y,表示编号为i的点的横坐标为x,纵坐标为y。【输出文件】文件名为:count.out共有n+1行第1行到第n行,每行包含一个整数,第i行的整数表示编号为i的点的战斗力,第n+1行表示战斗力最高的点的编号。【样例输入】6426648156119814【样例输出】0101336【数据范围】1<=n<=100,1<=x<=1000,1<=y<=1000。6、打印月历(100分)(源文件名称:calen.cpp/calen.c/calen.bas)【题目描述】y,请你按照样例的格式打印出ymy=2015,m=1时,20151月的月历打印效果就应该如下:SMTWTFS12345678910111213141516171819202122232425262728293031S代表星期日,第二个字母M代表星期一,以此类推,第七个字母S母之间有三个空格分隔。接下来的几行是第m月的日期,每一列的数都与本列的第一个字母左对齐,同一行的两个日期之间要有若干个空格分隔。为了简化题目的难度,输入还会给出一个正整数n小于8,表示第y年的1月1日是星期n20151420151月的月历,201511日是星期四。【输入文件】文件名为:calen.in文件中仅有一行,包含三个正整数y,m和n,两数间用一个空格分隔。【输出文件】文件名为:calen.out文件包含符合题目要求的若干行。【样例输入】201514【样例输出】SMTWTFS12345678910111213141516171819202122232425262728293031【数据范围】1900<y<2100,0<m<13,0<n<8。【提示】本题对结果的输出格式有严格要求,题目描述的功能可以使用TAB键,在C/C++中可以使用“\t”来实现。7、分割绳子(100分)(源文件名称:cable.cpp/cable.c/cable.bas)【题目描述】现有N条绳子,它们的长度分别为L1,L2,„„,Ln,如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?【输入文件】文件名为:cable.in共有两行,第一行包含两个正整数N和K,用一个空格分隔;第二行包含N个数,依次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论