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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2001年長(zhǎng)沙市計(jì)算機(jī)奧林匹克競(jìng)賽決賽試題(時(shí)間:120分鐘)一、(40分)鍵入一個(gè)字符串(串長(zhǎng)不超過20),輸出相應(yīng)字符組成的等邊三角形。如:輸入:“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尺,有一個(gè)小蟲從墻底部向上爬,每分鐘爬Y尺。但每爬一分鐘后都要休息一分鐘,在休息期間又下滑一尺。編程:輸入 X和Y,計(jì)算該小蟲最少幾分鐘 可爬到頂端。如:輸入: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分)科學(xué)家在熱帶森林中發(fā)現(xiàn)了一種特殊的小動(dòng)物,取名為“吱吱”?!爸ㄖā钡纳L(zhǎng)繁殖過程很有規(guī)律,每對(duì)小“吱吱”經(jīng)過 X個(gè)月就長(zhǎng)成一對(duì)大“吱吱”,每對(duì)大“吱吱” 每個(gè)月都產(chǎn)下 Y對(duì)小“吱吱”。假設(shè)開始時(shí)有一對(duì)小“吱吱”,并且每對(duì)“吱吱”都不死,問:過Z個(gè)月后,共有多少對(duì)“吱吱”(X>1, Y> 1,1 WZW24)(注:若當(dāng)前是1月,則“過” 2個(gè)月,是表示到 3月的時(shí)候)輸入:X, Y, Z的值輸出:“吱吱”的總對(duì)

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

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

6、后打印出道路的總數(shù)。如:輸入: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年長(zhǎng)沙市計(jì)算機(jī)奧林匹克競(jìng)賽決賽試題(時(shí)間:120分鐘)一、填信息(20分)小明對(duì)信息學(xué)很感興趣,他報(bào)名參加今年的小學(xué)生電腦奧賽,報(bào)名時(shí)老師要求他填寫自己的相關(guān)信息?,F(xiàn)在,請(qǐng)你將自己的相關(guān)信息打印出來。顯示格式要求如下:說明:X1

9、為你的決賽證編號(hào)X2為你的姓名(用拼音)X3為你的性別(男生用 boy,女生用girl)X4為你所在的學(xué)校名稱(用拼音)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分)有一天,小明編了一個(gè)程序,能很快找出一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,你能做到嗎輸入:一個(gè)字符串(長(zhǎng)度不超過50)輸出:按字符在字符串中出現(xiàn)的先后順序,顯示出現(xiàn)次數(shù)最多的字符樣例輸入:ACABBCCDDB輸出:CB程序:program CS200202;vara,b:string;c:char;d:array1.50 of integer;記錄每一字符出現(xiàn)的次數(shù),同時(shí)數(shù)組的序號(hào)也就代表了字符出現(xiàn) 的先后次序i,j,max:integer;beginreadln(a);b:=a;將字符串a(chǎn)賦值給b,起到保護(hù)輸入的字符串a(chǎn)的作用。這一操作不是必須的,也可以直接對(duì)字符串a(chǎn)進(jìn)行操作。但因

11、后面的程序會(huì)造成對(duì)所操作的字符串內(nèi)容的破壞,養(yǎng)成對(duì)輸入內(nèi)容進(jìn)行保護(hù)的習(xí)慣有益的。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:='.'每找到一個(gè)相同的字符就把此字符賦值為 相同的字符,在d數(shù)組中每個(gè)字符出現(xiàn)次數(shù)的記錄將是唯一的。end;end;end;max:=d1;for i:=2 to length(a) do if di>max then max:=di;

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

13、大值樣例輸入:6排序后的6個(gè)隨機(jī)數(shù)為:19,26,161,220,348,529 輸出:3程序:program CS200203磔本思路:如果三角形中二條較小邊的和大于最大邊,則此三條邊可以 構(gòu)成三角形。對(duì)于有序排列的數(shù),只要確定了能構(gòu)成三角形的最小數(shù)和最大數(shù),中間的每一個(gè)數(shù)都符合條件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;生成隨機(jī)數(shù)并賦值給數(shù)組afor i:=1 to n do write(ai:

14、5);writeln;顯示生成的隨機(jī)數(shù),調(diào)試用 for i:=1 to n-1 dofor j:=i+1 to n doif ai>aj then begint:=ai;ai:=aj;aj:=t;end;對(duì)生成的隨機(jī)數(shù)從小到大進(jìn)行排序for i:=1 to n do write(ai:5);writeln;顯示排序結(jié)果,調(diào)試用 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); 對(duì)于每根小棒尋找能夠構(gòu)成三角形的最長(zhǎng)小棒在數(shù)組

15、a中的位置lif ok then bi:=l-i+1; 得到能與當(dāng)前小棒組成三角形的小棒數(shù)量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.四、數(shù)的統(tǒng)計(jì)(60分)一個(gè)數(shù)“含有0”是指這個(gè)數(shù)至少有某一位數(shù)字為0。小明對(duì)那些“含有 0”的自然數(shù)很感興趣,想挑出來進(jìn)行研究。那么, 1N當(dāng)中“含有0”的自然數(shù)有多少個(gè)小明想在1秒鐘內(nèi)得到答案,你能幫他做到嗎輸入: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年長(zhǎng)沙市計(jì)算機(jī)奧林匹克競(jìng)賽決賽試題(時(shí)間:120分鐘)一、求和(30分)由鍵盤輸入正整數(shù) N (NW100),求1到N之間所有的5的倍數(shù)之和S。例:輸入:N= 10輸出:S= 15(因?yàn)?10之間只有5和10是5的倍數(shù))程序: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)由鍵盤輸入正整數(shù) N (NW21)和一個(gè)字符串 A (A由N個(gè)任意的大寫字母組成),要求 輸出一個(gè)左右對(duì)稱的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.三、找數(shù)(60分)由鍵盤輸入正整數(shù)N (NW500)和K (KW 9),請(qǐng)找一個(gè)正整數(shù)M,使NXM的值僅由0K組成,而且0K的每個(gè)數(shù)字至少出現(xiàn)一次。編程序在130000范圍內(nèi)找出符合條件的最小的M值,如果找不到,則輸出“ No find!

19、”。例:輸入:N, K=65,3輸出:M=48(因?yàn)?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轉(zhuǎn)換為字符串a(chǎn)for i:=0 to k do begin str(i,b);if pos(b,a)=0 then t:=false;end;如

20、果0k之間有一個(gè)數(shù)不包含在a當(dāng)中,則令邏輯指針為假 for j:=k+1 to 9 do begin str(j,b);if pos(b,a)<>0 then t:=false;end;如果k9之間有一個(gè)數(shù)包含在 a當(dāng)中,則令邏輯指針為假 if t=true then goto 1;找到符合條件的 m值,跳轉(zhuǎn)隼出部分 end;1:if t=true then writeln('M=',m) else writeln('No find!');readln;end.四、求倍數(shù)及“ 0”的個(gè)數(shù)(60分)由鍵盤輸入正整數(shù) N ( N w 50 ),已知數(shù)列

21、A1 , A2 , A3 , ,An分別為 2004,2004,2004。問:A1 + A2+A3+ An的精確值 S有多少位數(shù) S當(dāng)中 有多少個(gè)“ 0”(設(shè):S的位數(shù)為K, S中“0”的個(gè)數(shù)為Z)例:輸入:N=2輸出:K= 8Z= 4 (因?yàn)镾=)程序: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的位數(shù)。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。為方便運(yùn)算,生成的 An為4002的形式,第一位為個(gè)數(shù)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 進(jìn) 1end;將An累加進(jìn)send;z:=0;for i:=1 to 4*n do if si=0 then z:=z+1;統(tǒng)計(jì) 0 的個(gè)數(shù)writeln('K=',k,'Z=':5,z);readln;end.2 0 0 5年長(zhǎng)

23、沙市計(jì)算機(jī)奧林匹克競(jìng)賽決賽試題(時(shí)間:120分鐘)一、拆分整數(shù):(1 0 0分)輸入一個(gè)正整數(shù) N,如果N是偶數(shù),則拆分 N的各個(gè)數(shù)字相加求和;如果N是奇數(shù),則拆分N的各個(gè)數(shù)字相乘求積。輸入輸出樣例:輸入: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的各個(gè)數(shù)字,存放在數(shù)組a中str(n,s);將數(shù)n轉(zhuǎn)換為字符串sl:=length(s);取s長(zhǎng)度,即得到數(shù) n的位數(shù)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;根據(jù)N的奇偶求和或求積readln;end.二、排最大數(shù):(10 0分)輸入N個(gè)正整數(shù),請(qǐng)你將它們連接在一起,排成一

25、個(gè)最大的數(shù)。例如: N=4時(shí),如 果四個(gè)正整數(shù)是7、13、18、2 4 6,則連接成的最大數(shù)為7 2 4 6 1 8 1 3 o輸入:N ( 1 < N< 1 0)輸出:連接成的最大數(shù)N個(gè)正整數(shù)(以空格相隔)輸入輸出樣例:輸入: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;輸入數(shù)據(jù)并轉(zhuǎn)換為字符串readln;for i:=1 to n-1 dofor j:=i to n doif si<sj then begint:=si;si:=sj;sj:=t;end;對(duì)字符串進(jìn)行排序for i:=1 to n do write(si);輸出結(jié)果 readln;end.三、掃雷游戲:(10 0分)有一種簡(jiǎn)單的掃雷游戲:在 N行2列的方格棋盤上,左列某些方格內(nèi)埋有地雷,而右 列每個(gè)方格中都有一個(gè)數(shù)字(。3 ) ,第I格的數(shù)字表示:左列第I 1、I、I+ 1格(即: 上、中、下三格)中埋雷的總數(shù)。如下所示:左圖是初始狀態(tài),

27、右圖是掃雷完成狀態(tài)(插小 旗的方格內(nèi)有雷)。I 2 322- 2 2JaJilri,AJ11你的任務(wù)是:根據(jù)右列的數(shù)字分析出左列格子中的地雷(0表示無雷,1表示有雷) 并且統(tǒng)計(jì)出左列格子中地雷的總數(shù)。輸入:N (2< N<4 0)N個(gè)數(shù)字(以空格相隔),表示右列格子中的數(shù)字。輸出:N個(gè)0、1數(shù)字(占一行),表示左列每格中有無地雷。地雷總數(shù)(另起一行)輸入輸出樣例(如上圖示):輸入: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年長(zhǎng)沙市計(jì)算機(jī)奧林匹克競(jìng)賽決賽試題(時(shí)間:120分鐘)一、評(píng)選(1 0 0分)某班根據(jù)語文、數(shù)學(xué)、英語和計(jì)算機(jī)這四科成績(jī),評(píng)選學(xué)習(xí)積極分子。評(píng)選規(guī)則如下:(設(shè):Y、S、E、J分別代表語文、數(shù)學(xué)、英語、計(jì)算機(jī))1、四科平均成績(jī)高于9 0分,可評(píng)為 A類學(xué)習(xí)積極分子。2、Y S E三科平均成績(jī)高于8。分,而且 J不低于9。分,可評(píng)為B類學(xué)習(xí)積極分子。3、四科中最高分為1 0。分,最低分不低于6。分,可評(píng)為C類學(xué)習(xí)積極分子。4、一個(gè)學(xué)生只能被評(píng)為符合條件的最高一類學(xué)習(xí)積極分子(A類最高、C類最低)。現(xiàn)在輸入某個(gè)學(xué)生的四科成績(jī),請(qǐng)判斷該學(xué)生能被評(píng)為哪一類學(xué)習(xí)積極分子。輸入:四個(gè)整數(shù)

31、Y S E J輸出:A人或#8或#0:(分別表示 A類、B類、C類學(xué)習(xí)積極分子)若不符合任何評(píng)選條件,則輸出“ 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分)輸入正整數(shù)N、M ,求N+M的值。如果商的小數(shù)部分出現(xiàn)循環(huán)節(jié),則輸出時(shí)要求用圓 括號(hào)將循環(huán)節(jié)括起來,如果商為整數(shù),則輸出為整數(shù)。例如:1 + 2=1+ 3=0.(3) 22 + 5= 33 + 3=11輸入:N M輸出:N+M的值(保證小數(shù)點(diǎn)后不超過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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論