中小学生计算机程序设计竞赛复赛试题小学组.docx
《中小学生计算机程序设计竞赛复赛试题小学组.docx》由会员分享,可在线阅读,更多相关《中小学生计算机程序设计竞赛复赛试题小学组.docx(15页珍藏版)》请在冰豆网上搜索。
中小学生计算机程序设计竞赛复赛试题小学组
中小学生计算机程序设计竞赛
复赛试题(小学组)
题目一览
试题名称
甜蜜的烦恼
分数统计
英文代号
space
curling
count
square
程序名
space.pas/c/cpp
curling.pas/c/cpp
count.pas/c/cpp
square.pas/c/cpp
输入文件名
space.in
curling.in
count.in
square.in
输出文件名
space.out
curling.out
count.out
square.out
内存限制
128MB
128MB
128MB
128MB
时限
1秒
1秒
1秒
1秒
关于竞赛中不同语言使用限制的说明
一•关于使用Pascal语言与编译结果的说明
1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准
2.允许使用数学库(usesmath子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:
{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:
int64或qword。
1.甜蜜的烦恼(space)
题目描述
【问题描述】
最近珍珍学会了使用电脑,她发现可以利用电脑解决很多事情,并且效率会快许多。
比如,在一份名单中找某个人的姓名,在以前,她得依次逐个查找,速度慢又很容易看错。
现在,她使用菜单命令:
“编辑”-“查找”(或按Ctrl+F键),在弹出的查找对话框中,输入要查找的姓名,电脑就会找到要找的姓名或告诉你不存在你要找的姓名了。
真是又快又准,
太爽了!
今天珍珍在查找时,输入“张明”,电脑告诉她不存在,但她不经意间发现“张明”是
有的!
原来,提供原始名单的人,为了格式漂亮在中间输入了一个空格,因此电脑找不到了。
她想这容易解决,继续查找“李达”,没有?
查找“李达”(中间一个空格),还没有?
原来某些姓名中间的空格数是有多个的!
珍珍想删除所有姓名中间的空格,但由于名单很多,一个一个删除太慢了,所以她找到了会编程解决问题的你,请你写一个程序,删除所有名单中间的空格。
输入
【输入】输入文件space.in的第一行只有一个正整数n,表示名单中共有n个人的姓名。
第二行至第n+1行共n行,每行是一个人的姓名(由大小写英文字母以及字母之间的空格组成)。
输出
【输出】输出文件space.out有n+1行,第一行只有一个正整数,表示总共删除的空格数。
第二行至第n+1行共n行,每行表示一个删除空格后的姓名(按照输入姓名的次序)。
样例输入
【样例输入】
3
ZhangMing
LiDa
WuYaFei
样例输出
【样例输出】
5
ZhangMing
LiDa
WuYaFei
提示
【数据限制】100%的数据,KnW10000,每行姓名的字符数不超过100
第2行的第j个数表示第
第3行的第j个数表示第
第4行的第j个数表示第
第5行的第j个数表示第
1局比赛结束时,甲方的第1局比赛结束时,乙方的第2局比赛结束时,甲方的第2局比赛结束时,乙方的第
j个冰壶距离目标点P的距离;j个冰壶距离目标点P的距离;j个冰壶距离目标点P的距离;j个冰壶距离目标点P的距离;
2.冰壶比赛(curling)
【问题描述】
在3月29日举行的女子冰壶世锦赛决赛中,王冰玉、柳荫、岳清爽和周妍组成的中国女子冰壶队以8比6击败了冬奥会和世锦赛双冠王瑞典队,夺得了中国冰壶历史上第一枚世锦赛金牌,创造了历史。
美丽、实力兼具的中国冰壶姑娘们也赢得了超高的赞誉。
在冰壶比赛中,给出一个目标点P,以及一个规定的正整数r。
每一局由甲乙两队轮流投冰壶各8次后,该局比赛结束。
此时,哪一方的冰壶最终离目标点P更近,该方得分,另一方不得分。
得分方每颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。
比赛最多进行10局。
双方之间的某局比赛结束后,落后一方可以弃权。
此时,比赛不再进行下去。
已知每一局结束时,双方的每个冰壶离目标点P的距离,以及正整数r,请你写一个程序判断两队之间每一局比赛的得分,以及总得分。
输入
【输入】输入文件Curling.in的第一行只有一个正整数r。
以下有若干行(不超过20行),除了最后一行外,每一行有8个正整数(互相之间以一个空格分隔)。
第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离;
第2k+1行的第j个数表示第k局比赛结束时,乙方的第j个冰壶距离目标点P的距离;
如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1,表示此时发生弃权情况。
输出
【输出】输出文件Curling.out有若干行,每行有二个整数,中间以一个冒号分隔,表示每一局比赛甲乙双方的比分(甲得分在前)。
最后一行有二个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分(甲得分在
样例输入
【样例输入1】
8
5201819315133
20217125181011
2034121192
1151998141110
1521011914318
1517211924321926-1
【样例输入2】
8
5201819315133
20217125181011
2034121192
1151998141110
1521011914318
1517211924321926
511413152311
147519101269
3149848310
146948215
981288718
168201931105
213192189183
65520617218
173206931717
201081219191820
15184181714516
614814197137
159282031014
8632411410
样例输出
【样例输出1】
0:
1
0:
0
3:
0
3:
1
【样例输出2】
0:
1
0:
0
3:
0
3:
0
0:
2
0:
0
0:
0
3:
0
2:
0
0:
0
11:
3
提示
【样例说明】
在样例1和样例2中:
第1局比赛时,甲方离目标点P的最近距离为3,乙方离目标点P的最近距离为2,乙方得分。
乙比甲方的3更小的值只有1个(值为2壶),因此乙方得1分。
第2局比赛时,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为1,双方均不得分。
第3局比赛时,甲方离目标点P的最近距离为1,乙方离目标点P的最近距离为15,甲方得分。
甲比乙方的15小的值有5个(2、10、1、14、3),但小于等于r=8的值只有3个(2、1、3),因此甲得3分。
样例1只进行了3局,总得分为3:
1,样例2所有10局比赛进行完,总得分为11:
3。
【数据限制】70%的数据,双方均不弃权,比赛进行10局。
100%的数据,每只冰壶距离目标点P的距离不超过100。
3.分数统计(count)
题目描述
【问题描述】
学校为了控制作业量,实施“轻负担,高质量”的有效教学,对所有在校学生的作业量情况进行了调查。
每个学生填写做作业所需要的时间。
最后统计出所有学生做作业时间的平均值。
为了避免个别学生不客观填写的影响,规定学生的填写的数字应该为1至100间的正整数,如果某个学生填写了不在此范围内的整数,统计平均值时应该忽略这个学生。
现在要求完成:
(1)统计出所有学生做作业时间的平均值;
⑵除去做作业时间前10%的学生和后10%的学生后(10%学生数按四舍五入计),统计做作业时间的平均值。
请你写个程序,完成以上任务。
(提示:
Pascal语言中,Round(x)为四舍五入函数,在C语言中可使用int(x+0.5))
输入
【输入】输入文件count.in的第1行有1个正整数n。
表示有n个人。
第2行至第n+1行共n行,每行只有1个整数,表示每个学生填写的做作业时间。
输出
【输出】
输出文件count.out有2行,每行只有1个数(保留2位小数)
第1行只有一个整数,表示所有合法填写学生做作业的平均时间;
第2行只有一个整数,表示除去10%最多时间和10%最少时间的学生后,所有合法填写学生做作业的平均时间;
样例输入
【样例输入】
7
10
60
80
70
90
110
100
样例输出
【样例输出】
68.33
75.00
提示
【样例说明】
所有学生做作业的平均时间为:
(10+60+80+70+90+100)/6=68.33
10%的学生数为:
7*10%=0.7"1(四舍五入至整数)
10%
但可,有多
除最快和最慢的1个学生外,做作业的平均时间为:
(60+80+70+90)/4=75.00
【样例限制】
30%的数据,5100%的数据,54.平方数(square)
题目描述
【问题描述】
珍珍学习乘法时,发现4=2*2,9=3*3,…,而2不可能分解为二个相同整数的乘积,以分解为1*1+1*1。
她想知道对任意的正整数n,把它分解为几个整数与自身相乘之和
少种方案呢?
输入
【输入】输入文件square.in只有一行,该行只有一个正整数n。
输出
【输出】输出文件square.out只有一行,该行只有一个正整数,表示总方案数。
样例输入
【样例输入1】
4
【样例输出1】
2
【样例输入2】
13
【样例输出2】
6
样例输出
【样例说明】
4有2种分解方案,它们是:
4=1*1+1*1+1*1+1*1=2*2
13有6种分解方案,它们是:
13=1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
=1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+2*2
=1*1+1*1+1*1+1*1+1*1+2*2+2*2
=1*1+1*1+1*1+1*1+3*3
=1*1+2*2+2*2+2*2
=2*2+3*3
提示
【数据限制】30%的数据,Kn<10;80%的数据,Kn<300;100%的数据,Kn<800