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

Đáp án HSG Tin học lớp 9 cấp huyện Krông Ana, Đắk Lắk 2014-2015 - 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 (290.77 KB, 5 trang )

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

PHỊNG GD&ĐT KRƠNG ANA <b>ĐỀ THI HỌC SINH GIỎI CẤP HUYỆN </b>
<b>KHĨA NGÀY 09/02/2015 </b>


<b>MƠN: TIN HỌC 9 </b>
Thời gian làm bài: 150 phút


<b>ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM </b>
<b>Yêu cầu chung: </b>


- 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 q 50% số điểm của câu.


<b>Bài 1: (4,0 điểm) Cho bài toán cổ sau: </b>


Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già.
Ba con một bó.


Viết chương trình tính và đưa ra màn hình số trâu mỗi loại.


Chương trình tham khảo Điểm


{Goi x = trau dung. y = trau nam. z = trau gia.}
program BAI_1;



uses crt;


var x,y,z: byte;


1.0
Begin


clrscr;


for x:= 1 to 20 do {x nhan gia tri tu 1 den 20}
for y:=1 to 33 do {x nhan gia tri tu 1 den 33}
begin


z:= 100 - x - y;
if z mod 3 = 0 then


if x*5 + y*3 + z/3 = 100 then
begin


writeln('So trau dung: ',x:3);
writeln('So trau nam : ',y:3);
writeln('So trau gia : ',z:3);
end;


end;
readln
end.


1.0



2.0


Kết quả chương trình


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

Trâu đứng 4 8 12


Trâu nằm 18 11 4


Trâu già 78 81 84


<b>Bài 2: (5,0 điểm) Tổng đường chéo chính </b>


Cho ma trận vng NxN (1 < N <= 100) phần tử. Em hãy viết chương trình tính
tổng các phần tử nằm trên đường chéo chính của ma trận.


Chương trình tham khảo Điểm


Program Bai_2;
uses crt;


var Tong_CC,i,j,n:integer;


A:array[1..100,1..100] of integer; 1.0
Begin


Clrscr;


repeat


write('nhap so hang,so cot n:=');


readln(n);


until (n > 1) and (N <=100);


1.0


writeln('Nhap gia tri hang, cot');
for i:=1 to n do


for j:=1 to n do
Begin


write('a[',i,',',j,']:= '); readln(a[i,j]);
end;


writeln('Mang vua nhap la:');
for i:=1 to n do


begin


for j:=1 to n do
write(a[i,j]:4);
writeln;


end;


1.0


0.5



Tong_CC:=0;
Begin


for i:=1 to n do


for j:=1 to n do
if i=j then


Tong_CC:=Tong_CC+A[i,j];


Writeln('Tong cac phan tu duong cheo chinh
la: ',Tong_CC);


end;
Readln;
End.


1.0


0.5


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

Tong cac phan tu duong cheo chinh la: 6


Test 2: N = 3


12 20 15 Kết quả Tong_CC: 24
10 9 7


4 2 3


Test 3: N = 4


4 7 8 9


6 5 10 18 Kết quả Tong_CC: 43
25 30 16 15


11 12 17 18
Test 3: N = 5


1 2 3 4 5


6 7 8 9 10 Kết quả Tong_CC: 28
5 4 3 2 1


2 4 6 8 10
1 3 5 7 9


<b>Bài 3: (5,0 điểm) Cực tiểu địa phương </b>


Xét dãy số nguyên <i>A</i>

<i>a a</i>1, 2,...<i>aN</i>

 

3<i>N</i>35

. Số <i>ai</i> được gọi là <i>Cực tiểu địa </i>


<i>phương</i> nếu thỏa mãn một trong các điều kiện sau:


- <i>i</i>1 và <i>a</i>1<i>a</i>2;


- <i>ai</i> <i>ai</i>1 và <i>ai</i> <i>ai</i>1,<i>i</i>2,3,...,<i>N</i>1;


- <i>i</i><i>N</i> và <i>aN</i> <i>aN</i>1;



Viết chương trình đếm và đưa ra màn hình số lượng các cực tiểu địa phương và
vị trí các cực tiểu địa phương trong dãy.


Chương trình tham khảo Điểm


uses crt;


var A:Array[1..100]of Integer;


i,n,dem:integer; 0.5


Begin
clrscr;
Repeat


Write('Nhap N:= '); Readln(n);
Until (N>=3) And (N<=35);


1.0


Writeln('Nhap gia tri phan tu cua day:');
For i:=1 to n do


begin


Write('a[',i,']= '); readln(a[i]);
end;


write('Day vua nhap:');



For i:=1 to n do write(a[i]:6);


1.0


write('Vi tri cac so cuc tieu: ');
dem:=0;


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

Begin


dem:=dem +1; write(1);
end;


for i:=2 to n - 1 do


if (a[i] < a[i-1])and (a[i] < a[i+1]) then
begin


dem:=dem+1;
write(i:3);
end;


if a[n] < a[n-1] then
Begin


dem:=dem + 1;
write(n:3);
end;


write('So luong cuc tieu dia phuong trong day


la:',dem:3);


readln
End.


1.0


1.0


0.5


<b>Bộ Test thử </b>


Nhập N= Nhập dãy số Kết quả hoặc thông báo


2 <b>Nhap N = </b>


50 <b>Nhap N = </b>


4 2 3 4 5


Day vua nhap la: 2 3 4 5


Vi tri cac so cuc tieu trong day: 1


So luong cuc tieu dia phuong trong day la: 1
5 4 6 3 8 5


Day vua nhap la: 4 6 3 8 5



Vi tri cac so cuc tieu trong day: 1 3 5


So luong cuc tieu dia phuong trong day la: 3
8 10 4 8 7 15 10


16 30


Day vua nhap la: 10 4 8 7 15 10 16 9
Vi tri cac so cuc tieu trong day: 2 4 6 8
So luong cuc tieu dia phuong trong day la: 4
<b>Bài 4: (6,0 điểm) Dãy số đặc biệt</b><i> </i>


Dãy số A1, A2,..., AN được gọi là dãy số đặc biệt nếu nó thoả mãn các điều kiện:


 Là dãy số giảm dần;


 Với mỗi Ai thì Ai hoặc là số nguyên tố hoặc là ước của một trong các số từ A1


đến Ai-1.


Em hãy tìm dãy số đặc biệt dài nhất bắt đầu từ N.
<b>Yêu cầu: </b>


<b>- Dữ liệu : Nhập từ bàn phím là một số nguyên dương N (1< N < 100). </b>


<b>- Kết quả: Đưa ra màn hình là dãy số tìm được, các số ghi cách nhau 1 dấu cách. </b>


Chương trình tham khảo Điểm


Uses crt;



var i,n,d,k,l,t,tg: integer;


a,b:array[1..100] of integer; 0.5
function nto(x:integer):boolean;


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

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;
nto:=kt;


end;


0.5


1.0


Begin
Clrscr;
Repeat


write('Nhap N= ');


readln(n);


Until (N > 1)and (N < 100);
l:=1;


for i:=1 to n do


if (nto(i)=true)or(n mod i =0) then
begin


b[l]:=i;
l:=l+1;
end;


0.5


1.0


for k:=l-1 downto 2 do
for t:=1 to k-1 do
if b[t] < b[t+1] then
begin


tg:=b[t];


b[t]:=b[t+1];
b[t+1]:=tg;
end;


write'Day dac biet la: ');



for d:=1 to l-1 do write(b[d]:3);
Readln


end.


1.0


1.0


0.5


<b>Bộ Test thử </b>


Nhập N= Kết quả hoặc thơng báo trên màn hình
7 Day dac biet la: 7 5 3 2 1


9 Day dac biet la: 9 7 5 3 2 1
12 Day dac biet la: 12 11 7 5 3 2 1
17 Day dac biet la: 17 13 11 7 5 3 2 1


20 Day dac biet la: 20 19 17 13 11 10 7 5 4 3 2 1


</div>

<!--links-->

×