当前位置:文档之家› 2015年小学组信息学奥赛试卷(正式)

2015年小学组信息学奥赛试卷(正式)

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

如:D:\TESTtongji.bastuxing.basjisuan.baszfc.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的内容为:1092 78 80 95 100 87 64 56 52 98 (备注:数据之间有1个空格)【样例输出】tongji.out的内容为:You 4(备注:每行数据之间有1个空格)Liang 2Zhong 2Cha 2二、打印图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp) (100分)【题目描述】由键盘输入任意一个自然数N,输出如下图:形如“沙漏”的由大写字母组成的图形。

【输入文件】文件名:tuxing.in文件中只有一个整数N,为图形上半部分的行数(其中2<=N<=26)【输出文件】文件名:tuxing.out文件中为下图所示输出的图形。

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

【样例输入】tuxing.in中有:4【样例输出】tuxing.out中有下图所示的图形。

ABCDCBABCDCBCDCDCDCBCDCBABCDCBA三、数值计算(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的内容为:1601160925493四、字符串(题目名称: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的内容为:ABCDabcdaxy4hello【样例输出】zfc.out的内容为:115ABChelloDabcdaxy五、身高排队(题目名称: 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 4141 161 156 167 (备注:各数据之间有一个空格)170 163 168 157162 145 153 163【样例输出】paidui.out的内容为:170163168167170 168167 163 163 162 161 157 156 153 145 141159 (备注:各数据之间有一个空格)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。

相关主题