phßng gi¸o dôc vµ ®µo t¹o cÈm khª kú thi chän häc sinh giái c¸c m«n v¨n ho¸ líp 9 cÊp huyÖn §Ò chÝnh thøc n¨m häc 2012 - 2013 ®Ò thi 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.(6,0 điểm) Viết chương trình nhập số tự nhiên n (n ≤ 1000) và tính giá trị biểu thức Sn: Tên tập tin: D:\THI\Bai1.pas Bài 2. (8,0 điểm) Nhập vào số tự nhiên N (1 < N < 65000). Hãy kiểm tra số N vừa nhập có phải là số nguyên tố không? Nếu đúng thì thông báo ra màn hình đây là số nguyên tố, ngược lại thì phân tích số N thành tích các thừa số ngyuên tố. Ví dụ: Dữ liệu vào Dữ liệu ra Nhap mot so tu nhien: 5 Nhap 1 so tu nhien: 15 Nhap 1 so tu nhien: 3456 5 la so nguyen to 15 duoc tach thanh tich cac thua so nguyen to: 3.5 2.2.2.2.2.2.2.3.3.3 Tên tập tin: D:\THI\Bai2.pas Bài 3. (6,0 điểm) NhËp vµo mét m¶ng c¸c sè nguyªn. S¾p xÕp m¶ng theo thø tù t¨ng dÇn. Tên tập tin: D:\THI\Bai3.pas ----------------Hết------------------ (Cán bộ coi thi không giải thích gì thêm) HƯỚNG DẪN CHẤM MÔN TIN HỌC LỚP 8 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. (6,0 điểm). Viết chương trình nhập số tự nhiên n (n≤100) và tính giá trị biểu thức Sn: Chương trình Điểm Program Bai1; Uses Crt; Var n,i:Integer; s:Real; 1 BEGIN ClrScr; Write(‘Nhap so tu nhien n= ');Readln(n); 1 s:=0; For i:=1 to n do s:=s+1/(i*(i+1)); 2 Write(‘s=’,s:4:4); 1 Readln; END. 1 Bộ Test thử n nhập vào Kết quả S trên màn hình 1 0.333 10 0.663 100 0.740 1000 0.749 Câu 2 (7 điểm) Nhập vào số tự nhiên N (1 < N < 65000). Hãy kiểm tra số N vừa nhập có phải là số nguyên tố không ? Nếu đúng thì thông báo ra màn hình đây là số nguyên tố, ngược lại thì phân tích số N thành tích các thừa số ngyuên tố. Chương trình Điểm Program Bai2; Uses Crt; Var m, n: Longint; dem, i: integer; 0.5 Begin repeat ClrScr; Write(‘Nhap mot so tu nhien: ');Readln(n); Until (n>1) and (n<=65000); i:=2; While (n mod i 0 do i:= i+1; if i = n then Writeln (n, ' la so nguyen to') else {tach so n thanh cac thua so nguyen to} 2 Begin dem:=0; m:=n; Write (n, 'duoc tach thanh cac thua so nguyen to = '); While (m mod 2 = 0) do 1.25 Begin diem:=diem+1; m:=m div 2; Write('2'); if m>0 then write ('.'); End; 1.25 i:=3; While (m > 2) do Begin While (m mod i = 0) do 1 Begin dem:=dem+1; m:=m div i; Write (i); if m>2 then Write ('.'); End; i:=i+2; End; End; Readln; End. 2 Bộ Test thử Dữ liệu vào Dữ liệu ra Nhap mot so tu nhien: 5 Nhap 1 so tu nhien: 15 Nhap 1 so tu nhien: 3456 5 la so nguyen to 15 duoc tach thanh tich cac thua so nguyen to: 3.5 2.2.2.2.2.2.2.3.3.3 Bài 3. (6,0 điểm) NhËp vµo mét m¶ng c¸c sè nguyªn. S¾p xÕp m¶ng theo thø tù t¨ng dÇn.. Tên tập tin: D:\THI\Bai3.pas Chương trình Điểm Program Bai3; Uses CRT; Var a:array[1..100] of Integer; i, j, n,tg:Integer; 1 BEGIN Write(‘ Nap vao so phan tu cua mang n=’);readln(n); For i:=1 to n do 1 Begin Write(‘ Nhap vao phan tu thu a[‘,i,’]=’); readln(a[i]); end; 1 For i:=1 to n-1 do For j:=i+1 to n do if a[i]>a[j] then 1 Begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; 1 For i:=1 to n do Write(a[i]:6); Readln; END. 1
Tài liệu đính kèm: