小学生信息学奥赛决赛题2008年决赛答案
更新时间:2024-07-02 06:50:01 阅读量: 综合文库 文档下载
2008年长沙市小学生计算机奥林匹克竞赛决赛试题
(时间:150分钟)
一、整数处理(100分)(存盘程序名:T1)
电脑老师让小慧编程做一道题:输入一个正整数A(A≤100000000),如果A的个位数字是5,则统计A能被5整除多少次?否则,统计A当中含有多少个“0”?你能做吗?
例如:输入:125 输入:305160 输出:3 输出:2 程序:
program cs200801; var
a:longint;{根据A的取值范围,采用长整型} n:integer; begin
readln(a); n:=0;
if a mod 10=5 then repeat
a:=a div 5; n:=n+1;
until a mod 5<>0{统计A能被5带除多少次} else begin repeat
if a mod 10=0 then n:=n+1; a:=a div 10;
until a<10;{统计A当中含有多少个0}
end;{采用if??then??else??结构,以符合题目的逻辑关系} writeln(n); readln end.
二、新年同庆(100分)(存盘程序名:T2)
过年了,小慧与邻居邻居的小伙伴共n人相约一起放花炮:他们同时放响了第一个,随后n个人分别以a1、a2、a3、??、an秒的间隔继续放花炮,每人都放了b个。问:总共可听到多少声花炮响?
输入:n(n≤10)
a1 a2 ?? an(每个数≤100,以空格相隔) b(b≤100)
输出:一个整数(听到的花炮响声数)
例如:输入:3 输出:7 1 2 3 4 解题思路:
用数组的下标表示时间,元素的值不为0表示听到花炮响。用同一个数组来标示所有人放花炮的过程,同时响的花炮在数组中会被记录在同一元素中。最后统计数组中有数据的元素个数,就能得出共听到了多少声花炮响。这一方法还可以求出在某一时刻,同时有多少个花炮一起响。 程序:
program CS200802; var
n,b,i,j,k,s:integer;
a:array[1..100] of integer;
c:array[1..10000] of integer;{用于记录花炮响。最多100个,间隔最大100,下标范围到10000可满足条件} begin
readln(n);
for i:=1 to n do read(a[i]);{为保证输入格式,此处用read(),不用readln()} readln(b);
c[1]:=n;{第一个花炮同时放响}
for i:=1 to n do begin{1至n代表放花炮的每个人} k:=1;{第一个花炮响的时间}
for j:=2 to b do begin{2至b代表从第2个到第b个花炮} k:=k+a[i];{依次得到花炮响的时间}
c[k]:=c[k]+1;{将花炮响时间记录到数组c中} end; end; s:=0;
for i:=1 to 10000 do if c[i]<>0 then s:=s+1;{求一共听到多少次花炮响} writeln(s);
{for i:=1 to 10000 do if c[i]<>0 then write(i:3); writeln;
for i:=1 to 10000 do if c[i]<>0 then write(c[i]:3);}{输出所有花炮响的时刻及有多少花炮同时响}
readln end.
三、文档编辑(100分)(存盘程序名:T3)
暑假当中,妈妈让小慧帮忙修改英文资料,英文中还有一些统计数据(统计数据都是正整数,而且其前、后都有空格)。妈妈说:如果文档结尾处有“end”,则应当删除,文中所有的统计数据都要加上一个正整数m。你能编程序完成小慧的任务吗?
输入:m
待修改的文档(字符串) 输出:修改后的文档(字符串) 例如:输入:13
There are 45 students in 32class.end 输出:There are 58 students in 32class. 解题思路:
这个题目由两个问题构成,一个是处理文档结尾处的“end”。一个是处理统计数据。 处理文档结尾处的“end”,需要判断出文档最后三个字母是不是“end”。先用length函数求出文档的长度,再copy函数截取文档最后三个字母和“end”进行比较。
处理统计数据关键在于获取空格的位置。利用pos函数可以取得空格的位置。 在处理整个文档时,先处理文档结尾处的“end”,然后一个一个单词进行处理。处理完一个单词就输出一个单词并从字符串中删除此单词及其后的空格。遇到统计数据则按题目要求处理。
需要注意的是,依题意,文档开头和结尾的数据不作统计数据处理。 程序:
program CS200803; var
m,n:longint; l,i,c,k:integer; s,s1:string; begin
readln(m); readln(s); l:=length(s);
if copy(s,l-2,3)='end' then delete(s,l-2,3);{删除文档结尾的'end'} k:=pos(' ',s);{查找第一个空格的位置} for i:=1 to k do write(s[i]);
delete(s,1,k);{输出并删除文档第一个单词。这一步主要是为了解决第一个单词是数据的情况,依题意,因前面没有空格,不做统计数据处理} repeat
if (char(s[1])>=char('0')) and (char(s[1])<=char('9')) then{单词第一个字母是数字,则可能是统计数据} begin
k:=pos(' ',s);
s1:=copy(s,1,k-1);
val(s1,n,c);{将此单词转换为数值}
if c=0 then{c=0则意味着转换过程中没有出错,单词完全由数字组成} begin
write(n+m,' ');
delete(s,1,k); end else begin
for i:=1 to k do write(s[i]); delete(s,1,k); end;
end else begin;{c<>0,意味着转换过程出错,单词不是统计数据} k:=pos(' ',s);
for i:=1 to k do write(s[i]); delete(s,1,k); end;
until pos(' ',s)=0;{处理到最后一个空格为此,后面的不可能再为统计数据,因后面没有空格了}
write(s);{输出文档的剩余部分} readln end.
四、智力冲浪(100分)(存盘程序名:T4)
小慧准备参加湖南电视台举办的智力冲浪节目。规则如下:
冲浪者首先拥有m个快乐金球。冲浪当中设有n个游戏项目,每个游戏项目都必须在整分钟时开始,限时1分钟,而且都规定了最后完成期限(即:冲浪开始t分钟内必须完成)。如果一个游戏项目没按规定完成,则从冲浪者的快乐金球中扣掉一部分,不同游戏项目扣掉的金球数也不同。游戏项目的顺序自己安排。最终,赢得快乐金球数最多的选手胜出。
小慧非常想夺得冠军,请你计算出小慧最多能赢得多少个快乐金球? 输入:m n(m≤10000,n≤50) n个整数(以空格相隔),分别表示每个游戏项目规定的完成期限(≤n) n个整数(以空格相隔),分别表示每个游戏项目未完成时扣掉的金球数 输出:一个整数(最多能赢得快乐金球的个数) 例如:输入:10000 7
4 2 4 3 1 4 6
20 60 70 40 30 50 10 输出:9950 程序:
program CS200804; var
m,n,i,j,t,time,s:integer;
a,b,c:array[1..50] of integer; flag:boolean; begin
readln(m,n);
for i:=1 to n do read(a[i]); for i:=1 to n do read(b[i]); for i:=1 to n do m:=m-b[i]; for i:=1 to n do
for j:=i+1 to n do begin if a[i]>a[j] then begin
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{按照完成期限由短至长排序} for i:=1 to n do
for j:=i+1 to n do begin
if (a[i]=a[j]) and (b[i]
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{相同完成期限的按从大到小排序} {for i:=1 to n do write(a[i]:3);writeln;
for i:=1 to n do write(b[i]:3);writeln;}{测试用,查看排序结果} for i:=1 to n do
for j:=i to n do if (a[j]=i) and (b[j]>c[i]) then begin c[i]:=b[j];a[j]:=0;b[j]:=0;
end;{将每一完成期限的第一个值,即金球数最多的值填入数组c,数组c的下标对应完成期限}
{for i:=1 to n do write(a[i]:3);writeln;
for i:=1 to n do write(b[i]:3);writeln;
for i:=1 to n do write(c[i]:3);writeln;}{测试用} for i:=1 to n do
for j:=i+1 to n do begin if (b[i]
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{将剩余的数据从大到小排序} for i:=1 to n do
for j:=i to n do if (a[j]>i) and (c[i]=0) then begin c[i]:=b[j];a[j]:=0;b[j]:=0;
end;{将数据按照完成期限填入到数组C的空位中} for i:=1 to n do
for j:=i+1 to n do begin if a[i]>a[j] then begin
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{将剩余的数据按完成期限从短到长排序} for i:=1 to n do
for j:=i to n do if (a[j]>i) and (b[j]>c[i]) then begin c[i]:=b[j];a[j]:=0;b[j]:=0;
end;{用剩余的数据替换完成期限比它短,数值比它小的数} {for i:=1 to n do write(a[i]:3);writeln; for i:=1 to n do write(b[i]:3);writeln;
for i:=1 to n do write(c[i]:3);writeln;}{测试用} for i:=1 to n do m:=m+c[i]; writeln(m); readln;readln end.
for i:=1 to n do write(b[i]:3);writeln;
for i:=1 to n do write(c[i]:3);writeln;}{测试用} for i:=1 to n do
for j:=i+1 to n do begin if (b[i]
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{将剩余的数据从大到小排序} for i:=1 to n do
for j:=i to n do if (a[j]>i) and (c[i]=0) then begin c[i]:=b[j];a[j]:=0;b[j]:=0;
end;{将数据按照完成期限填入到数组C的空位中} for i:=1 to n do
for j:=i+1 to n do begin if a[i]>a[j] then begin
t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t; end;end;{将剩余的数据按完成期限从短到长排序} for i:=1 to n do
for j:=i to n do if (a[j]>i) and (b[j]>c[i]) then begin c[i]:=b[j];a[j]:=0;b[j]:=0;
end;{用剩余的数据替换完成期限比它短,数值比它小的数} {for i:=1 to n do write(a[i]:3);writeln; for i:=1 to n do write(b[i]:3);writeln;
for i:=1 to n do write(c[i]:3);writeln;}{测试用} for i:=1 to n do m:=m+c[i]; writeln(m); readln;readln end.
正在阅读:
小学生信息学奥赛决赛题2008年决赛答案07-02
IT前沿技术讲座总结07-09
《军事高技术》题库(1)模板12-04
判断题附答案03-30
我欠你一份嫁妆11-03
Xu-140307I 2010级音教2班 余泠羲 毕业论文《中外儿童歌曲教学分析》10-05
听证申请书03-31
完整VI项目设计书12-26
平权论05-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 决赛
- 奥赛
- 小学生
- 答案
- 信息
- 2008
- 国家工商管理局测绘合同(示范文本)
- 2014年最新高考模拟材料作文试题八题
- 数字图像处理实验三:图像的频域处理
- (最新版)宕昌县城区中心敬老院可行性研究报告
- 东南大学转专业
- 上市房地产公司获利能力研究
- 公文概述
- 历史趣谈未解之谜 康熙皇帝为何不给孝庄文皇后建陵?
- 国家公务员考试行测定义判断题拿分技巧
- 中国国际商用车展览会组织方案
- 2014-2019年中国内燃机市场前景研究与投资战略分析报告 - 图文
- 最新人教版6年级上册数学全套教案(名校精编)
- 我觉得多媒体带给我们的好处很多
- 五一劳动节文章;五一小记
- 河北省2012年度会计从业资格考试大纲
- 新人教版七年级语文下册21《伟大的悲剧》教案4
- 非诉行政执行案件立案制度
- 岩浆锆石、碎屑锆石中Th、U含量及ThU比特征浅析
- 新人教版初中数学七年级上册1.3.1第1课时有理数的加法法则公开课
- 钢结构吊装方案(铸造车间)1