UBND HUYỆN EAKAR PHÒNG GIÁO DỤC VÀ ĐÀO TẠO ĐỀ CHÍNH THỨC (Đề này gồm 03 trang) KỲ THI CHỌN HỌC SINH GIỎI TRUNG HỌC CƠ SỞ CẤP HUYỆN NĂM HỌC 2022 2023 MÔN THI TIN HỌC Thời gian 150 phút (Không kể thời g[.]
Trang 1UBND HUYỆN EAKAR
PHÒNG GIÁO DỤC VÀ ĐÀO
TẠO
KỲ THI CHỌN HỌC SINH GIỎI TRUNG HỌC CƠ SỞ CẤP HUYỆN
NĂM HỌC: 2022 - 2023 MÔN THI: TIN HỌC
Thời gian: 150 phút (Không kể thời gian giao đề)
Ngày thi: 07/01/2023
Hướng dẫn:
- Tạo thư mục có tên SBDxxx vào ổ đĩa D
- Lưu bài theo đường dẫn D:\SBDxxx\Bai1 (Bai2, Bai3, Bai4, Bai5)
Trong đó: xxx là số báo danh của thí sinh; Ví dụ: D:\SBD003\Bai1
- Copy tất cả nội dung các bài đã làm vào File Word Đặt tên SBDxxx.doc
- Học sinh tắt chế độ gõ Tiếng Việt trước khi làm bài
Bài 1: (4,0 điểm) CHIA LẤY DƯ Tên chương trình: sodu
Cho N là một số nguyên dương và T=1 2 3 … N Gọi K là phần dư của phép chia T cho số nguyên dương Q
Yêu cầu: Tìm giá trị của K.
Dữ liệu vào: Nhập hai số nguyên dương N, Q (1 ¿ N, Q ¿ 106) cách nhau một khoảng trắng
Dữ liệu ra: Ghi số nguyên dương K là phần dư của phép chia T cho Q.
Ví dụ:
Dữ liệu vào Dữ liệu ra
Bài 2: (4,0 điểm) SỐ NGUỒN Tên chương trình:
songuon
Một số nguyên dương N được gọi là số nguồn của số nguyên M nếu M là tổng của N với các chữ số của nó Ví dụ: N=245 sẽ là số nguồn của số M=256 (vì M = 245 + 2 + 4+ 5) Có những số nguyên dương không có số nguồn và có số lại có nhiều số nguồn Ví dụ: số 7 thì không có số nguồn, còn số 216 có 2 số nguồn là 198 và 207
Yêu cầu: Tìm số nguồn nhỏ nhất của nó.
Dữ liệu vào: Nhập từ bàn phím số nguyên dương M (0<M<10000)
Dữ liệu ra: Đưa ra kết quả là số nguồn nhỏ nhất của số M, nếu M không có số nguồn
thi ghi “NO”
Ví dụ:
Dữ liệu vào Dữ liệu ra
Bài 3: (5,0 điểm) XE BUÝT Tên chương trình: bus
Có một trạm xe buýt ở vùng quê nọ rất uy tín với khách nhờ việc lập lịch khoa học và phục vụ tốt Chuyến xe buýt khởi hành đầu tiên đi về các tuyến vào buổi sáng
ĐỀ CHÍNH THỨC
(Đề này gồm 03 trang)
Trang 2bắt đầu thời gian T và cách một khoảng thời gian D lại có chuyến xe kế tiếp khởi hành
để chở khách Mỗi ngày doanh nghiệp xe buýt này có đủ chuyến để phục vụ khách, chuyến thứ i khởi hành vào lúc T + (i-1)xD, chuyến 1 khởi hành vào thời điểm T
Có N hành khách thường xuyên đi xe buýt tại bến, hành khách thứ i đến bến ở thời điểm Ai và muốn người quản lý trạm xe buýt cho biết rõ chuyến đi để chủ động công vệc
Yêu cầu: Cho N, T, D và thời điểm hành khách tới bến, hãy giúp nhà quản lý trạm xe
xác định số thứ tự chuyến xe buýt để hành khách đi
Dữ liệu vào:
- Dòng 1: Ba số nguyên N, D, T (2≤N≤100; 1≤D≤100; 0≤T≤100)
- Dòng 2: Chứa N số nguyên A1, A2, …, An (0≤Ai≤1000)
Dữ liệu ra: Gồm một dòng chứa N số nguyên dương, mỗi số nguyên dương là số thứ
tự chuyến xe buýt mà hành khách đi
Ví dụ:
Dữ liệu vào Dữ liệu ra
3 5 8
0 15 23
1 3 4
Bài 4: (5,0 điểm) CHI PHÍ Tên chương trình: chiphi
Từ địa điểm A đến địa điểm B có một số con đường đi, trên mỗi đường đi tốn một chi phí riêng, chi phí là một số nguyên từ 1 đến 9 Tương tự từ B đến C, từ C đến
D, … cũng vậy, xem hình minh họa sau:
Yêu cầu: Cho biết có bao nhiêu cách đi từ điểm đầu tiên đến điểm cuối cùng (đường đi
phải qua tất cả các điểm) và đi theo đường nào để tốn chi phí thấp nhất
Dữ liệu vào: Nhập từ bàn phím xâu S
Dữ liệu ra: Xuất ra màn hình:
- Dòng 1: Một số nguyên cho biết số cách có thể đi từ điểm đầu đến điểm cuối
mà phải qua tất cả các điểm
- Dòng 2: Một chuỗi cho biết đường đi từ điểm đầu đến điểm cuối cùng với chi phí thấp nhất giữa các điểm
Ví dụ:
Chuỗi nhập vào Xuất ra màn
A2143B213C74D2756E 96
A1B1C4D2E
A qua B có 4 cách, B qua C có 3 cách,
C qua D có 2 cách, D qua E có 4 cách
=> có 4*3*2*4=96 cách đi từ A đến E
Từ A qua B có chi phí thấp nhất là 1
Từ B qua C có chi phí thấp nhất là 1
Từ C qua D có chi phí thấp nhất là 4
2 1 4 3
2 1 3
7
4
2 7 5 6
Điểm đầu
Điểm cuối
Trang 3Từ D qua E có chi phí thấp nhất là 2
Bài 5: (2,0 điểm) ĐƯỜNG CHÉO Tên chương trình:
duongcheo
Cho một bảng A gồm N x N số nguyên, các dòng được đánh số trên xuống dưới bắt đầu từ 1, các cột được đánh số từ trái qua phải cũng bắt đầu từ 1 Mỗi số trong bảng
có giá trị tuyệt đối không vượt quá 10000 Đường chéo chính của bảng là đường thẳng nối hai ô (1,1) và (N,N) Như vậy trên bảng có (2N-1) đuờng chéo song song với đường chéo chính
Yêu cầu: Hãy tìm độ dài đường chéo song song với đường chéo chính có tổng các phần tử trên đường chéo đó là lớn nhất.
Dữ liệu vào:
- Dòng 1: Số nguyên dương N (0≤N≤100)
- N dòng tiếp theo: Mỗi dòng chứa N số nguyên lần lượt tương ứng với các phần
tử nằm trên dòng thứ i của bảng A
Dữ liệu ra: Một số nguyên duy nhất là tổng các phần tử trên đường chéo mà ta tìm
được
Ví dụ:
Dữ liệu vào Dữ liệu ra
4
3 7 9 0
3 5 5 7
6 9 2 6
6 3 1 4
18
-Hết -Giám thị coi thi không giải thích gì thêm
Họ và tên thí sinh: SBD: Giám thị 1: Giám thị 2:
UBND HUYỆN EAKAR
PHÒNG GIÁO DỤC VÀ ĐÀO
KỲ THI CHỌN HỌC SINH GIỎI CÁC MÔN VĂN HÓA THCS CẤP HUYỆN
Trang 4TẠO NĂM HỌC: 2022 - 2023
MÔN THI: TIN HỌC
ĐÁP ÁN VÀ BIỂU ĐIỂM CHẤM
MÔN: TIN HỌC LƯU Ý CHUNG:
- Học sinh có thể viết theo cách khác, chương trình chạy cho kết quả đúng, cho điểm tối đa
- Chương trình chạy chưa đúng, chấm theo hướng dẫn dưới đây, tùy theo mức độ sai, trừ điểm hợp lý Tổng điểm không quá 50% điểm tối đa
Bài 1
(4,0 điểm)
- Khai báo đúng, đủ các biến trong chương trình và nhập N,
Q theo đúng yêu cầu về dữ liệu
- Tính đúng.
1,0 điểm 3,0 điểm
Bài 2
(4,0 điểm)
- Khai báo đúng, đủ các biến trong chương trình, nhập M và ràng buộc điều kiện
- In ra được số nguồn
- Trong trường hợp có nhiều số in ra được số nhỏ nhất
1,0 điểm
2,0 điểm 1,0 điểm
Bài 3
(5,0 điểm)
- Khai báo đúng, đủ các biến trong chương trình theo đúng yêu cầu về dữ liệu, nhập mảng
- In ra được thứ tự các chuyến xe buýt mà hành khách đi
1,0 điểm 4,0 điểm
Bài 4
(5,0 điểm)
- Khai báo đúng, đủ Nhập dữ liệu, ràng buộc điều kiện đầy đủ
- In ra được số cách đi
- In ra được 1 chuỗi là đường đi từ điểm đầu đến điểm cuối cùng với chi phí thấp nhất giữa các điểm
1,0 điểm 2,0 điểm 2,0 điểm
Bài 5
(2,0 điểm)
- Khai báo đúng, đủ các biến trong chương trình và nhập n và mảng thoả mãn điều kiện
- In ra được tổng các phần tử trên đường chéo có độ dài lớn nhất
0,5 điểm 1,5 điểm
UBND HUYỆN EAKAR
PHÒNG GIÁO DỤC VÀ ĐÀO
KỲ THI CHỌN HỌC SINH GIỎI CÁC MÔN VĂN HÓA THCS CẤP HUYỆN
Trang 5TẠO NĂM HỌC: 2022 - 2023
MÔN THI: TIN HỌC
BỘ TEST Môn: Tin học
Bài 1
(4,0 điểm)
Bài 2
(4,0 điểm)
Bài 3
(5,0 điểm)
3 5 8
0 15 23
1 3 4
6 8 15
7 26 70 100 110 135
1 3 8 12 13 16
10 3 9
4 7 9 15 17 25 36 47 50 55
1 1 1 3 4 7 10 14 15 17
Bài 4
(5,0 điểm)
A1B1C4D
A1B5C2D1E1G8H5I6K
A9B1C1D6E6G1H6K
Bài 5
(2,0 điểm)
4
3 7 9 0
3 5 5 7
6 9 2 6
6 3 1 4
18
8
2 5 6 7 8 7 6 5
8 7 6 5 4 4 3 2
8 7 6 5 9 8 6 9
51
Trang 65 4 6 7 5 6 7 8
9 8 7 9 8 7 6 5
8 7 6 5 9 8 9 7
9 8 7 5 4 5 4 3
8 7 5 6 5 6 7 1
Lưu ý: Ngoài các bộ test trên giáo viên chấm có thể đưa thêm 1 số bộ test để
kiểm tra việc ràng buộc điều kiện khi nhập liệu
Trang 7UBND HUYỆN EAKAR
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
KỲ THI CHỌN HỌC SINH GIỎI CÁC MÔN VĂN HÓA THCS CẤP HUYỆN
NĂM HỌC: 2022 - 2023 Môn thi: TIN HỌC
CHƯƠNG TRÌNH THAM KHẢO
Bài 1: (4,0 điểm)
Program sodu;
var
n,q,i:longint;
k:qword;
BEGIN
Repeat
Read(N,Q);
until (N>=1) and (Q>0) and (N<=1000000) and (Q<=1000000);
if n>=q then k:=0 else
begin
k:=1;
for i:=2 to n do
begin
k:=(k*i) mod q;
if k=0 then break;
end;
end;
write(k);
readln; readln;
end
Bài 2: (4,0 điểm)
program songuon;
var m,n,dem,i,k: LongInt;
function tcs(a: LongInt): LongInt;
begin
tcs:=a;
while (a<>0) do
begin
tcs:=tcs+(a mod 10);
a:=a div 10;
end;
end;
Trang 8Repeat
read(M);
until (M>0) and (M<10000);
dem:=0;
for i:=1 to m-1 do
begin
k:=i;
if (tcs(k)=m) then
begin
write(i); inc(dem); break;
end;
end;
if dem=0 then write('NO');
Readln; readln;
end
Bài 3: (5,0 điểm)
program BUS;
var
N,D,T,i:longint; x,k:real;
A:array[0 1000] of longint;
begin
readln(N,D,T);
for i:=1 to n do read(A[i]);
for i:=1 to n do if A[i]<T then write('1 ') else
begin
k:=(A[i]-T)/D+1;
x:=trunc(k);
if x=k then write(x:3:0,' ') else write(x+1:3:0,' '); end;
readln; readln;
end
Bài 4: (5,0 điểm)
program chiphi;
var
s,s1,min:string;
i,dem,p:longint;
begin
readln(s);
Trang 9s1:=s[1]; dem:=0; min:='9'; P:=1;
for i:=2 to length(s) do if s[i] in ['0' '9'] then
begin
inc(dem);
if s[i]<min then min:=s[i];
end else
begin
s1:=s1+min+s[i];
min:='9';
p:=p*dem;
dem:=0;
end;
writeln(p);
write(s1);
readln;
end
Bài 5: (2,0 điểm)
Program duongcheo;
Var
n,i,j,k,max,S:longint;A:array[0 1000,0 1000]of longint; Begin
Repeat
readln(n);
Until n<=100;
For i:=1 to n do
For j:=1 to n do
Repeat
read(A[i,j]);
Until abs(A[i,j])<=10000;
For k:=1-n to n-1 do
Begin
S:=0;
For i:=1 to n do
For j:=1 to n do If i-j=k then S:=S+A[i,j];
If k=1-n then max:=S else
If S>max then max:=S;
End;
write(max);
readln; readln;
End