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: