Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (187.92 KB, 7 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>PHỊNG GD&ĐT KRƠNG ANA </b>
<b>KỲ THI HỌC SINH GIỎI CẤP HUYỆN NĂM HỌC 2015-2016 </b>
<b>ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM </b>
<b>Môn: Tin học 9 </b>
Yêu cầu chung:
- 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 tốn, mỗi
ý đúng cho điểm không vượt quá 50% số điểm của câu.
<b>BÀI 1(4,0 điểm): SỐ LƯỢNG</b>
Chương trình tham khảo Điểm
PROGRAM BAI_1;
USES CRT;
VAR A,B,C:ARRAY[1..100]OF INTEGER;
N,I,J,K,L,D:INTEGER;
1.0
BEGIN CLRSCR;
<i>WRITE('NHAP N= ');READLN(N);WRITELN; </i>
<i> WRITE('NHAP GIA TRI DAY A: '); WRITELN; </i>
<i> FOR I:=1 TO N DO </i>
<i> BEGIN </i>
<i> WRITE('A[',I,']= '); READLN(A[I]); </i>
<i> END; WRITELN; </i>
<i> WRITE('DAY VUA NHAP: '); </i>
<i> FOR I:=1 TO N DO WRITE(A[I]:4); WRITELN; </i>
<i> WRITE('NHAP K= ');READLN(K); WRITELN; </i>
J:=1;L:=1;D:=0;
FOR I:=1 TO N DO
IF A[I] MOD K = 0 THEN
BEGIN
D:=D+1;
B[J]:=I; C[L]:=A[I];
J:=J+1; L:=L+1;
END;
<i>IF D<>0 THEN </i>
<i> BEGIN </i>
<i> WRITE('SO LUONG PHAN TU CHIA HET: ',D:2); WRITELN; </i>
<i> WRITE('VI TRI CAC PHAN TU: '); </i>
<i> FOR I:=1 TO D DO WRITE(B[I]:3);WRITELN; </i>
<i> FOR I:=1 TO D DO WRITE(C[I]:3);WRITELN; </i>
<i> END </i>
<i> ELSE WRITE('KHONG CO PHAN TU NAO CHIA HET CHO ',K); </i>
READLN
END.
1.0
1.0
<b>BỘ TEST CHƯƠNG TRÌNH: </b>
TEST 1:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
N = 5 So luong: 3
A = {2 5 8 10 9} Vi tri: 1 3 4
K = 2 Gia tri: 2 8 10
TEST 2:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
N = 6 So luong: 4
A = {3 12 8 15 9 7} Vi tri: 1 2 4 5
K = 3 Gia tri: 3 12 15 9
TEST 3:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
N = 7, A = {12 10 8 1 3 5 6},
K = 7
Khong co phan tu chia het cho K
<b>BÀI 2(4,0 điểm): CHUẨN HĨA XÂU </b>
Chương trình tham khảo Điểm
PROGRAM BAI_1;
USES CRT;
VAR ST:STRING;
I,D,d1,d2:INTEGER;
1.0
BEGIN
WRITE('NHAP XAU: '); READLN(ST); WRITELN; 0.5
WHILE ST[1]=' ' DO DELETE(ST,1,1);
WHILE ST[LENGTH(ST)]=' ' DO DELETE(ST,LENGTH(ST),1);
WHILE POS(' ',ST)<>0 DO DELETE(ST,POS(' ',ST),1);
WRITE('XAU CHUAN HOA: ',ST);WRITELN;
D:=0; D1:=0; D2:=0;
FOR I:=1 TO LENGTH(ST) DO
BEGIN
IF ST[I]IN['a'..'z'] then D:=D+1;
IF ST[I]IN['A'..'Z'] then D1:=D1+1;
IF ST[I]IN['0'..'9'] then D2:=D2+1;
end;
<i>WRITE('SO LUONG KY TU IN THUONG: ',D) ;WRITELN; </i>
<i> WRITE('SO LUONG KY TU IN HOA : ',D1);WRITELN; </i>
<i> WRITE('SO LUONG KY TU CHU SO : ',D2);WRITELN; </i>
READLN
END.
1.0
<b>BỘ TEST CHƯƠNG TRÌNH: </b>
TEST 1:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
HoC sINh89 gIoI 2016
Xau chuan hoa: HoC sINh89 gIoI 2016
So luong chu cai in thong : 5
So luong chu cai in hoa : 6
So luong chu so trong xau : 6
TEST 2:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
TiN hOc Lop 9
Xau chuan hoa: TiN hOc Lop 9
So luong chu cai in thong : 5
So luong chu cai in hoa : 4
So luong chu so trong xau : 1
TEST 3:
Dữ liệu nhập từ bàn phím Kết quả in ra màn hình
SACH GIAO KHOA
Xau chuan hoa: SACH GIAO KHOA
So luong chu cai in thong : 0
So luong chu cai in hoa : 12
So luong chu so trong xau : 0
<b>BÀI 3(6,0 điểm):DÃY CON CHUNG</b>
Chương trình tham khảo Điểm
VAR
A,B,C,D,G:ARRAY[1..100]OF INTEGER;
M,N,I,J,L,DEM,T,K:INTEGER;
F:TEXT;
1.0
BEGIN
WRITE('NHAP N:= ');READLN(N); WRITELN;
FOR I:=1 TO N DO
BEGIN
WRITE('A[',I,']= ');
READLN(A[I]);
END; WRITELN;
WRITE('NHAP M:= ');READLN(M); WRITELN;
FOR I:=1 TO M DO
BEGIN
WRITE('B[',I,']= ');
READLN(B[I]);
END; WRITELN;
1.5
ASSIGN(F,'BAI3.OUT');REWRITE(F);
FOR I:=1 TO N DO
BEGIN
FOR J:=1 TO M DO
IF A[I]=B[J] THEN
BEGIN
DEM:=DEM+1;
C[T]:=I;
D[K]:=J;
T:=T+1;
K:=K+1;
END;
END;
1.0
WRITE(F,DEM);WRITELN(F);
FOR I:=1 TO N DO
BEGIN
FOR J:=1 TO M DO
IF A[I]=B[J] THEN WRITE(F,A[I]:3);
WRITELN(F);
FOR I:=1 TO DEM DO WRITE(F,C[I]:3);
WRITELN(F);
FOR I:=1 TO DEM DO WRITE(F,D[I]:3);
CLOSE(F);
END.
1.5
<b>BỘ TEST CHƯƠNG TRÌNH: </b>
TEST 1:
BÀN PHÍM BAI3.OUT
5
11 3 1 12 6
4
3 12 7 6
3
3 12 6
2 4 5
BÀN PHÍM BAI3.OUT
6
2 4 5 7 8 10
5
4 5 7 8 9
4
4 5 7 8
2 3 4 5
1 2 3 4
TEST 3:
BÀN PHÍM BAI3.OUT
7
1 3 4 7 10 8 9
6
1 4 6 10 12 9
4
<b>BÀI 4(6,0 điểm): TÌM SỐ</b><i> </i>
Chương trình tham khảo Điểm
FUNCTION NG_TO(X:INTEGER):BOOLEAN;
VAR J: INTEGER;
KT: BOOLEAN;
BEGIN
KT:= TRUE;
IF X = 1 THEN KT:= FALSE
ELSE
FOR J:= 2 TO X DIV 2 DO
IF X MOD J = 0 THEN KT:= FALSE;
NG_TO:= KT;
END;
1.5
FUNCTION DAO_SO(Y: INTEGER): INTEGER;
VAR S:INTEGER;
BEGIN
S:=0;
WHILE Y<>0 DO
BEGIN
S:=S*10 + (Y MOD 10);
Y:= Y DIV 10;
END;
DAO_SO:=S;
END;
1.5
<i>VAR X,Y,P,Q,I:INTEGER; </i>
<i> F,F1: TEXT; </i>
<i>BEGIN </i>
<i> ASSIGN(F,'BAI4.INP'); RESET(F); </i>
<i> ASSIGN(F1,'BAI4.OUT');REWRITE(F1); </i>
WRITE(F1,'CAC SO CAN TIM');WRITELN(F1);
READ(F,P,Q);
FOR I:= P TO Q DO
IF NG_TO(DAO_SO(I))=TRUE THEN WRITELN(F1,I:3);
<i>CLOSE(F); </i>
<i> CLOSE(F1); </i>
1.0
1.5
0.5
<b>BỘ TEST CHƯƠNG TRÌNH: </b>
TEST 1:
BAI4.INP BAI4.OUT
5 20 5
TEST 2:
BAI4.INP BAI4.OUT
10 25 11
13
14
16
17
20
TEST 3:
BAI4.INP BAI4.OUT
25 50 30
31
32
34
35
37
38
50
<b>Ghi chú: </b>
- Học sinh có thể viết chương trình khác nhưng chạy đúng kết quả test vẫn cho
điểm tối đa.