PHỊNG GD&ĐT TP. LÀO CAI
TRƯỜNG THCS LÝ TỰ TRỌNG
ĐỀ CHÍNH THỨC
ĐỀ THI CHỌN HSG LỚP 9 CẤP TRƯỜNG
NĂM HỌC 2018 - 2019
Môn: Tin học
(Thời gian làm bài 150 phút không kể thời gian giao đề )
(Đề thi có 01 trang)
Câu 1. (6 điểm): Em hãy sử dụng phần mềm
Scratch để thực hiện các cơng việc sau:
a) Vẽ hình ở bên phải.
b) Nhập vào một số nguyên 𝑁, tính tổng các chữ
số tạo thành nó?
Ví dụ: với 𝑁=123 thì in ra tổng các chữ số bằng 6;
với 𝑁=12345 thì in ra tổng các chữ số bằng 15.
c) In ra số đảo ngược của một số vừa nhập vào:
Ví dụ: Nhập vào số 123 thì in ra số 321.
Câu 2. (4 điểm): Nhập vào từ bàn phím một số nguyên dương 𝑁, sau đó nhập
một dãy có 𝑁 số nguyên dương 𝑎1, 𝑎2 , 𝑎3 , … . 𝑎𝑁 (𝑁 ≤ 100, 0 ≤ 𝑎𝑖 ≤ 9). Em hãy
sử dụng tất cả các số trong dãy vừa nhập để in ra số nguyên dương lớn nhất, bé nhất
có thể tạo thành từ các số trên?
Ví dụ: Nhập vào dãy số: 1, 0, 0, 2, 3, 4, 9, 1, 9 là số lớn nhất là: 994321100, số
bé nhất là: 100123499.
Câu 3. (6 điểm): Nhập vào từ bàn phím một số nguyên dương 𝑁, sau đó nhập
một dãy có 𝑁 số nguyên dương: 𝑎1 , 𝑎2, 𝑎3 , … . 𝑎𝑁 (3 ≤ 𝑁 ≤ 100).
a) Đếm xem trong dãy trên có bao nhiêu số nguyên tố?
b) Đếm xem trong dãy trên có bao nhiêu bộ 3 số 𝑎𝑖 , 𝑎𝑗 , 𝑎𝑘 (𝑖 ≠ 𝑗 ≠ 𝑘) thỏa mãn
2
𝑎𝑖 + 𝑎𝑗2 = 𝑎2𝑘 . Bộ 3 số thỏa mãn tính chất này được gọi là bộ số Pytago.
c) Tìm ước chung lớn nhất của tất cả các số trong dãy trên.
Câu 4. (4 điểm): Có một con ốc sên bị lên một chiếc cọc cao 𝐻, cứ vào ngày
lẻ thì: ban ngày nó bị lên một đoạn có độ dài 𝑎1, ban đêm nó lại bị xuống một đoạn
độ dài 𝑏1 ; cịn vào ngày chẵn thì: ban ngày nó bị lên một đoạn có độ dài 𝑎2, ban
đêm nó lại bị xuống một đoạn độ dài 𝑏2 . Hỏi sau bao nhiêu ngày thì nó bị lên đến
đỉnh cọc. Biết 𝐻, 𝑎1, 𝑏1 , 𝑎2 , 𝑏2 là các số nguyên dương được nhập vào từ bàn phím
thỏa mãn: 𝑎1 ≥ 𝑏1 ; 𝑎2 ≥ 𝑏2 ; 𝐻 ≥ 𝑎1; 𝐻 ≥ 𝑎2 và ngày đầu tiên là ngày lẻ.
Ví dụ: 𝐻 = 10; 𝑎1 = 4; 𝑏1 = 2; 𝑎2 = 3; 𝑏2 = 2 thì sau 5 ngày con ốc sên lên
được đến đỉnh cọc.
--------------HẾT-------------Họ và tên học sinh:....................................................................SBD:.................
PHÒNG GD&ĐT TP. LÀO CAI
TRƯỜNG THCS LÝ TỰ TRỌNG
HDC THI CHỌN HSG LỚP 9 CẤP TRƯỜNG
NĂM HỌC 2018 - 2019
Môn: Tin học
HDC CHÍNH THỨC
Nguyên tắc chấm:
- Dựa theo bài làm của học sinh để cho điểm,
- Chấm cả ý tưởng về thuật toán của học sinh trong trường hợp chương trình
chưa hồn thiện.
- Học sinh giải bằng cách khác, tuy nhiên cho cùng kết quả đúng cuối cùng
vẫn cho đủ số điểm thành phần.
- Dữ liệu nhập vào để kiểm tra chương trình phải đảm bảo chính xác, khơng
bắt bí học sinh, do vậy học sinh không cần phải kiểm tra tính hợp lệ của
dữ liệu nhập vào.
Bài 1: Chấm dựa theo chương trình chạy của học sinh.
Bài 2:
var a:array[1..100] of integer;
n,i,j:integer;
procedure sapxep();
var i,j,tg:integer;
begin
for i:=1 to n do
for j:=i+1 to n do
if (a[i]>a[j]) then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
end;
BEGIN
write('Nhap so chu so N= ');
readln(n);
for i:=1 to n do
begin
write('Nhap so hang thu ',i, ': ');
readln(a[i]);
end;
sapxep();
write('So lon nhat duoc tao thanh la: ');
for i:=n downto 1 do
write(a[i]);
writeln;
i:=1;
1,5đ
0,5 đ
0,5 đ
while (a[i]=0) do inc(i);
if (a[1]=0) then
begin
a[1]:=a[i]; a[i]:=0;
end;
write('So be nhat duoc tao thanh la: ');
for i:=1 to n do write(a[i]);
readln
END.
1,5 đ
Bài 3:
var n,i,j,k,uc,demNguyento,demPytago:integer;
a:array[1..100] of integer;
procedure sapxep();
var i,j,tg:integer;
begin
for i:=1 to n do
for j:=i+1 to n do
if (a[i]>a[j]) then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
end;
function ktnt(n:integer):boolean;
var i,dem:integer;
begin
dem:=0;
for i:=1 to n do
if (n mod i=0) then inc(dem);
if (dem=2) then ktnt:=true else ktnt:=false;
end;
function ucln(a,b:integer): integer;
var i:integer;
begin
for i:=1 to a do
if (a mod i =0) and (b mod i=0) then ucln:=i;
end;
BEGIN
write('Nhap so chu so N= ');
readln(n);
for i:=1 to n do
begin
write('Nhap so hang thu ',i,': ');
readln(a[i]);
end;
demNguyento:=0;
demPytago:=0;
for i:=1 to n do
if (ktnt(a[i])) then inc(demNguyento);
writeln('Day so vua nhap co: ',demNguyento,' so nguyen to');
1,0 đ
1,0đ
1,0 đ
1,0đ
sapxep();
demPytago:=0;
for i:=1 to n-2 do
for j:=i+1 to n-1 do
for k:=j+1 to n do
if (a[i]*a[i]+a[j]*a[j]=a[k]*a[k]) then inc(demPytago);
writeln('Day so vua nhap co: ',demPytago,' bo so Pytago');
uc:=ucln(a[1],a[2]);
for i:=3 to n do
uc:=ucln(uc,a[i]);
writeln('Uoc chung lon nhat cua day so tren la: ',uc);
readln;
END.
1,0đ
1,0đ
Bài 4:
var h,a1,a2,b1,b2,songay,docao:integer;
BEGIN
write('Nhap du lieu vao theo thu tu H, a1, a2, b1, b2: ');
readln(H, a1, b1, a2, b2);
docao:=0;
songay:=1;
0,5đ
while (docao
begin
if (songay mod 2=1) then
if (docao+a1>=H) then break
else
begin
docao:=docao+a1-b1;
inc(songay);
end;
1,5đ
if (songay mod 2=0) then
if (docao+a2>=H) then break
else
begin
docao:=docao+a2-b2;
inc(songay);
end;
end;
1,5đ
writeln;
write('So ngay de oc sen leo len den dinh co la: ',songay);
readln;
END.
0,5đ