《2014年海淀区信息学竞赛小学组试卷.docx》由会员分享,可在线阅读,更多相关《2014年海淀区信息学竞赛小学组试卷.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2014 年海淀区中小学生信息学奥林匹克竞赛 小学组竞赛试题(每题 100 分,共 700 分) 姓名 年级 学校 准考号 成绩 说明:(1)请同学们运行 QBASIC 语言环境(BC7.0 版本)或 C 语言环境; (2) 以各自题目的名称,例如:baoguo.bas/或 baoguo.c/或 baoguo.cpp,将源文件存盘; (3) 建立文件读写,将最后写好的源文件,存入 D:TEST 文件夹中。 如:D:TEST baoguo.bas tuxing.bas zfc.bas szyouxi.bas 一、包裹托运(题目名称:baoguo.bas/ baoguo.c/ baoguo.cpp
2、) (100 分) 【题目描述】 春节快到了,小红和爸爸一起来到邮局,打算给家住外地的爷爷、奶奶家里捎点年货。邮局的阿姨介绍,托运包裹的运费标准是:包裹重量不大于15 公斤时,每公斤 6 元;超过 15 公斤后,其超过部分每公斤 9 元;现已知:包裹的重量为 X 公斤,请同学们和小红一起帮助邮局的阿姨计算一下, 包裹的运费 Y 应为多少元? 【输入文件】 文件名:baoguo.in 文件中只有一行,包含一个数值 X(其中 1X100)表示包裹的重量, 单位:公斤。 【输出文件】 文件名:baoguo.out 文件中只有一行,包含 1 个整数,表示包裹的运费(要求四舍五入保留整数),单位:元。
3、【要求】 输出数据从第一列开始。 【样例输入 1】 baoguo.in 的内容为: 11.6 【样例输出 1】 baoguo.out 的内容为: 70 【样例输入 2】 baoguo.in 的内容为: 18.8 【样例输出 2】 baoguo.out 的内容为: 124 二、字母图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100 分) 【题目描述】 由键盘输入任意的一个由大写字母组成的字符串(不需判断),要求以字符串的长度作为图形的行数,并将这个字符串作为图形的第一行进行打印输出。从第二行开始,图形的特点是:将第一行的最后两个字符移到最前就是第二行,再把
4、第二行的最后两个字符移到最前就是第三行,依次这5样移完。例如:输入字符串“ABCDE”, 按照上述移动的规则,最后输出的图形如下图所示。 【输入文件】 文件名:tuxing.in 文件中只有一个由大写字母组成的字符串,字符串的长度为 L (其中 3L26)。 【输出文件】 文件名:tuxing.out 文件中为输出的图形。 【要求】 图形的最左侧从第一列开始输出。 【样例输入】 tuxing.in 的内容为: ABCDE 【样例输出】 tuxing.out 的内容为: ABCDE DEABC BCDEA EABCD CDEAB 三 、 字 符 串 ( 题 目 名 称 :zfc.bas/zfc.
5、c/zfc.cpp) (100 分 ) 【题目描述】 从键盘输入一个由大、小写字母和数字组成的任意一个字符串(不需判断),其长度大于等于 8,小于等于 30。现要求将字符串中的所有数字字符删除, 其他字符依照原有顺序保持不变,并统计删除的数字的个数。 【输入文件】 文件名:zfc.in 文件中只有一行,包含 1 个由大、小写字母和数字组成的任意一个字符串(其长度 8L30)。 【输出文件】 文件名:zfc.out 文件中共有两行: 第一行:为删除数字字符后的字符串; 第二行:为统计删除的数字的个数。 【要求】 每行的输出数据从第一列输出 【样例输入】 zfc.in 的内容为: ABCD123e
6、fg678 【样例输出】 zfc.out 的内容为: ABCDefg 6 四、数字游戏(题目名称: szyouxi.bas/ szyouxi.c/szyouxi.cpp) (100 分) 【题目描述】 小明和小华两位同学是非常要好的小伙伴。两人经常在一起做作业、玩游戏。周末的一天,两人做完作业后,商量一起玩一个数字游戏。游戏的规则是: “在任意的某一段四位自然数区间内,找出符合以下特点的四位自然数 ABCD: (1) 这个四位自然数被 6 整除; (2) 千位数字与百位数字构成的两位数 AB 是一个质数; (3) 十位数字与个位数字构成的两位数 CD 是一个完全平方数。 没有学过程序设计的小华
7、同学,在(2000,3000)的范围中,找出的符合以上特点的数字只有三个:2316,2916, 2964,显然他找到的数据不够全面,漏掉了一些数字。而学过程序设计的小明同学用计算机编程的方法很快求出了所有的答案。现给出任意自然数 M N 的区间,作为编程小能手的你,能否很快求出所有满足上述条件的数值,并统计个数呢? 【输入文件】 文件名为:szyouxi.in 文件中只有一行,包含两个用空格隔开的任意自然数 M 和 N (其中 1000MN9999)。 【输出文件】 文件名为:szyouxi.out 文件中共有两行: 第一行:为所有满足上述条件的数值,数值之间用 1 个空格隔开; 最后一行:只
8、有一个数,为满足上述条件的数值的个数。 【要求】 每行数据都从第一列开始输出。【样例输入】szyouxi.in 的内容为:20003000(数据之间空 1 格)【样例输出】szyouxi.out 的内容为:230423162364290429162964(数据之间空 1 格)6 五、挑选队员(题目名称: duiyuan.bas / duiyuan.c/ duiyuan.cpp) (100 分) 【题目描述】 学校舞蹈小组举行形体课训练,王老师将队员的队形编排成了 M 行 N 列, 现已知所有队员的身高,数值为整数,单位:厘米。根据舞蹈的要求:要在所有队员中: (1) 挑选出每行身高最高的同学作
9、为小组的组长协助老师进行训练; (2) 还需要知道每行队员们的平均身高; (3) 最后要在所有队员中挑选出身高大于 165 厘米的队员进行领舞,并将身高大于 165 厘米的队员按从高到低的顺序重新排队。请同学们用计算机编程的方法来解决以上问题。 【输入文件】 文件名为:duiyuan.in 文件中共有 M+1 行: 第一行有:用空格隔开的两个整数 M、N,分别代表数据的行和列 (其中 1M6,1N8); 后 M 行:每一行对应的是 N 列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:150 厘米身高180 厘米),数据之间空 1 格; 【输出文件】 文件名为:duiyuan.ou
10、t 文件中共有 2M+1 行: 前 M 行:每行一个数据为在该行中身高最高的那位队员的高度; 后 M 行:每行一个数据为每行队员的平均身高(要求:四舍五入,保留整数); 最后一行:为所有身高大于 165 厘米的队员的身高(按从高到低的顺序), 数据之间空 1 格。 【要求】 每行的数据都从第一列开始输出 【样例输入】 duiyuan.in 的内容为: 3 4 151 161 156 154 171 163 168 157 162 156 153 172 (备注:数据之间空 1 格) 【样例输出】 duiyuan.out 的内容为: 161 171 172 156 165 161 172 171
11、 168(备注:数据之间空 1 格) 六、分蛋糕(题目名称: danao.bas / danao.c/ danao.cpp) (100 分) 【题目描述】 WZJ 过生日了,他邀请了许多人来参加她的生日聚会,生日聚会中最重要的一件事情就是吃蛋糕了。WZJ 共邀请了 n 个人,这些人的心里都想好了自己要多少克蛋糕。如果给他少了,他就会郁闷(没有吃到足够多的蛋糕)。如果给他多了,他也会郁闷(因为他不能浪费,需要把这些蛋糕都吃了, 撑着了会不舒服)。一个人的郁闷指数为他想要的蛋糕克数与他实际得到的蛋糕克数之差的绝对值。WZJ 想指定一个人想要的蛋糕克数作为标准, 给每个人都是这么多蛋糕。聚会是件高兴
12、的事情,同学们郁闷指数之和越小越好,现在他需要知道同学们的郁闷指数最低值是多少,请你编写程序帮他实现。 【输入文件】 文件名为:danao.in 文件中共有两行: 第一行:为正整数 n,表示参加聚会总共有 n 位同学。 第二行:为 n 个正整数(n10000),表示每个人想要得到的蛋糕克数(=1000)。 【输出文件】 文件名为:danao.out 文件中只有一行:为输出所有人的郁闷指数之和的最小值。 【样例输入】 danao.in 的内容为: 5 100 300 200 100 300(备注:输入数据之间空 1 格) 【样例输出】 danao.out 的内容为: 400 七、垒城堡(题目名称
13、: chbao.bas / chbao.c/ chbao.cpp) (100 分) 【题目描述】 XJR 从小就喜欢用积木搭建各种各样的模型,现在虽然马上上六年级了, 学习任务重了很多,但他学习之余,有空还忘不了拿出他那些积木进行一些富有创意的实验。一天,他拿出了一盒积木,碰巧发现这个盒子里装的所有积木都是棱长不等的正方体,他突发奇想,我拿这些积木来垒一个城堡,这个城堡可能达到多大的高度呢?XJR 数学很好,他知道这些积木可以实现多种不同的高度,已知这些积木的棱长,他从数学角度推算出可能能够获得多少种不同的高度,但比较复杂。会编程的你,用程序来实现应该不是一件难事,你能帮助 XJR 用程序来实
14、现吗? 已知积木的个数和每一个积木的棱长,你至少从中选择一个积木垒建城堡, 请你编程求出城堡可以达到多少种不同的高度。 【输入文件】 文件名为:chbao.in 文件中共有两行: 第一行:是一个整数 N(N=100),表示一共有 N 个积木; 第二行:是 N 个正整数,两数之间用一个空格分隔,分别表示 N 个积木的棱长,每个积木的棱长不超过 100。积木按照从大到小的尺寸给出。 【输出文件】 文件名为:chbao.out 文件中只有一个整数,表示城堡可能达到的多少种不同高度。 【样例输入】 chbao.in 的内容为: 3 3 2 1(备注:输入数据之间空 1 格) 【样例输出】 chbao.out 的内容为: 6