




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年长沙市计算机奥林匹克竞赛决赛试题(时间: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分)一光滑墙壁高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); 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:array1.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.四、(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)410TOTAL2程序:program CS200104;var A,B,C,D,E,sum,f1,f2,f3,total:integer;function 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=); 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分)小明对信息学很感兴趣,他报名参加今年的小学生电脑奥赛,报名时老师要求他填写自己的相关信息。现在,请你将自己的相关信息打印出来。显示格式要求如下:说明: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 TongPuJie);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的作用。这一操作不是必须的,也可以直接对字符串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 max:=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的最大值样例输入: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(ai: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); 对于每根小棒寻找能够构成三角形的最长小棒在数组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程序: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;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 begin 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,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;如果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(因为S20044008)程序: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+am; 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,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); 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=);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; for 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); end; end; readln;end.年长沙市计算机奥林匹克竞赛决赛试题(时间:120分钟)一、评选(分)某班根据语文、数学、英语和计算机这四科成绩,评选学习积极分子。评选规则如下:(设:Y、S、E、J分别代表语文、数学、英语、计算机)、 四科平均成绩高于分,可评为A类学习积极分子。、 Y、S、E三科平均成绩高于分,而且J不低于分,可评为B类学习积极分子。、 四科中最高分为分,最低分不低于分,可评为C类学习积极分子。、 一个学生只能被评为符合条件的最高一类学习积极分子(A类最高、C类最低)。现在输入某个学生的四科成绩,请判断该学生能被评为哪一类学习积极分子。输入:四个整数YSEJ输出:A或B或C(分别表示A类、B类、C类学习积极分子)若不符合任何评选条件,则输出“NO”。样例:输入:Y,S,E,J=85 98 91 100输出:A程序:program CS200601;var n,l,i:integer; a,b:array1.40 of integer; label 1,2;begin write(N=);readln(n); for i:=1 to n do read(bi); readln; if n2 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; for 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); end; end; readln;end.二、除法(分)输入正整数N、M,求NM的值。如果商的小数部分出现循环节,则输出时要求用圆括号将循环节括起来,如果商为整数,则输出为整数。例如:12=0.513=0.(3)225=4.4333=11输入:NM输出:NM的值(保证小数点后不超过位,而且未尾不能有多余的)样例:输入:N,M45 56输出:0.803(571428)程序:program CS200602;varn,m:real;r,c:array0.50 of real;i,j,k,flag: integer;begin write(N,M=); readln(n,m); k:=0; flag:=1; if m0 then begin c0:=int(n/m); r0:=n-m*c0; while (rk0) and (flag=1) do begin ck+1:=in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年航空机务工程师职业资格评定试题及答案解析
- 高粱购销合同模板(3篇)
- n2级护理岗位考试试题及答案
- 环保项目投资民间借款合同
- 任城区人才公寓租住管理与租客权益保障协议
- 商业地产业主与物业物业服务合同范本
- 股权转让协议范本中的业绩承诺条款详解
- 2025公务员能源局面试题目及答案
- 辅警专业知识试题及答案
- 跳棋的教学课件怎么写
- 新高考高中英语熟词生义485例(精校版)重点单词、短语辨析
- 斜视检查(斜视诊疗课件)
- 和安风电场电气设备定检及预防性试验技术规范
- 农产品食品安全评价技术 课件全套 模块1-8 走进农产品食品安全检测 - 油脂脂肪酸组成和溶剂残留检测
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 第二章 临床康复工程学基础
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 《水生生物学桡足类》课件
- 《预算员培训二》课件
- 八年级劳动课下册教案
- 人工动静脉瘘狭窄查房
评论
0/150
提交评论