小學生信息學奧賽決賽題006年決賽題答案_第1頁
小學生信息學奧賽決賽題006年決賽題答案_第2頁
小學生信息學奧賽決賽題006年決賽題答案_第3頁
小學生信息學奧賽決賽題006年決賽題答案_第4頁
小學生信息學奧賽決賽題006年決賽題答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2001年長沙市計算機奧林匹克競賽決賽試題(時間:120分鐘)一、(40分)鍵入一個字符串(串長不超過20),輸出相應字符組成的等邊三角形。如:輸入:“CHINA'輸出:C C H C H I C H 1 H CHIBA程序:program CS200101; vars:string;n,i,j:integer;beginwrite('Input a string:');readln(s);n:=length(s);for i:=1 to n do beginwrite(":40-i);for j:=1 to i do write(sj,'')

2、; writelnend; readln end.二、(50分)一光滑墻壁高 X尺,有一個小蟲從墻底部向上爬,每分鐘爬Y尺。但每爬一分鐘后都要休息一分鐘,在休息期間又下滑一尺。編程:輸入 X和Y,計算該小蟲最少幾分鐘 可爬到頂端。如:輸入:X, Y= 4,2 輸出:5 程序:program CS200102; var x,y,s,n:integer; beginwrite('X,Y=');readln(x,y);if y>1 then begin s:=0;n:=0;repeats:=s+y;n:=n+1;if s<>x then begin s:=s-1;n

3、:=n+1;end;until s>=x; writeln(n);end else writeln('Never'); readlnend.三、(50分)科學家在熱帶森林中發(fā)現了一種特殊的小動物,取名為“吱吱”?!爸ㄖā钡纳L繁殖過程很有規(guī)律,每對小“吱吱”經過 X個月就長成一對大“吱吱”,每對大“吱吱” 每個月都產下 Y對小“吱吱”。假設開始時有一對小“吱吱”,并且每對“吱吱”都不死,問:過Z個月后,共有多少對“吱吱”(X>1, Y> 1,1 WZW24)(注:若當前是1月,則“過” 2個月,是表示到 3月的時候)輸入:X, Y, Z的值輸出:“吱吱”的總對

4、數如:輸入:X, Y, Z= 2, 2, 4 輸出:11程序:program CS200103; varx,y,z,s,s1,n:longint;s1 為大“吱吱"的個數s2:array1.24 of longint;s2為小“吱吱”的個數,s21代表第一天小“吱吱”的個數,依 次類推begins:=0;s1:=0;s21:=1;write('X,Y,Z=');readln(x,y,z);for n:=x to z+1 do begins2n:=s1*y;計算當天出生的小“吱吱” s1:=s1+s2n-x+1;s2n-x+1:=0;計算當天長大的"吱吱&qu

5、ot;,s2n-x+1為X個月前出生的小 “吱吱”個數end;s:=s+s1;將大“吱吱”數計入總數for n:=1 to z+1 do s:=s+s2n;將小"吱吱”數計入總數writeln(s);readln end.四、(60分)如下圖所示,鍵入 A, B, C, D, E的值,然后從 A出發(fā),順次經過每個數字 分岔路口,選擇+、*、/四種運算符之一進行運算,達到目的地 E時,運算結果恰好等于E,請你將所有符合上述條件的道路全部找出來。輸入:A、B、C D和E的值(其中A、BC、D都是19的數字,E是正整數)輸出:從A能到達E的所有道路代表的運算式(注意:前兩步運算要加括號)最

6、后打印出道路的總數。如:輸入:A, B, C, D, E= 1,2,3,4,10輸出:(1 + 2) + 3) + 4=10(1*2) * 3) +4 = 10TOTA2程序:program CS200104;var A,B,C,D,E,sum,f1,f2,f3,total:integer;function s(n1,n2,f:integer):integer;begincase f of1:s:=n1+n2;2:s:=n1-n2;3:s:=n1*n2;4:if (n2<>0) and (trunc(n1 /n2)=n1 div n2) then s:=n1 div n2 else

7、 s:=-1000;end;end;procedure wf(x:integer);begincase x of1:write('+');2:write('-');3:write('*');4:write('/');end;end;begintotal:=0;write('A,B,C,D,E=');readln(a,b,c,d,e);for f1:=1 to 4 dofor f2:=1 to 4 dofor f3:=1 to 4 doif e=s(s(s(a,b,f1),c,f2),d,f3) then begin

8、total:=total+1;write('(','(',a);wf(f1);write(b,')');wf(f2);write(c,')');wf(f3);writeln(d,'=',e)end;writeln('TOTAL=',total);readln;end.2002年長沙市計算機奧林匹克競賽決賽試題(時間:120分鐘)一、填信息(20分)小明對信息學很感興趣,他報名參加今年的小學生電腦奧賽,報名時老師要求他填寫自己的相關信息?,F在,請你將自己的相關信息打印出來。顯示格式要求如下:說明:X1

9、為你的決賽證編號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.二、

10、找字符(60分)有一天,小明編了一個程序,能很快找出一個字符串中出現次數最多的字符,你能做到嗎輸入:一個字符串(長度不超過50)輸出:按字符在字符串中出現的先后順序,顯示出現次數最多的字符樣例輸入:ACABBCCDDB輸出:CB程序:program CS200202;vara,b:string;c:char;d:array1.50 of integer;記錄每一字符出現的次數,同時數組的序號也就代表了字符出現 的先后次序i,j,max:integer;beginreadln(a);b:=a;將字符串a賦值給b,起到保護輸入的字符串a的作用。這一操作不是必須的,也可以直接對字符串a進行操作。但因

11、后面的程序會造成對所操作的字符串內容的破壞,養(yǎng)成對輸入內容進行保護的習慣有益的。for i:=1 to length(a) do beginc:=bi;di:=0;if c<>'.' Thenfor j:=i to length(a) do beginif c=bj then begindi:=di+1;bj:='.'每找到一個相同的字符就把此字符賦值為 相同的字符,在d數組中每個字符出現次數的記錄將是唯一的。end;end;end;max:=d1;for i:=2 to length(a) do if di>max then max:=di;

12、 尋找字符出現的最大次數 for i:=1 to length(a) do if di=max then write(ai); 按次序輸出出現資料最多的字符writeln;readln; end.三、拼三角(60分)有一次,老師給小明N根小木棒,要他從中選出K根,使這K根當中的任意三根都能拼成一個三角形。老師告訴他,構成一個三角形的條件是:任意兩邊之和大于第三邊, 任意兩邊之差小于第三邊。小明思考后,發(fā)現將這些小木棒按長短順序排列后,很容易解決問題。請你用表達式 RANDOM (900)隨機產生N個正整數(表示小木棒的長度),幫小明求出 K 的最大值。輸入:N (3WNW 500)輸出:K的最

13、大值樣例輸入:6排序后的6個隨機數為:19,26,161,220,348,529 輸出:3程序:program CS200203磔本思路:如果三角形中二條較小邊的和大于最大邊,則此三條邊可以 構成三角形。對于有序排列的數,只要確定了能構成三角形的最小數和最大數,中間的每一個數都符合條件varn,k,i,j,t,l:integer;a,b:array1.500 of integer;ok:boolean;beginreadln(n);for i:=1 to n do beginai:=random(900)+1;end;生成隨機數并賦值給數組afor i:=1 to n do write(ai:

14、5);writeln;顯示生成的隨機數,調試用 for i:=1 to n-1 dofor j:=i+1 to n doif ai>aj then begint:=ai;ai:=aj;aj:=t;end;對生成的隨機數從小到大進行排序for i:=1 to n do write(ai:5);writeln;顯示排序結果,調試用 for i:=1 to n-2 do beginok:=false;l:=n;repeatif ai+ai+1>al then ok:=true else l:=l-1;until ok or (l=i+1); 對于每根小棒尋找能夠構成三角形的最長小棒在數組

15、a中的位置lif ok then bi:=l-i+1; 得到能與當前小棒組成三角形的小棒數量end;for i:=1 to n do write(bi:5);writeln;k:=b1;for j:=2 to n doif bj>k then k:=bj;writeln('K=',k);readln;end.四、數的統計(60分)一個數“含有0”是指這個數至少有某一位數字為0。小明對那些“含有 0”的自然數很感興趣,想挑出來進行研究。那么, 1N當中“含有0”的自然數有多少個小明想在1秒鐘內得到答案,你能幫他做到嗎輸入:N (1W NW 0)樣例輸入:105輸出:15程序

16、:program CS200204;var n,i,l:longint;s:string;beginl:=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.2004年長沙市計算機奧林匹克競賽決賽試題(時間:120分鐘)一、求和(30分)由鍵盤輸入正整數 N (NW100),求1到N之間所有的5的倍數之和S。例:輸入:N= 10輸出:S= 15(因為110之間只有5和10是5的倍數)程序:program CS200204;var n,

17、i,l:longint;s:string;beginl:=0;readln(n);for i:=1 to n do beginstr(i,s);if pos('0',s)<>0 then l:=l+1;end;writeln(l);end.二、文本圖形(50)由鍵盤輸入正整數 N (NW21)和一個字符串 A (A由N個任意的大寫字母組成),要求 輸出一個左右對稱的N行的文本圖形。例:輸入:N = 4A= ABCD輸出:AAEAABCBAABCDCRA程序:program CS200402; varn,i,j,k:integer;a:string;beginwrit

18、e('N=');readln(n);write('A=');readln(a);for i:=1 to n do beginwrite(":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 (NW500)和K (KW 9),請找一個正整數M,使NXM的值僅由0K組成,而且0K的每個數字至少出現一次。編程序在130000范圍內找出符合條件的最小的M值,如果找不到,則輸出“ No find!

19、”。例:輸入:N, K=65,3輸出:M=48(因為 65X48=3120)輸入:N, K= 125,8輸出:No find!程序:program CS200403; var n,k,m,i,j,s:longint;t:boolean;a,b:string;label 1;beginwrite('N,K=');readln(n,k);for m:=1 to 30000 do begins:=n*m;t:=true;str(s,a);將s轉換為字符串afor i:=0 to k do begin str(i,b);if pos(b,a)=0 then t:=false;end;如

20、果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 ( N w 50 ),已知數列

21、A1 , A2 , A3 , ,An分別為 2004,2004,2004。問:A1 + A2+A3+ An的精確值 S有多少位數 S當中 有多少個“ 0”(設:S的位數為K, S中“0”的個數為Z)例:輸入:N=2輸出:K= 8Z= 4 (因為S=)程序:program CS200404;var a,s:array1.200 of integer;n,k,z,i,j,m,l:integer;beginwrite('N=');readln(n);k:=n*4;得到S的位數。for i:=1 to n do beginfor j:=1 to 4*i do beginl:=j mod

22、 4;case l of0:aj:=2;1:aj:=4;2,3:aj:=0;end;生成An。為方便運算,生成的 An為4002的形式,第一位為個數end;for m:=1 to k do beginsm:=sm+am;if sm>=10 then beginsm:=sm mod 10;am+1:=am+1+1;end;逢 10 進 1end;將An累加進send;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.2 0 0 5年長

23、沙市計算機奧林匹克競賽決賽試題(時間:120分鐘)一、拆分整數:(1 0 0分)輸入一個正整數 N,如果N是偶數,則拆分 N的各個數字相加求和;如果N是奇數,則拆分N的各個數字相乘求積。輸入輸出樣例:輸入:N= 1 2 6 輸出:H= 9輸入:N= 1 2 3 輸出:J= 6程序:program CS200501;varn,h,j,l,i,t:integer;a:array1.10 of integer;s:string;beginwrite('N=');readln(n);t:=n;i:=1;if t>10 thenrepeatai:=t mod 10;t:=t div

24、 10;i:=i+1;until t<10;ai:=t;拆分N的各個數字,存放在數組a中str(n,s);將數n轉換為字符串sl:=length(s);取s長度,即得到數 n的位數h:=0;j:=1;if n mod 2=0 then beginfor i:=1 to l do h:=h+ai;writeln('H=',h);end else beginfor i:=1 to l do j:=j*ai;writeln('J=',j);end;根據N的奇偶求和或求積readln;end.二、排最大數:(10 0分)輸入N個正整數,請你將它們連接在一起,排成一

25、個最大的數。例如: N=4時,如 果四個正整數是7、13、18、2 4 6,則連接成的最大數為7 2 4 6 1 8 1 3 o輸入:N ( 1 < N< 1 0)輸出:連接成的最大數N個正整數(以空格相隔)輸入輸出樣例:輸入:N= 4輸出:7 2 4 6 1 8 1 37131 82 4 6程序:program CS200502;vars:array1.10 of string;a:array1.10 of integer;n,i,j:integer;t:string;beginwrite('N=');readln(n);for i:=1 to n do begi

26、nread(ai);str(ai,si);end;輸入數據并轉換為字符串readln;for i:=1 to n-1 dofor j:=i to n doif si<sj then begint:=si;si:=sj;sj:=t;end;對字符串進行排序for i:=1 to n do write(si);輸出結果 readln;end.三、掃雷游戲:(10 0分)有一種簡單的掃雷游戲:在 N行2列的方格棋盤上,左列某些方格內埋有地雷,而右 列每個方格中都有一個數字(。3 ) ,第I格的數字表示:左列第I 1、I、I+ 1格(即: 上、中、下三格)中埋雷的總數。如下所示:左圖是初始狀態(tài),

27、右圖是掃雷完成狀態(tài)(插小 旗的方格內有雷)。I 2 322- 2 2JaJilri,AJ11你的任務是:根據右列的數字分析出左列格子中的地雷(0表示無雷,1表示有雷) 并且統計出左列格子中地雷的總數。輸入:N (2< N<4 0)N個數字(以空格相隔),表示右列格子中的數字。輸出:N個0、1數字(占一行),表示左列每格中有無地雷。地雷總數(另起一行)輸入輸出樣例(如上圖示):輸入:N= 7輸出:0 1110 111 2 3 2 2 2 2L= 5程序:program CS200503;var n,l,i:integer;a,b:array1.40 of integer;label

28、1,2;beginwrite('N=');readln(n);for i:=1 to n do read(bi);readln;if n>2 then begina3:=b2卜b1;a1:=0;a2:=b1卜a1;for i:=3 to n do beginai:=bi-1-ai-1-ai-2;if (ai<>0) and (ai<>1) then goto 1;end;if an<>bn卜an-1 then goto 1;goto 2;1:a1:=1;a2:=b1-a1;for i:=3 to n do beginai:=bi-1-a

29、i-1-ai-2;end;2:l:=0;for i:=1 to n do beginwrite(ai);if ai=1 then l:=l+1;end;writeln;writeln('L=',l);end;if n=2 thencase b1 of0:beginwriteln(0,0);writeln('L=',0);end;1:beginwriteln(0,1);writeln(1,0);writeln('L=',1);end;2:beginwriteln(1,1);writeln('L=',2);end;end;readln

30、; end.2006年長沙市計算機奧林匹克競賽決賽試題(時間:120分鐘)一、評選(1 0 0分)某班根據語文、數學、英語和計算機這四科成績,評選學習積極分子。評選規(guī)則如下:(設:Y、S、E、J分別代表語文、數學、英語、計算機)1、四科平均成績高于9 0分,可評為 A類學習積極分子。2、Y S E三科平均成績高于8。分,而且 J不低于9。分,可評為B類學習積極分子。3、四科中最高分為1 0。分,最低分不低于6。分,可評為C類學習積極分子。4、一個學生只能被評為符合條件的最高一類學習積極分子(A類最高、C類最低)?,F在輸入某個學生的四科成績,請判斷該學生能被評為哪一類學習積極分子。輸入:四個整數

31、Y S E J輸出:A人或#8或#0:(分別表示 A類、B類、C類學習積極分子)若不符合任何評選條件,則輸出“ NO”。樣例:輸入:YS,E,J=85 98 91 100輸出:# A程序:program CS200601;var n,l,i:integer;a,b:array1.40 of integer;label 1,2;beginwrite('N=');readln(n);for i:=1 to n do read(bi);readln;if n>2 then begina3:=b2-b1;a1:=0;a2:=b1-a1;for i:=3 to n do begin

32、ai:=bi-1-ai-1-ai-2;if (ai<>0) and (ai<>1) then goto 1;end;if an<>bn-an-1 then goto 1;goto 2;1:a1:=1;a2:=b1-a1;for i:=3 to n do beginai:=bi-1-ai-1-ai-2;end;2:l:=0;for i:=1 to n do beginwrite(ai);if ai=1 then l:=l+1;end;writeln;writeln('L=',l);end;if n=2 thencase b1 of0:begin

33、writeln(0,0);writeln('L=',0);end;1:beginwriteln(0,1);writeln(1,0);writeln('L=',1);end;2:beginwriteln(1,1);writeln('L=',2);end;end;readln;end.二、除法(1 0 0分)輸入正整數N、M ,求N+M的值。如果商的小數部分出現循環(huán)節(jié),則輸出時要求用圓 括號將循環(huán)節(jié)括起來,如果商為整數,則輸出為整數。例如:1 + 2=1+ 3=0.(3) 22 + 5= 33 + 3=11輸入:N M輸出:N+M的值(保證小數點后不超過5。位,而且未尾不能有多余的0)樣例:輸入:N,M=45 56輸出:(571428)程序:program CS200602;varn,m:real;r,c:array0.50 of real;i,j,k,flag: integer;beginwrite('N,M='); readln(n,m);k:=0; flag:=1;if m<>0 then beginc0:=int(n/m); r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論