UBND HUYỆN THANH SƠN PHềNG GD&ĐT ĐỀ CHÍNH THỨC ( Đề thi cú 01 trang ) ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9 - THCS CẤP HUYậ́N NĂM HỌC 2012 - 2013 Mụn: Tin học (Thời gian làm bài 150 phỳt khụng kể thời gian giao đề ) Bài 1 (4,0 điểm). Khởi động chương trỡnh PASCAL, viết chương trỡnh nhập số tự nhiờn n sao cho 5 < n ≤100, nếu nhập sai yờu cầu nhập lại khi nào nhập đỳng thỡ tớnh tổng sn: - Lưu bài với tờn tợ̀p tin: D:\THIHUYEN\B1SBDxxx.pas (trong đó xxx là sụ́ báo danh của thí sinh). Bài 2 (6,0 điểm). Viết chương trỡnh trờn ngụn ngữ lập trỡnh PASCAL, nhập vào hai số tự nhiờn x, y sao cho chương trỡnh chỉ cho nhập cỏc số tự nhiờn x, y thỏa món 4 x < 53 và 59 < y 121. - In ra màn hỡnh cỏc số lẻ chia hết cho 3 trong khoảng từ x đến y và đếm cú bao nhiờu số như vậy? - In ra màn hỡnh cỏc số chớnh phương m sao cho x < m < y và đếm cú bao nhiờu số m? - Lưu bài với tờn tợ̀p tin: D:\THIHUYEN\B2SBDxxx.pas (trong đó xxx là sụ́ báo danh của thí sinh). Bài 3 (4,0 điểm). Lập chương trỡnh PASCAL thực hiện yờu cầu sau: Anh Việt đi chợ mua một mặt hàng cú giỏ trị là N đồng. Trong tỳi anh Việt cú nhiều tờ tiền với mệnh giỏ là 100 đồng, 200 đồng và 1000 đồng. Anh Việt cú thể cú nhiều cỏch trả tiền để mua mặt hàng đú (anh Việt chỉ dựng cỏc tờ tiền mà anh cú sẵn. Anh khụng đưa thừa tiền cho người bỏn vỡ người bỏn khụng cú tiền trả lại). Yờu cầu: nhập vào từ bàn phớm số N (N nguyờn và 2<N<100 000); đưa ra màn hỡnh tất cả cỏc cỏch trả tiền của anh Việt thỏa món. (Mỗi cỏch trả tiền trờn một dũng, nếu khụng cú cỏch trả tiền thỡ khụng cần thụng bỏo gỡ; chương trình không cần kiểm tra dữ liệu vào từ bàn phím). - Lưu bài với tờn tợ̀p tin: D:\THIHUYEN\B3SBDxxx.pas (trong đó xxx là sụ́ báo danh của thí sinh). Bài 4 ( 6,0 điểm). Khởi động chương trỡnh PASCAL, viết chương trỡnh nhập vào một dóy số nguyờn n phần tử, n nhập từ bàn phớm. - In ra màn hỡnh dóy số vừa nhập xếp theo thứ tự tăng dần. - In ra màn hỡnh cỏc số nguyờn tố trong dóy số vừa nhập và đếm xem đó nhập vào bao nhiờu số nguyờn tố. - Lưu bài với tờn tợ̀p tin: D:\THIHUYEN\B4SBDxxx.pas (trong đó xxx là sụ́ báo danh của thí sinh). ––––––––––––––––––– Hết –––––––––––––––––––– Họ và tờn thớ sinh ........................................................................... SBD....... Chỳ ý: Cỏn bộ coi thi khụng giải thớch gỡ thờm PHềNG GD&ĐT THANH SƠN HƯỚNG DẪN CHẤM THI CHỌN HSG LỚP 9 - THCS CẤP HUYậ́N NĂM HỌC 2012 – 2013 Mụn: Tin học Yờu cầu chung: Yờu cầu chương trỡnh chạy thụng suốt. ( 2-3 điểm) + Hoàn thành đỳng phần khai bỏo cỏc biến: (0,25 điểm) + Viết đỳng chương trỡnh nhập mảng: (0,25 điểm) + Viết đỳng thuật toỏn (cỏch giải) tớnh tổng: (1-2 điểm) + Viết đỳng thủ tục tạo và ghi kết quả vào tệp: (0,5 điểm) - Chương trình chạy cho kờ́t quả đúng (có thờ̉ làm theo cách khác đáp án): khai báo đõ̀y đủ, trình bày có cṍu trúc rõ ràng cho điờ̉m tụ́i đa. Khụng khai báo mụ̃i biờ́n trừ 0.25 điờ̉m. - Chương trình cho kờ́t quả sai: Chỉ chṍm phõ̀n các ý chính của thuọ̃t toán, mụ̃i ý đúng cho điờ̉m khụng vượt quá 40% sụ́ điờ̉m của cõu. Bài 1 (4,0 điểm). Khởi động chương trỡnh PASCAL, viết chương trỡnh nhập số tự nhiờn n sao cho 5 < n ≤100, nếu nhập sai yờu cầu nhập lại khi nào nhập đỳng thỡ tớnh tổng sn: Chương trình tham khảo Điờ̉m Uses Crt; Var n,i:Integer; s:Real; 0,5 BEGIN ClrScr; Write(‘Nhap so tu nhien n=');Readln(n); While ((n100) do Begin Write(‘Nhap lai n thoa man 5 < n <=100, n = ');Readln(n); end; 1 s:=0; For i:=1 to n do s:=s+i*(i+1)/((i+2)*(i+3)); 1,5 Write(‘s=’,s:4:3); 0,5 Readln END. 0,5 Bụ̣ Test thử n nhập vào Kết quả thụng bỏo hoặc kết quả S trờn màn hỡnh 4 Nhap lai n thoa man 5 < n <=100, n = 5 1.879 6 2.462 Bài 2 (6,0 điểm). Viết chương trỡnh trờn ngụn ngữ lập trỡnh PASCAL, nhập vào hai số tự nhiờn x, y sao cho chương trỡnh chỉ cho nhập cỏc số tự nhiờn x, y thỏa món 4 x < 53 và 59 < y 121. - In ra màn hỡnh cỏc số lẻ chia hết cho 3 trong khoảng từ x đến y và đếm cú bao nhiờu số như vậy. - In ra màn hỡnh cỏc số chớnh phương m sao cho x < m < y và đếm cú bao nhiờu số m. Chương trình tham khảo Điờ̉m Uses Crt; var x,y,i,d:longint; BEGIN ClrScr; d:=0; Write(‘Nhap so tu nhien x, y =');Readln(x,y); While ((x=53) OR ( y121) ) do Begin Write(‘Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121’); Readln(n); end; writeln(‘Cac so le chia het cho 3 thoa man la:'); 0,5 0,5 0,5 0,5 for i:=x to y do if (i mod 20)and(i mod 3=0) then begin write(i:6); d: = d+1; end; 0,5 0,5 0,5 writeln; writeln('Co tat ca:',d,' so le chia het cho 3'); writeln('Cac so chinh phuong lon hon’, x:4,’va nho hon’, y:4, ‘la: ‘); d:=0; For i: = x +1 to y -1 do IF sqr(trunc(sqrt(i))) = i then Begin write (I: 7); d:=d+1; end; writeln; writeln(‘ Co tat ca ‘,d:6,’ so chinh phuong’); readln; End. 0,5 0,5 0,5 0,5 0,5 Bụ̣ Test thử Dữ liệu vào Dữ liệu ra 3 64 4 64 Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121 Cac so le chia het cho 3 thoa man la: 9 15 21 27 33 39 45 51 57 63 Co tat ca: 10 so le chia het cho 3 Cac so chinh phuong lon hon 4 va nho hon 64 la: 9 16 25 36 49 Co tat ca 5 so chinh phuong Bài 3 (4,0 điểm). Lập chương trỡnh thực hiện yờu cầu sau: Anh Việt đi chợ mua một mặt hàng cú giỏ trị là N đồng. Trong tỳi anh Việt cú nhiều tờ tiền với mệnh giỏ là 100 đồng, 200 đồng và 1000 đồng. Anh Việt cú thể cú nhiều cỏch trả tiền để mua mặt hàng đú (anh Việt chỉ dựng cỏc tờ tiền mà anh cú sẵn. Anh khụng đưa thừa tiền cho người bỏn vỡ người bỏn khụng cú tiền trả lại). Yờu cầu: nhập vào từ bàn phớm số N (N nguyờn và 2<N<100 000); đưa ra màn hỡnh tất cả cỏc cỏch trả tiền của anh Việt thỏa món. (Mỗi cỏch trả tiền trờn một dũng, nếu khụng cú cỏch thỡ khụng cần thụng bỏo gỡ) Lưu bài với tờn tập tin: D:\THI\CAPHUYEN\Bai3.pas Chương trình tham khảo Điờ̉m Program tinhtien; Var N,K,a,b,c:Longint; 0,5 Begin Write('Vao N='); Readln(N); K:=0; If N mod 100=0 Then For a:=0 to N div 1000 do For b:=0 to (N-1000*a) div 200 do Begin c:=(N-1000*a-200*b) div 100; Writeln(c,' x 100 +',b,' x 200 + ',a,' x 1000'); End; readln; End. 0.5 0,5 0,5 0,5 1,0 0,5 Bụ̣ Test thử Vao N=1000 10 x 100 + 0 x 200 + 0 x 1000 8 x 100 + 1 x 200 + 0 x 1000 6 x 100 + 2 x 200 + 0 x 1000 4 x 100 + 3 x 200 + 0 x 1000 2 x 100 + 4 x 200 + 0 x 1000 0 x 100 + 5 x 200 + 0 x 1000 0 x 100 + 0 x 200 + 1 x 1000 Bài 4 ( 6,0 điểm). Khởi động chương trỡnh PASCAL, viết chương trỡnh nhập vào một dóy số nguyờn n phần tử, n nhập từ bàn phớm - In ra màn hỡnh dóy số vừa nhập xếp theo thứ tự tăng dần. - In ra màn hỡnh cỏc số nguyờn tố trong dóy số vừa nhập và đếm xem đó nhập vào bao nhiờu số nguyờn tố. Lưu bài với tờn tập tin: D:\THI\CAPHUYEN\Bai4.pas Chương trình tham khảo Điờ̉m Uses crt; Var A: Array[1..100] of Integer; n,i,j,dem: Byte; tg: Integer; function NT(n:longint):boolean; var i:longint; Kt:boolean; begin Kt:=true; for i:=2 to round(sqrt(n)) do if n mod i=0 then Kt:=false; NT:=Kt; end; Begin Write('Hay nhap vao so phan tu cua mang:'); Readln(n); For i:= 1 to n do Begin Write('Nhap a[',i,']= '); Readln(a[i]); End; For i:= 1 to n-1 do For j:= i to n do If a[i]>a[j] then Begin tg:= a[i]; a[i]:=a[j]; a[j]:= tg; End; Writeln('Mang sau khi da sap xep la'); For i:= 1 to n do Write(a[i]:6); Writeln;dem:=0; Writeln('Nhung so nguyen to trong mang la'); For i:=1 to n do If (a[i]>=2) and NT(a[i]) then Begin Write(a[i]:7); dem:= dem+1; End; Writeln; Writeln('so phan tu la so nguyen to trong mang la:',dem) ; Readln;End. 0,5 1,5 0,5 1,5 0,5 0,5 0,5 0,5 Ghi chỳ: Học sinh cú thể khụng sử dụng chương trỡnh con nhưng chạy đỳng kết quả test vẫn cho điểm tối đa. Bụ̣ Test thử N = 6;a[1]=3; a[2]=-12; a[3]=-789; a[4]=71; a[5]=8; a[6]=3456; Mang sau khi sap xep: -789 -12 3 8 71 3456 Nhung so nguyen to trong mang 3 71 So phan tu la so nguyen to trong mang la: 2
Tài liệu đính kèm: