2015年海淀区中小学生信息学奥林匹克竞赛
小学组竞赛试题(每题100分,共700分)
姓名________年级_________学校____________准考号________成绩_____
说明:(1)请同学们运行QBASIC语言环境(BC7.0版本)或C/C++语言环境;
(2)以各自题目要求的名称,例如:tongji.bas/或tongji.c/或tongji.cpp,将源文件存盘;(3)输入输出均采用文件读写,将最后写好的源文件,存入D:\TEST文件夹中。
如:D:\TEST
tongji.bas
tuxing.bas
jisuan.bas
zfc.bas
………
一、成绩统计(题目名称:tongji.bas/ tongji.c/ tongji.cpp)(100分)
【题目描述】六年级一班举办数学小竞赛。考试结束后,班主任老师让张红同学用计算机编程的方法,来统计一下班里N名同学在这次数学竞赛中,成绩在以下各类
别的人数。
要求:分数为整数,用变量F表示,以百分制作为记分标准。成绩在(90
≤F≤100)分数之间,用“you”来标识; 成绩在(80≤F≤89)分数之间,用
“liang”来标识; 成绩在(60≤F≤79)分数之间,用“zhong”来标识;成绩在
60分以下,则用“cha”来标识。
【输入文件】文件名:tongji.in
文件中共有两行:
第一行:包含一个整数N,表示学生的数量(其中1≤N≤30);
第二行:是N个用1个空格隔开的学生的分数(分数为整数)。
【输出文件】文件名:tongji.out
文件中共有四行:每行包括两项,第一项是标识符,第二项是统计该类别人
数的数量,两项之间用1个空格隔开。
【要求】按高分到低分的顺序来统计,每一行输出数据都从第一列开始。
【样例输入】tongji.in的内容为:
10
92 78 80 95 100 87 64 56 52 98 (备注:数据之间有1个空格)
【样例输出】tongji.out的内容为:
You 4(备注:每行数据之间有1个空格)
Liang 2
Zhong 2
Cha 2
二、打印图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100分)
【题目描述】由键盘输入任意一个自然数N,输出如下图:形如“沙漏”的由大写字母组成的图形。
字符串长度不足补空格【输入文件】文件名:tuxing.in
文件中只有一个整数N,为图形上半部分的行数(其中2<=N<=26)
【输出文件】文件名:tuxing.out
文件中为下图所示输出的图形。
【要求】图形的最左侧从第一列开始输出。
【样例输入】tuxing.in中有:
4
【样例输出】tuxing.out中有下图所示的图形。
ABCDCBA
BCDCB
CDC
D
CDC
BCDCB
ABCDCBA
三、数值计算(jisuan.bas/ jisuan.c/jisuan.cpp) (100分)
【题目描述】小明同学不仅数学学得超棒,而且计算机语言编程能力也超强。这一天,数学王老师给同学们留了这样一道题:在任意的一段四位自然数区间内,出符
合以下特点的四位自然数ABCD:
(1)这个四位自然数是素数;
(2)它的前两位数AB是完全平方数;
(3)它的后两位数CD也是完全平方数。
现给出任意自然数M ~N的区间,要求:求出所有满足上述条件的数值,
并统计出它们的个数。小明同学很快给出了答案,在座的同学们,你们是如
何计算的呢?
【输入文件】文件名为:jisuan.in
文件中只有一行,包含用1个空格隔开的两个四位自然数M和N
(其中1000≤M<N≤9999)。
【输出文件】文件名为:jisuan.out
文件中共有若干行:
前若干行:每行一个数值为所有满足上述条件的数值;
最后一行:只有一个数值,为满足上述条件的数值的个数。
【要求】每行数据都从第一列开始输出。
【样例输入】jisuan.in的内容为:
1000 3000
【样例输出】jisuan.out的内容为:
1601
1609
2549
3
四、字符串(题目名称:zfc.bas/zfc.c/zfc.cpp)(100分)
【题目描述】从键盘输入任意的一个字符串A$,其长度L不小于6,同时再输入一个整数N(其中:N<L)作为插入点,以及任意的一个字符串B$,其长度为L1(其
中:L1<L),现要求完成下列功能:
(1) 计算字符串A$的长度L;
(2)查字符串A$中,从左到右第一个出现字母a的位置;
(3)在N点处,插入字符串B$后,将得到一个新字符串,请计算并输出最后的字符串。【输入文件]】文件名:zfc.in
文件中共有三行:
第一行:长度为L的字符串A$( L≥6);
第二行:一个整数N,作为字串的插入点(N<L);
第三行:长度为L1的字符串B$(其中:L1<L)。
【输出文件]】文件名:zfc.out
文件中共有三行:
第一行:字符串A$的长度L;
第二行:A$中第一个出现字母a的位置;
第三行:在N点处,插入字符串B$后得到的新字符串。
【要求】每行的输出数据从第一列输出
【样例输入】zfc.in的内容为:
ABCDabcdaxy
4
hello
【样例输出】zfc.out的内容为:
11
5
ABChelloDabcdaxy
五、身高排队(题目名称: paidui.bas / paidui.c/ paidui.cpp)(100分)
【题目描述】实验小学为了强健学生的身体,每天课间都要组织学生在户外学做广播体操。
这一天,五年级三班的所有同学在老师的指引下将队形排成了M行N列。
现已知所有同学的身高,数值为整数,单位:厘米。要求在所有同学中:
(1)挑选出每列身高最高的同学作为此列的小队长为同学们带操;
(2)将所有同学按身高从高到低的顺序进行排队;
(3)求出所有同学们的平均身高(要求:四舍五入保留整数);
(4)统计出不小于平均身高的学生人数。
请同学们用计算机编程的方法来解决以上问题。
【输入文件】文件名为:paidui.in
文件中共有M+1行:
第一行有:用1个空格隔开的两个整数M、N,分别代表学生的行数和列数(其中1≤M≤10,
1≤N≤10);
后M行有:每一行对应的是N列数据,表示所有学生的身高尺寸,数值为整数,单位:厘
米(其中:140厘米≤身高≤170厘米,不需判断此条件),数
据之间空1格。
【输出文件】文件名为:paidui.out
文件中共有M+3行:
前M行:每行一个数据为各列中身高最高的同学的高度
(要求:各列按从左到右的顺序);
第M+1行:为所有同学按身高从高到低的顺序排队的高度
(要求数据之间有1个空格);
第M+2行:只有一个数据为所有同学的平均身高
(要求:四舍五入,保留整数);
第M+3行:只有一个数据,为不小于平均身高的学生人数。
【样例输入】paidui.in的内容为:
3 4
141 161 156 167 (备注:各数据之间有一个空格)
170 163 168 157
162 145 153 163
【样例输出】paidui.out的内容为:
170
163
168
167
170 168167 163 163 162 161 157 156 153 145 141
159 (备注:各数据之间有一个空格)
7
六、阶乘(题目名称: jiecheng.bas / jiecheng.c/ jiecheng.cpp)(100分)
【题目描述】n的阶乘定义为n!=1*2*3*……*n,如3!=6 ,5!=120,特殊的0!=1. n!通常最后会有很多0,如5!=120,最后有一个0,现在给定你一个正整数n,请你
编程求n!去除末尾的0后(注意是尾部所有的0,意味着从右往左看第一个
非零数字右边所有的零都去掉),最后的k位是多少。
【输入文件】文件名为:jiecheng.in
文件中只有一行:包含两个正整数n和k,两数间用一个空格分隔。
【输出文件】文件名为:jiecheng.out
文件中仅一行:包含一个k位数.如果n!去掉尾部的0后不止k位,则输出最后k位,如果不足k位,则高位补零,补足k位后输出。
【样例输入】jiecheng.in的内容为:
7 2(两数之间有一个空格)
【样例输出】jiecheng.out的内容为:
04
【样例说明】:7!为5040,去除末尾的0后变为504,最后两位为04,故输出为04。
【数据范围】:40%满足1<=n<=14,1<=k<=3;
80%满足1<=n<=1000,1<=k<=5;
100%满足1<=n<=1400000,1<=k<=10。
七、寻指定的特殊素数(题目名称: sushu.bas /sushu.c/ sushu.cpp)(100分)
【题目描述】有一种特殊素数,它本身是一个素数,从右边开始逐位去掉,剩下的数也总是素数。例如7331,是一个素数,去掉尾部的1,剩下数字733,也是一个素
数;再去掉尾部的3,剩下73,还是一个素数,继续去掉尾部的3,剩下7,
仍然是一个素数,我们就把7331 叫做长度为4 的特殊素数。如果长度为n
的特殊素数有若干个,我们将它们从小到大排列,最小的我们称它的位置为
1,次小的位置为2,第三小的位置为3,以此类推,编写程序寻长度为n,
指定位置为m的特殊素数,如果n位特殊素数共有k个,但m>k,我们就说
指定位置m上没有特殊素数,则输出“Error!”(不包括引号)。注:数字1
不被看作一个素数。
【输入文件】文件名为:sushu.in
文件中只有一行:包含两个正整数n和m,两数间用一个空格分隔.
【输出文件】文件名为:sushu.out
文件中仅一行:如果指定长度和位置的素数存在就输出这个素数,否则输出“Error!”(不包括引号)。
【样例输入】sushu.in的内容为:
4 6(两数之间有一个空格)
【样例输出】sushu.out的内容为:
3119
【样例说明】:长度为4的特殊素数从小到大依次为2333 2339 2393 2399 2939 3119 3137……,可以看出位置为6的素数为3119。
【数据范围】:对20%的数据1<=n<=2,1<=m<=10;
对60%的数据1<=n<=4,1<=m<=100;
对100%的数据1<=n<=8,1<=m<=100。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论