ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:42.42KB ,
资源ID:3507100      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3507100.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(长沙市小学生计算机奥林匹克竞赛决赛题答案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

长沙市小学生计算机奥林匹克竞赛决赛题答案.docx

1、长沙市小学生计算机奥林匹克竞赛决赛题答案年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、(40分)键入一个字符串(串长不超过20),输出相应字符组成的等边三角形。如:输入:“CHINA”输出:程序:program CS200101;var s:string; n,i,j:integer;begin write(Input a string:); readln(s); n:=length(s); for i:=1 to n do begin write(:40-i); for j:=1 to i do write(sj, ); writeln end; readlnend.二、(50分

2、)一光滑墙壁高X尺,有一个小虫从墙底部向上爬,每分钟爬Y尺。但每爬一分钟后都要休息一分钟,在休息期间又下滑一尺。编程:输入X和Y,计算该小虫最少几分钟可爬到顶端。如:输入:X,Y4,2输出:5程序:program CS200102;var x,y,s,n:integer;begin write(X,Y=); readln(x,y); if y1 then begin s:=0;n:=0; repeat s:=s+y;n:=n+1; if sx then begin s:=s-1;n:=n+1; end; until s=x; writeln(n); end else writeln(Never

3、); readlnend.三、(50分)科学家在热带森林中发现了一种特殊的小动物,取名为“吱吱”。“吱吱”的生长繁殖过程很有规律,每对小“吱吱”经过X个月就长成一对大“吱吱”,每对大“吱吱”每个月都产下Y对小“吱吱”。假设开始时有一对小“吱吱”,并且每对“吱吱”都不死,问:过Z个月后,共有多少对“吱吱”?(X1,Y1,1Z24)(注:若当前是1月,则“过”2个月,是表示到3月的时候)输入:X,Y,Z的值 输出:“吱吱”的总对数如:输入:X,Y,Z2,2,4输出:11程序:program CS200103;var x,y,z,s,s1,n:longint;s1为大“吱吱”的个数 s2:array

4、1.24 of longint;s2为小“吱吱”的个数,s21代表第一天小“吱吱”的个数,依次类推begin s:=0;s1:=0;s21:=1; write(X,Y,Z=); readln(x,y,z); for n:=x to z+1 do begin s2n:=s1*y;计算当天出生的小“吱吱” s1:=s1+s2n-x+1;s2n-x+1:=0;计算当天长大的“吱吱”,s2n-x+1为X个月前出生的小“吱吱”个数 end; s:=s+s1;将大“吱吱”数计入总数 for n:=1 to z+1 do s:=s+s2n;将小“吱吱”数计入总数 writeln(s); readlnend.

5、四、(60分)如下图所示,键入A,B,C,D,E的值,然后从A出发,顺次经过每个数字分岔路口,选择、/四种运算符之一进行运算,达到目的地E时,运算结果恰好等于E,请你将所有符合上述条件的道路全部找出来。输入:A、B、C、D和E的值(其中A、B、C、D都是19的数字,E是正整数)输出:从A能到达E的所有道路代表的运算式(注意:前两步运算要加括号)最后打印出道路的总数。如:输入:A,B,C,D,E1,2,3,4,10输出:(12)3)410 (12)3)410 TOTAL2程序:program CS200104;var A,B,C,D,E,sum,f1,f2,f3,total:integer;fu

6、nction s(n1,n2,f:integer):integer; begin case f of 1:s:=n1+n2; 2:s:=n1-n2; 3:s:=n1*n2; 4:if (n20) and (trunc(n1/n2)=n1 div n2) then s:=n1 div n2 else s:=-1000; end; end;procedure wf(x:integer); begin case x of 1:write(+); 2:write(-); 3:write(*); 4:write(/); end; end;begin total:=0; write(A,B,C,D,E=)

7、; readln(a,b,c,d,e); for f1:=1 to 4 do for f2:=1 to 4 do for f3:=1 to 4 do if e=s(s(s(a,b,f1),c,f2),d,f3) then begin total:=total+1; write(,(,a);wf(f1); write(b,);wf(f2); write(c,);wf(f3); writeln(d,=,e) end; writeln(TOTAL=,total); readln;end.年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、填信息(20分)小明对信息学很感兴趣,他报名参加今年的小

8、学生电脑奥赛,报名时老师要求他填写自己的相关信息。现在,请你将自己的相关信息打印出来。显示格式要求如下:说明:X1为你的决赛证编号 X2为你的姓名(用拼音)X3为你的性别(男生用boy,女生用girl)X4为你所在的学校名称(用拼音)My number is X1My name is X2My sex is X3My school is X4程序:program CS200201;beginwriteln(My number is 200201);writeln(My name is XiaoMing);writeln(My sex is boy);writeln(My school is T

9、ongPuJie);end.二、找字符(60分)有一天,小明编了一个程序,能很快找出一个字符串中出现次数最多的字符,你能做到吗?输入:一个字符串(长度不超过50)输出:按字符在字符串中出现的先后顺序,显示出现次数最多的字符样例输入:ACABBCCDDB输出:CB程序:program CS200202;var a,b:string; c:char; d:array1.50 of integer;记录每一字符出现的次数,同时数组的序号也就代表了字符出现的先后次序 i,j,max:integer;beginreadln(a);b:=a;将字符串a赋值给b,起到保护输入的字符串a的作用。这一操作不是必

10、须的,也可以直接对字符串a进行操作。但因后面的程序会造成对所操作的字符串内容的破坏,养成对输入内容进行保护的习惯有益的。for i:=1 to length(a) do begin c:=bi; di:=0; if c. Then for j:=i to length(a) do begin if c=bj then begin di:=di+1;bj:=.;每找到一个相同的字符就把此字符赋值为.,这样就不会重复寻找相同的字符,在d数组中每个字符出现次数的记录将是唯一的。 end; end;end;max:=d1;for i:=2 to length(a) do if dimax then m

11、ax:=di;寻找字符出现的最大次数for i:=1 to length(a) do if di=max then write(ai);按次序输出出现资料最多的字符writeln;readln;end.三、拼三角(60分)有一次,老师给小明N根小木棒,要他从中选出K根,使这K根当中的任意三根都能拼成一个三角形。老师告诉他,构成一个三角形的条件是:任意两边之和大于第三边,任意两边之差小于第三边。小明思考后,发现将这些小木棒按长短顺序排列后,很容易解决问题。请你用表达式RANDOM(900)随机产生N个正整数(表示小木棒的长度),帮小明求出K的最大值。输入:N(3N500)输出:K的最大值样例输入

12、:6 排序后的6个随机数为:19,26,161,220,348,529输出:3程序:program CS200203;基本思路:如果三角形中二条较小边的和大于最大边,则此三条边可以构成三角形。对于有序排列的数,只要确定了能构成三角形的最小数和最大数,中间的每一个数都符合条件var n,k,i,j,t,l:integer; a,b:array1.500 of integer; ok:boolean;begin readln(n); for i:=1 to n do begin ai:=random(900)+1; end;生成随机数并赋值给数组a for i:=1 to n do write(a

13、i:5);writeln;显示生成的随机数,调试用 for i:=1 to n-1 do for j:=i+1 to n do if aiaj then begin t:=ai;ai:=aj;aj:=t; end;对生成的随机数从小到大进行排序 for i:=1 to n do write(ai:5);writeln;显示排序结果,调试用 for i:=1 to n-2 do begin ok:=false; l:=n; repeat if ai+ai+1al then ok:=true else l:=l-1; until ok or (l=i+1); 对于每根小棒寻找能够构成三角形的最长小

14、棒在数组a中的位置l if ok then bi:=l-i+1; 得到能与当前小棒组成三角形的小棒数量 end; for i:=1 to n do write(bi:5);writeln; k:=b1; for j:=2 to n do if bjk then k:=bj; writeln(K=,k); readln;end.四、数的统计(60分)一个数“含有0”是指这个数至少有某一位数字为0。小明对那些“含有0”的自然数很感兴趣,想挑出来进行研究。那么,1N当中“含有0”的自然数有多少个?小明想在1秒钟内得到答案,你能帮他做到吗?输入:N(1N100000000)样例输入:105输出:15程

15、序:program CS200204;var n,i,l:longint; s:string;begin l:=0; readln(n); for i:=1 to n do begin str(i,s); if pos(0,s)0 then l:=l+1; end; writeln(l);end.年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、求和(30分)由键盘输入正整数N(N100),求1到N之间所有的5的倍数之和S。例:输入:N10输出:S15(因为110之间只有5和10是5的倍数)程序:program CS200204;var n,i,l:longint; s:string;

16、begin l:=0; readln(n); for i:=1 to n do begin str(i,s); if pos(0,s)0 then l:=l+1; end; writeln(l);end.二、文本图形(50)由键盘输入正整数N(N21)和一个字符串A(A由N个任意的大写字母组成),要求输出一个左右对称的N行的文本图形。例:输入:N4AABCD输出:程序:program CS200402;var n,i,j,k:integer; a:string;begin write(N=);readln(n); write(A=);readln(a); for i:=1 to n do be

17、gin write(:41-i); for j:=1 to i do write(aj); for k:=i-1 downto 1 do write(ak); writeln; end; readln;end.三、找数(60分)由键盘输入正整数N(N500)和K(K9),请找一个正整数M,使NM的值仅由0K组成,而且0K的每个数字至少出现一次。编程序在130000范围内找出符合条件的最小的M值,如果找不到,则输出“No find!”。例:输入:N,K65,3输出:M48(因为65483120)输入:N,K125,8输出:Nofind!程序:program CS200403;var n,k,m,

18、i,j,s:longint; t:boolean; a,b:string; label 1;begin write(N,K=);readln(n,k); for m:=1 to 30000 do begin s:=n*m; t:=true; str(s,a);将s转换为字符串a for i:=0 to k do begin str(i,b); if pos(b,a)=0 then t:=false; end;如果0k之间有一个数不包含在a当中,则令逻辑指针为假 for j:=k+1 to 9 do begin str(j,b); if pos(b,a)0 then t:=false; end;

19、如果k9之间有一个数包含在a当中,则令逻辑指针为假 if t=true then goto 1;找到符合条件的m值,跳转输出部分 end;1: if t=true then writeln(M=,m) else writeln(No find!); readln;end.四、求倍数及“0”的个数(60分)由键盘输入正整数N(N50),已知数列A1,A2,A3,An分别为2004,20042004,200420042004,200420042004。问:A1A2A3An的精确值S有多少位数?S当中有多少个“0”?(设:S的位数为K,S中“0”的个数为Z)例:输入:N2输出:K8Z4(因为S200

20、44008)程序:program CS200404;var a,s:array1.200 of integer; n,k,z,i,j,m,l:integer;begin write(N=);readln(n); k:=n*4;得到S的位数。 for i:=1 to n do begin for j:=1 to 4*i do begin l:=j mod 4; case l of 0:aj:=2; 1:aj:=4; 2,3:aj:=0; end;生成An。为方便运算,生成的An为400240024002的形式,第一位为个数 end; for m:=1 to k do begin sm:=sm+a

21、m; if sm=10 then begin sm:=sm mod 10;am+1:=am+1+1; end;逢10进1 end;将An累加进s end; z:=0; for i:=1 to 4*n do if si=0 then z:=z+1;统计0的个数 writeln(K=,k,Z=:5,z); readln;end.年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、拆分整数:(分)输入一个正整数N,如果N是偶数,则拆分N的各个数字相加求和;如果N是奇数,则拆分N的各个数字相乘求积。输入输出样例:输入:N输出:H输入:N输出:J程序:program CS200501;var n,

22、h,j,l,i,t:integer; a:array1.10 of integer; s:string;begin write(N=);readln(n); t:=n;i:=1; if t10 then repeat ai:=t mod 10; t:=t div 10; i:=i+1; until t10; ai:=t;拆分N的各个数字,存放在数组a中 str(n,s);将数n转换为字符串s l:=length(s);取s长度,即得到数n的位数 h:=0;j:=1; if n mod 2=0 then begin for i:=1 to l do h:=h+ai; writeln(H=,h);

23、 end else begin for i:=1 to l do j:=j*ai; writeln(J=,j); end;根据N的奇偶求和或求积 readln;end.二、排最大数:(分)输入N个正整数,请你将它们连接在一起,排成一个最大的数。例如:N时,如果四个正整数是、,则连接成的最大数为。输入:N(N)输出:连接成的最大数N个正整数(以空格相隔)输入输出样例:输入:N输出:程序:program CS200502;var s:array1.10 of string; a:array1.10 of integer; n,i,j:integer; t:string;begin write(N=

24、);readln(n); for i:=1 to n do begin read(ai); str(ai,si); end;输入数据并转换为字符串 readln; for i:=1 to n-1 do for j:=i to n do if si2 then begin a3:=b2-b1; a1:=0;a2:=b1-a1; for i:=3 to n do begin ai:=bi-1-ai-1-ai-2; if (ai0) and (ai1) then goto 1; end; if anbn-an-1 then goto 1; goto 2; 1: a1:=1;a2:=b1-a1; fo

25、r i:=3 to n do begin ai:=bi-1-ai-1-ai-2; end; 2: l:=0; for i:=1 to n do begin write(ai); if ai=1 then l:=l+1; end; writeln; writeln(L=,l); end; if n=2 then case b1 of 0:begin writeln(0,0);writeln(L=,0); end; 1:begin writeln(0,1);writeln(1,0);writeln(L=,1); end; 2:begin writeln(1,1);writeln(L=,2); en

26、d; end; readln;end.年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、评选(分)某班根据语文、数学、英语和计算机这四科成绩,评选学习积极分子。评选规则如下:(设:Y、S、E、J分别代表语文、数学、英语、计算机)1、 四科平均成绩高于分,可评为A类学习积极分子。2、 Y、S、E三科平均成绩高于分,而且J不低于分,可评为B类学习积极分子。3、 四科中最高分为分,最低分不低于分,可评为C类学习积极分子。4、 一个学生只能被评为符合条件的最高一类学习积极分子(A类最高、C类最低)。现在输入某个学生的四科成绩,请判断该学生能被评为哪一类学习积极分子。输入:四个整数YSEJ输出:A或B或C(分别表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1