全国中小学生信息学奥林匹克竞赛真题【最新】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国中小学生信息学奥林匹克竞赛真题
小学组竞赛试题(每题100分,共700分)
姓名____________年级_________学校____________准考号________成绩__________
说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C/C++语言环境;
(2)以各自题目要求的名称,例如:baoguo.bas/或baoguo.c/或baoguo.cpp,将源文件存盘;
(3)输入输出均采用文件读写,将最后写好的源文件,存入D:\TEST 文件夹中。

如:D:\TEST
一、包裹托运(题目名称:baoguo.bas/ baoguo.c/ baoguo.cpp) (100分)
【题目描述】春节快到了,小红和爸爸一起来到邮局,打算给家住外地的爷爷、奶奶家里捎点年货。

邮局的阿姨介绍,托运包裹的
运费标准是:包裹重量不大于15公斤时,每公斤6元;超过15公斤后,其超过部分每公斤9元;现已知:包裹的重量为X公斤,请同学们和小红一起帮助邮局的阿姨计算一下,包裹的运费Y应为多少元?
【输入文件】文件名:baoguo.in
文件中只有一行,包含一个数值X(其中1≤X≤100)表示包裹的重量,单位:公斤。

【输出文件】文件名:baoguo.out
文件中只有一行,包含1个整数,表示包裹的运费(要求四舍五入保留整数),单位:元。

【要求】输出数据从第一列开始。

【样例输入1】baoguo.in的内容为:
11.6
【样例输出1】baoguo.out的内容为:
70
【样例输入2】baoguo.in的内容为:
18.8
【样例输出2】baoguo.out的内容为:
二、字母图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100分)
【题目描述】由键盘输入任意的一个由大写字母组成的字符串(不需检验是否为大写字母),要求以字符串的长度L作为图形的行数,并将输入的这个字符串作为图形的第一行进行打印输出。

从第二行开始,图形的特点是:将第一行的最后两个字符整体移到最前就是第二行,再把第二行的最后两个字符整体移到最前就是第三行,依次进行,完成L行字母的输出。

例如:输入字符串“ABCDE”,按照上述移动的规则,最后输出的图形如下列样例输出
图形所示。

【输入文件】文件名:tuxing.in
文件中只有一个由大写字母组成的字符串,字符串的长度为L (其中3≤L≤26)。

【输出文件】文件名:tuxing.out
文件中为输出的图形。

【要求】图形的最左侧从第一列开始输出。

【样例输入】tuxing.in的内容为:
ABCDE
【样例输出】tuxing.out的内容为:
ABCDE
DEABC
BCDEA
EABCD
CDEAB
三、字符串(题目名称:zfc.bas/zfc.c/zfc.cpp) (100分)
【题目描述】从键盘输入一个由大、小写字母和数字组成的任意一个字符串(不需判断),其长度不小于8,不大于30。

现要求将字符串中的所有数字字符删除,其他字符依照原有顺序保持不变,并统计删除的数字的个数。

【输入文件]】文件名:zfc.in
文件中只有一行,包含只由大、小写字母和数字组成的一个字符串(其长度8≤L≤30)。

【输出文件]】文件名:zfc.out
文件中共有两行:
第一行:为删除数字字符后的字符串;
第二行:为统计删除的数字的个数。

【要求】每行的输出数据从第一列输出
【样例输入】zfc.in的内容为:
ABCD123efg678
【样例输出】zfc.out的内容为:
ABCDefg
6
四、数字游戏(题目名称: szyouxi.bas/ szyouxi.c/szyouxi.cpp) (100分)
【题目描述】小明和小华两位同学是非常要好的小伙伴。

两人经常在一起做作业、玩游戏。

周末的一天,两人做完作业后,商量一起玩一个数字游戏。

游戏的规则是:
在任意的一段四位自然数区间内,找出符合以下特点的四位自然数ABCD:
(1) 这个四位自然数被6整除;
(2) 千位数字与百位数字构成的两位数AB是一个质数;
(3) 十位数字与个位数字构成的两位数CD是一个完全平方数。

没有学过程序设计的小华同学,在(2000,3000)的范围中,找出的符合以上特点的数字只有三个:2316,2916, 2964,显然他找到的数据不够全面,漏掉了一些数字。

而学过程序设计的小明同学用计算机编程的方法很快求出了所有符合要求的答案。

现给出任意自然数M ~N 的区间,作为编程小能手的你,能否很快求出所有满足上述条件的数值,并统计出它们的个数呢?
【输入文件】文件名为:szyouxi.in
文件中只有一行,包含用一个空格隔开的两个四位自然数M和N
(其中1000≤M
【输出文件】文件名为:szyouxi.out
文件中共有两行:
第一行:为所有满足上述条件的数值,数值之间用一个空格隔开;最后一行:只有一个数,为满足上述条件的数值的个数。

【要求】每行数据都从第一列开始输出。

【样例输入】szyouxi..in的内容为:
2000 3000
【样例输出】szyouxi..out的内容为:
2304 2316 2364 2904 2916 2964
6
五、挑选队员(题目名称: duiyuan.bas / duiyuan.c/ duiyuan.cpp)
(100分)
【题目描述】学校舞蹈小组举行形体课训练,王老师将队员的队形编排成了M行N列,
现已知所有队员的身高,数值为整数,单位:厘米。

根据舞蹈的要求:要
在所有队员中:
(1) 挑选出每行身高最高的同学作为小组的组长协助老师进行训练;
(2) 求出每行队员们的平均身高;
(3) 最后要在所有队员中挑选出身高大于165厘米的队员进行领舞,并将身高大于165厘米的队员按从高到低的顺序重新排队。

请同学们用计算机编程的方法来解决以上问题。

【输入文件】文件名为:duiyuan.in
文件中共有M+1行:
第一行有:用空格隔开的两个整数M、N,分别代表身高数据的行数和列数
(其中1≤M≤6,1≤N≤8);
后M行:每一行对应的是N列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:150厘米≤身高≤180厘米),数据之间空1格;
【输出文件】文件名为:duiyuan.out
文件中共有2M+1行:
前M行:每行一个数据为在该行中身高最高的那位队员的高度;
后M行:每行一个数据为每行队员的平均身高(要求:四舍五入,保留整数);
最后一行:为所有身高大于165厘米的队员的身高(按从高到低的顺序),
数据之间空1格。

【要求】每行的数据都从第一列开始输出
【样例输入】duiyuan.in的内容为:
34
151 161 156 154
171 163 168 157
162 156 153 172
【样例输出】duiyuan.out的内容为:
172 171 168
六、分蛋糕(题目名称: danao.bas / danao.c/ danao.cpp) (100分)【题目描述】WZJ过生日了,他邀请了许多人来参加她的生日
聚会,生日聚会中最重要的一件事情就是吃蛋糕了。

WZJ共邀请了n 个人,这些人的心里都想好了自己要多少克蛋糕。

如果给他少了,他就会郁闷(没有吃到足够多的蛋糕)。

如果给他多了,他也会郁闷(因为他不能浪费,需要把这些蛋糕都吃了,撑着了会不舒服)。

一个人的郁闷指数为他想要的蛋糕克数与他实际得到的蛋糕克数之差的绝对值。

WZJ想指定一个人想要的蛋糕克数作为标准,给每个人都是这么多蛋糕。

聚会是件高兴的事情,同学们郁闷指数之和越小越好,现在他需要知道同学们的郁闷指数最低值是多少,请你编写程序帮他实现。

【输入文件】文件名为:danao.in
文件中共有两行:
第一行:为正整数n,表示参加聚会总共有n位同学。

第二行:为n个正整数(n<10000),表示每个人想要得到的蛋糕克数
(<=1000)。

【输出文件】文件名为:danao.out
文件中只有一行:为输出所有人的郁闷指数之和的最小值。

【样例输入】danao.in的内容为:
5
100 300 200 100 300(备注:输入数据之间空1格)
【样例输出】danao.out的内容为:
七、垒城堡(题目名称: chbao.bas / chbao.c/ chbao.cpp) (100分)
【题目描述】XJR从小就喜欢用积木搭建各种各样的模型,虽然现在上六年级了,学习任务重了很多,但他学习之余,有空还忘不了拿出他那些积木进行一些富有创意的实验。

一天,他拿出了一盒积木,碰巧发现这个盒子里装的所有积木都是棱长不等的正方体,他突发奇想,我拿这些积木来垒一个城堡,这个城堡可能达到多大的高度呢?XJR数学很好,他知道这些积木可以实现多种不同的高度,已知这些积木的棱长,他从数学角度推算出可能能够获得多少种不同的高度,但比较复杂。

会编程的你,用程序来实现应该不是一件难事,你
能帮助XJR用程序来实现吗?
已知积木的个数和每一个积木的棱长,你至少从中选择一个积木垒建城堡,请你编程求出城堡可以达到多少种不同的高度。

【输入文件】文件名为:chbao.in
文件中共有两行:
第一行:是一个整数N(N<=100),表示一共有N个积木;
第二行:是N个正整数,两数之间用一个空格分隔,分别表示N 个积木的棱长,每个积木的棱长不超过100。

积木按照从大到小的尺寸给出。

【输出文件】文件名为:chbao.out
文件中只有一个整数,表示城堡可能达到的多少种不同高度。

【样例输入】chbao.in的内容为:
3
32 1
【样例输出】chbao.out的内容为: 6。

相关文档
最新文档