Đề thi chọn học sinh giỏi khối 9 - Môn: Tin Học
Bạn đang xem tài liệu "Đề thi chọn học sinh giỏi khối 9 - Môn: Tin Học", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- de_thi_chon_hoc_sinh_gioi_khoi_9_mon_tin_hoc.doc
Nội dung text: Đề thi chọn học sinh giỏi khối 9 - Môn: Tin Học
- Phòng gd- ĐT Đề thi chọn học sinh giỏi lớp 9 vĩnh tường Năm học 2010- 2011 ĐỀ CHÍNH THỨC môn: tin học Thời gian làm bài: 150 phút Bài 1. Tờn file được đặt là BAI1.PAS Nhập một xõu kớ tự S khỏc rỗng. Yờu cầu: - Đếm trong xõu cú bao nhiờu từ. - Thực hiện chuẩn hoỏ xõu. Tức là xoỏ cỏc dấu cỏch thừa và chuyển cỏc chữ cỏi đầu thành chữ hoa, những ký tự khỏc thành chữ thường. Dữ liệu vào: Được cho trong tệp BAI1.INP gồm 1 dũng ghi xõu S Dữ liệu ra: Kết quả ghi ra tệp BAI1.OUT cú cấu trỳc như sau: - Dũng 1: Ghi số lượng từ cú trong xõu S. - Dũng 2: Ghi xõu S sau khi đó được chuẩn hoỏ. Vớ dụ: BAI1.INP BAI1.OUT pHong giAo duC vA daO tAo vInh tUong 8 Phong Giao Duc Va Dao Tao Vinh Tuong Bài 2. Tờn file được đặt là BAI2.PAS Tại vương quốc Ba Tư xa xưa, người ta tổ chức cuộc thi tỡm dóy số hạnh phỳc: Cỏc tràng trai, cụ gỏi thụng minh trong thời gian ngắn nhất phải tỡm ra được một dóy số hạnh phỳc cú nhiều phần tử nhất. Dóy số tự nhiờn a1, a2, , ak được gọi là hạnh phỳc nếu nú thoả món cỏc điều kiện sau: - Dóy trờn là dóy giảm dần. - Với mọi i (1<i<=K). hoặc là số nguyờn tố, hoặc phải là ước của một trong cỏc số a1, a2, , ai-1. Em hóy viết chương trỡnh giỳp tràng trai, cụ gỏi Ba Tư để: Nhập một số N và đưa ra một dóy số hạnh phỳc dài nhất với số hạng đầu tiờn là N. Dữ liệu vào: Được cho trong tệp HAPPY.INP với 1 dũng duy nhất ghi số nguyờn N. Dữ liệu ra: Kết quả ghi ra tệp HAPPY.OUT gồm 1 dũng ghi dóy số hạnh phỳc tỡm được, mỗi số cỏch nhau ớt nhất một dấu cỏch. Vớ dụ: HAPPY.INP HAPPY.OUT 10 10 7 5 3 2 1 Bai 3. Tờn file được đặt là BAI3.PAS Cho mảng 2 chiều A cú M dũng, N cột. Cỏc dũng được đỏnh số từ 1 đến M từ trờn xuống, cỏc cột được đỏnh số từ 1 đến N từ trỏi sang. Mỗi phần tử của mảng là một số nguyờn. Yờu cầu: - Tỡm vị trớ phần tử lớn nhất trong mảng. - Sắp xếp mỗi dũng của mảng tạo thành một dóy khụng giảm. 1
- Dữ liệu vào: Đọc từ file văn bản BANGSO.INP cú cấu trỳc như sau: - Dũng đầu là 2 số nguyờn M và N, viết cỏch nhau một dấu cỏch. - Dũng thứ i trong số M dũng tiếp theo ghi N số nguyờn dương tương ứng của mảng A Dữ liệu ra: Ghi lờn file BANGSO.OUT cú cấu trỳc như sau: - Dũng đầu ghi vị trớ phần tử lớn nhất trong mảng. - Cỏc dũng tiếp theo ghi mảng A cú M dũng, N cột sau khi đó sắp xếp theo yờu cầu. VD: BANGSO.INP BANGSO.OUT 3 4 (2,3) 0 2 1 3 0 1 2 3 2 1 5 4 1 2 4 5 1 2 3 0 0 1 2 3 Bài 4. Tờn file được đặt là BAI4.PAS Nhập số nguyờn dương N (20 N 1 ) tiếp theo nhập N số nguyờn a1, a2, , aN Yờu cầu: - Liệt kờ cỏc số nguyờn tố trong dóy. - Đưa ra dóy vừa nhập sau khi đó sắp xếp theo thứ tự khụng giảm. Dữ liệu vào: Được cho trong tệp DAYSO.INP gồm 2 dũng: - Dũng 1: Ghi số nguyờn dương N - Dũng 2: Ghi N số nguyờn mỗi số cỏch nhau ớt nhất một dấu cỏch. Dữ liệu ra: Kết quả ghi ra tệp DAYSO.OUT cú cấu trỳc như sau: - Dũng 1: Ghi cỏc số nguyờn tố trong dóy, mỗi số cỏch nhau ớt nhất một dấu cỏch (nếu dóy khụng cú số nguyờn tố thỡ ghi 0). - Dũng 2: Ghi dóy vừa nhập sau khi đó sắp xếp, mỗi số cỏch nhau ớt nhất một dấu cỏch. Vớ dụ: DAYSO.INP DAYSO.OUT 7 5 -13 15 22 -12 -23 -1 5 -23 -13 -12 -1 5 15 22 Ghi chỳ: Cỏn bộ coi thi khụng giải thớch gỡ thờm. Họ và tờn thớ sinh: SBD: 2
- Phòng gd- ĐT HD chấm chọn học sinh giỏi lớp 9 vĩnh tường môn: tin học Câu 1: (3 điểm ) mỗi TEST cho 1 điểm Test BAI1.INP BAI1.OUT 1 HuYen VINH TUONg 3 Huyen Vinh Tuong 2 ConG hoA xA hoi cHu nghIa VIEt nAm 8 Cong Hoa Xa Hoi Chu Nghia Viet Nam 3 sOnG va Lam viEc theo Hien phaP vA 10 PHAp LUAT Song Va Lam Viec Theo Hien Phap Va Phap Luat Câu 2: (2 điểm ) mỗi TEST cho 0,25 điểm TEST HAPPY.INP HAPPY.OUT 1 1 1 2 2 2 1 3 8 8 7 5 4 3 2 1 4 15 15 13 11 7 5 3 2 1 5 20 20 19 17 13 11 10 7 5 4 3 2 1 6 25 25 23 19 17 13 11 7 5 3 2 1 7 50 50 47 43 41 37 31 29 25 23 19 17 13 11 10 7 5 3 2 1 8 100 100 97 89 83 79 73 71 67 61 59 53 50 47 43 41 37 31 29 25 23 20 19 17 13 11 10 7 5 4 3 2 1 Câu 3 :(3 điểm ) mỗi TEST cho 1 điểm TEST BANGSO.INP BANGSO.OUT 1 3 4 (1,2) 7 22 1 3 1 3 7 22 9 12 5 14 5 9 12 14 1 12 3 0 0 1 3 12 2 3 3 (2,2) 4 1 3 1 3 4 9 18 6 6 9 18 15 8 12 8 12 15 3 4 5 (3,3) 8 7 9 2 18 2 7 8 9 18 0 7 4 2 3 0 2 3 4 7 12 7 22 5 13 5 7 12 13 22 12 4 7 8 11 4 7 8 11 12 3
- Câu 4 :(2 điểm ) mỗi TEST cho 0,5 điểm Test DAYSO.INP DAYSO.OUT 1 7 7 5 3 2 7 3 2 0 5 4 6 0 2 3 4 5 6 7 2 8 0 14 4 8 6 12 10 18 9 4 6 8 9 10 12 14 18 3 9 19 13 8 19 6 12 4 6 13 0 4 0 4 4 6 6 8 12 13 19 4 10 5 2 9 6 5 12 14 18 16 2 6 4 2 4 5 6 6 9 12 14 16 18 Hết 4
- Chương trỡnh Bai 1 Const fi='BAI1.INP'; Fo='BAI1.OUT'; Var S: String; f:Text; i: integer; Procedure Nhap; Begin Assign(f,fi); reset(f); read(f,S); close(f); end; Function Sotu(S:string): Integer; var dem: Integer; Begin S:=' '+ S; dem:= 0; For i:= 2 to length(S) do If (S[i-1]= ' ') and (S[i]<>' ') then dem:= dem +1; Sotu:= dem; end; Procedure Chuanhoa(Var S: String); Begin While S[1]=' ' do delete(S,1,1); While S[length(s)]=' ' do delete(S,length(S),1); For i:= length(S) downto 2 do if (S[i]=' ')and(S[i-1]=' ')then delete(S,i,1); S[1]:= Upcase(S[1]); for i:= 2 to length(S) do if S[i-1]=' ' then s[i]:=Upcase(S[i]) else if S[i] in ['A' 'Z'] then S[i]:= chr(ord(S[i])+32); end; BEGIN Nhap; Assign(f,Fo); Rewrite(f); Writeln(f,Sotu(S)); chuanhoa(S); Writeln(f,S); close(f); END. Bai 2 Const fi='HAPPY.INP'; fo='HAPPY.OUT'; Var i,n,dem:longint; f:text; function So_Nguyen_To(so:longint):boolean; var i:longint; begin 5
- So_Nguyen_To:=False; for i:=2 to TRUNC(SQRT(so)) do if so mod i = 0 then exit; So_Nguyen_To:=True; end; Procedure Nhap; begin Assign(f,fi); reset(f); read(f,n); close(f); end; Begin nhap; Assign(f,fo); rewrite(f); dem := 0; for i:=n downto 1 do if n mod i = 0 then begin write(f,i,' '); inc(dem); if dem mod 10 = 0 then writeln; end else if So_Nguyen_To(i) then begin write(f,i,' '); inc(dem); if dem mod 10 = 0 then writeln; end; writeln(f); close(f); End. Bai 3 Const Fi='BANGSO.INP'; Fo='BANGSO.OUT'; Var f:TEXT; max,i,j,im,jm,m,n,tg : integer; a : array[1 100,1 100] of integer; Procedure nhap; Var i,j : integer; Begin assign(f,Fi); reset(f); readln(f,m,n); for i := 1 to m do for j := 1 to n do read(f,a[i,j]); close(f); End; procedure xepdong(k: integer); var i,j, tg : integer; 6
- begin for i := 1 to n do for j := i+1 to n do if a[k,i] > a[k,j] then begin tg := a[k,i]; a[k,i]:= a[k,j]; a[k,j] := tg; end; end; BEGIN nhap; assign(f,fo); rewrite(f); max := a[1,1]; im := 1; jm := 1; for i := 1 to m do for j := 1 to n do if max < a[i,j] then begin max := a[i,j]; im := i; jm := j; end; writeln(f,'(',im,',',jm,')'); for i := 1 to m do xepdong(i); for i := 1 to m do begin for j := 1 to n do write(f,a[i,j]:5); writeln(f); end; 7