2014年海淀区中小学生信息学奥林匹克竞赛(上机)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014年海淀区中小学生信息学奥林匹克竞赛
小学组竞赛试题(每题100分,共700分)
姓名____________年级_________学校____________准考号________成绩__________
说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C/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) (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的内容为:
124
二、字母图形(题目名称: 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的内容为: 3 4 151 161 156 154 171 163 168 157 162 156 153 172