《2015年海淀区信息学竞赛小学组试卷.docx》由会员分享,可在线阅读,更多相关《2015年海淀区信息学竞赛小学组试卷.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2015 年海淀区中小学生信息学奥林匹克竞赛小学组竞赛试题(每题 100 分,共 700 分)姓名 年级 学校 准考号 成绩 说明:(1)请同学们运行 QBASIC 语言环境(BC7.0 版本)或 C/C+语言环境;(2) 以各自题目要求的名称,例如:tongji.bas/或 tongji.c/或 tongji.cpp,将源文件存盘;(3) 输入输出均采用文件读写,将最后写好的源文件,存入D:TEST 文件夹中。如:D:TESTtongji.bas tuxing.bas jisuan.bas zfc.bas一、成绩统计(题目名称:tongji.bas/ tongji.c/ tongji.cpp
2、)(100 分)【题目描述】 六年级一班举办数学小竞赛。考试结束后,班主任老师让张红同学用计算机编程的方法,来统计一下班里 N 名同学在这次数学竞赛中,成绩在以下各类别的人数。要求:分数为整数,用变量 F 表示,以百分制作为记分标准。成绩在(90F100)分数之间,用“you”来标识; 成绩在(80F89)分数之间,用“liang”来标识; 成绩在(60F79)分数之间,用“zhong” 来标识; 成绩在 60 分以下,则用“cha” 来标识。【输入文件】文件名:tongji.in文件中共有两行:第一行:包含一个整数 N,表示学生的数量(其中 1N30);第二行:是N 个用 1 个空格隔开的学
3、生的分数(分数为整数)。【输出文件】文件名:tongji.out文件中共有四行:每行包括两项,第一项是标识符,第二项是统计该类别人数的数量,两项之间用 1 个空格隔开。【要求】按高分到低分的顺序来统计,每一行输出数据都从第一列开始。【样例输入】tongji.in 的内容为:10927880951008764565298(备注:数据之间有 1 个空格)【样例输出】tongji.out 的内容为:You4(备注:每行数据之间有 1 个空格)Liang2Zhong2Cha2二、打印图形(题目名称: tuxing.bas/tuxing.c/tuxing.cpp)(100 分)【题目描述】由键盘输入任意
4、一个自然数 N,输出如下图:形如“沙漏”的由大写字母组成的图形。【输入文件】文件名:tuxing.in文件中只有一个整数N,为图形上半部分的行数(其中 2=N=26)【输出文件】文件名:tuxing.out文件中为下图所示输出的图形。【要求】图形的最左侧从第一列开始输出。【样例输入】tuxing.in 中有:4【样例输出】tuxing.out 中有下图所示的图形 。ABCDCBA BCDCB CDCD CDC BCDCBABCDCBA三、数值计算(jisuan.bas/ jisuan.c/jisuan.cpp)(100 分)【题目描述】 小明同学不仅数学学得超棒,而且计算机语言编程能力也超强。
5、这一天,数学王老师给同学们留了这样一道题:在任意的一段四位自然数区间内,找出符合以下特点的四位自然数 ABCD:(1) 这个四位自然数是素数;(2) 它的前两位数 AB 是完全平方数;(3) 它的后两位数 CD 也是完全平方数。现给出任意自然数 M N 的区间,要求:求出所有满足上述条件的数值, 并统计出它们的个数。小明同学很快给出了答案,在座的同学们,你们是如何计算的呢?【输入文件】文件名为:jisuan.in文件中只有一行,包含用 1 个空格隔开的两个四位自然数 M 和 N(其中 1000MN9999)。【输出文件】文件名为:jisuan.out文件中共有若干行:前若干行:每行一个数值为所
6、有满足上述条件的数值;最后一行:只有一个数值,为满足上述条件的数值的个数。【要求】每行数据都从第一列开始输出。【样例输入】jisuan.in 的内容为:10003000【样例输出】jisuan.out 的内容为:1601160925493四、字符串(题目名称:zfc.bas/zfc.c/zfc.cpp)(100 分)【题目描述】 从键盘输入任意的一个字符串 A$,其长度 L 不小于 6,同时再输入一个整数N(其中:NL)作为插入点,以及任意的一个字符串 B$,其长度为 L1(其中:L1L),现要求完成下列功能:(1) 计算字符串 A$的长度 L;(2) 查找字符串 A$中,从左到右第一个出现字
7、母a 的位置;(3) 在 N 点处,插入字符串 B$后,将得到一个新字符串,请计算并输出最后的字符串。【输入文件】 文件名:zfc.in文件中共有三行:第一行:长度为 L 的字符串 A$( L6);第二行:一个整数 N,作为字串的插入点(NL);第三行:长度为 L1 的字符串 B$(其中:L1L)。【输出文件】 文件名:zfc.out文件中共有三行:第一行:字符串 A$的长度 L;第二行:A$中第一个出现字母 a 的位置;第三行:在N 点处,插入字符串 B$后得到的新字符串。【要求】每行的输出数据从第一列输出【样例输入】zfc.in 的内容为:ABCDabcdaxy 4hello【样例输出】z
8、fc.out 的内容为: 115ABChelloDabcdaxy五、身高排队(题目名称: paidui.bas / paidui.c/ paidui.cpp)(100 分)【题目描述】 实验小学为了强健学生的身体,每天课间都要组织学生在户外学做广播体操。这一天,五年级三班的所有同学在老师的指引下将队形排成了 M 行 N 列。现已知所有同学的身高,数值为整数,单位:厘米。要求在所有同学中:(1) 挑选出每列身高最高的同学作为此列的小队长为同学们带操;(2) 将所有同学按身高从高到低的顺序进行排队;(3) 求出所有同学们的平均身高(要求:四舍五入保留整数);(4) 统计出不小于平均身高的学生人数。
9、请同学们用计算机编程的方法来解决以上问题。【输入文件】文件名为:paidui.in文件中共有 M+1 行:第一行有:用 1 个空格隔开的两个整数 M、N,分别代表学生的行数和列数(其中 1M10,1N10);后 M 行有:每一行对应的是 N 列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:140 厘米身高170 厘米,不需判断此条件),数据之间空 1 格。【输出文件】文件名为:paidui.out文件中共有 M+3 行:前 M 行:每行一个数据为各列中身高最高的同学的高度(要求:各列按从左到右的顺序);第 M+1 行:为所有同学按身高从高到低的顺序排队的高度(要求数据之间有 1
10、个空格);第 M+2 行:只有一个数据为所有同学的平均身高(要求:四舍五入,保留整数);第 M+3 行:只有一个数据,为不小于平均身高的学生人数。【样例输入】paidui.in 的内容为:3 4141 161 156 167(备注:各数据之间有一个空格)170 163 168 157162 145 153 163【样例输出】paidui.out 的内容为:170163168167170168167163163162161157156153145141159(备注:各数据之间有一个空格) 7六、阶乘(题目名称: jiecheng.bas / jiecheng.c/ jiecheng.cpp)(1
11、00 分)【题目描述】 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文件中仅一行:包含一个位数如果 n!去掉尾部的 0 后不止 k 位,则输出最后 k 位,如果不足 k 位,则高位
12、补零,补足 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=kk,我们就说指定位置 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。