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 )

<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> WRITE('GIA TRI CAC PHAN TU: '); </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


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

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


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=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;


<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


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

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


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


FOR I:=1 TO N DO
BEGIN


FOR J:=1 TO M DO


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=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>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


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



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

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


<i>END.</i>


1.0


1.5
0.5
<b>BỘ TEST CHƯƠNG TRÌNH: </b>


TEST 1:


BAI4.INP BAI4.OUT


5 20 5


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=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


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


</div>

<!--links-->

×