Tải bản đầy đủ (.pdf) (7 trang)

Đáp án HSG Tin học lớp 9 Krông Ana, Đắk Lắk 2015-2016 - Học Toàn Tập

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 )

(1)

PHỊNG GD&ĐT KRƠNG ANA


KỲ THI HỌC SINH GIỎI CẤP HUYỆN NĂM HỌC 2015-2016
ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM


Môn: Tin học 9
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ÀI 1(4,0 điểm): SỐ LƯỢNG


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;


WRITE('NHAP N= ');READLN(N);WRITELN;
WRITE('NHAP GIA TRI DAY A: '); WRITELN;
FOR I:=1 TO N DO



BEGIN


WRITE('A[',I,']= '); READLN(A[I]);
END; WRITELN;


WRITE('DAY VUA NHAP: ');


FOR I:=1 TO N DO WRITE(A[I]:4); WRITELN;
WRITE('NHAP K= ');READLN(K); WRITELN;


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;


IF D<>0 THEN
BEGIN


WRITE('SO LUONG PHAN TU CHIA HET: ',D:2); WRITELN;
WRITE('VI TRI CAC PHAN TU: ');


FOR I:=1 TO D DO WRITE(B[I]:3);WRITELN;


WRITE('GIA TRI CAC PHAN TU: ');


FOR I:=1 TO D DO WRITE(C[I]:3);WRITELN;
END


ELSE WRITE('KHONG CO PHAN TU NAO CHIA HET CHO ',K);


READLN
END.


1.0


1.0



(2)

BỘ TEST CHƯƠNG TRÌNH:
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ÀI 2(4,0 điểm): CHUẨN HĨA XÂU


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;



(3)

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;


WRITE('SO LUONG KY TU IN THUONG: ',D) ;WRITELN;
WRITE('SO LUONG KY TU IN HOA : ',D1);WRITELN;
WRITE('SO LUONG KY TU CHU SO : ',D2);WRITELN;


READLN
END.


1.0



(4)

BỘ TEST CHƯƠNG TRÌNH:
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ÀI 3(6,0 điểm):DÃY CON CHUNG


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);


DEM:=0;T:=1;K:=1;


FOR I:=1 TO N DO
BEGIN


FOR J:=1 TO M DO



(5)

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);


END;


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Ộ TEST CHƯƠNG TRÌNH:
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


1 2 4
TEST 2:


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




(6)

BÀI 4(6,0 điểm): TÌM SỐ


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


VAR X,Y,P,Q,I:INTEGER;
F,F1: TEXT;


BEGIN


ASSIGN(F,'BAI4.INP'); RESET(F);
ASSIGN(F1,'BAI4.OUT');REWRITE(F1);


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);
CLOSE(F);


CLOSE(F1);


END.


1.0


1.5
0.5
BỘ TEST CHƯƠNG TRÌNH:


TEST 1:


BAI4.INP BAI4.OUT


5 20 5



(7)

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


Ghi chú:


- 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.





×