100 đề và đáp án thi HSG tin Python cấp huyện 2025
100 đề và đáp án thi HSG tin Python
5/5 - (2 bình chọn)
Thầy mến chào các em đang yêu thích môn tin học lập trình Python! Để có thể thi tốt và đạt giải cao trong kỳ thi học sinh giỏi cấp huyện sắp tới ! Thầy đã soạn ra được các đề hay và bám sát với các đề thi các em phải ôn luyện trong 100 đề và đáp án thi HSG tin Python cấp huyện 2025 là đậu chắc luôn ! Mong các em có thể sắp xếp nhiều thời gian hơn để ôn luyện nhiều hơn để mình được nhiều kinh nghiệm
Đây đã là đề thi số 20 Đề thi học sinh giỏi Tin học THCS có đáp án
Các bạn bạn nào chưa giải tới thì vui lòng chọn lại bắt đầu từ Giải đề 1 các bạn nhé !
Vì từ thầy để các đề từ dễ đến nâng cao các bạn nhé! Mình mới vô đừng giải đề khó quá mà phải giải từ dễ trước từ từ sẽ giỏi lên từng ngày các bạn nhé!
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Đề thi học sinh giỏi cấp huyện chợ Gạo năm 2022 – 2023:
De thi học sinh giỏi Tin lớp 10 cấp trường Python
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO CHỢ GẠO
KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN TRUNG HỌC CƠ SỞ.
NĂM HỌC 2022-2023
Môn: TIN HỌC
Thời gian làm bài: 150 phút (Không kế thời gian giao đề)
Ngày thi: 14/02/2023
(Đề thi có 03 trang, gồm 05 bài)
TỔNG QUAN BÀI THI
Tên bài
File chương trình
File dữ liệu vào
*
File kết quả
Bài 1
In sổ lé
SOLE.*
SOLE.INP
SOLE.OUT
Bài 2
Đối xứng
DOIXUNG.*
DOIXUNG.INP
DOIXUNG.OUT
Bài 3
Công tắc đèn
SWITCH.*
SWITCH.INP
SWITCH.OUT
Bài 4
Giải mã thông điệp
GIAIMA.*
GIAIMA.INP
GIAIMA.OUT
Bài 5
Chọn hoa
CHONHOA.*
CHONHOA.INP
CHONHOA.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ’ lập trình được sử dụng tương ứng là Pascal, C++, Python hoặc phần mở rộng tương ứng với ngôn ngữ lập trình khác.
Bài 1: In số lẻ (4,0 điểm) ?
Cho n là một số nguyên bất kì {0<n<1000).
Yêu cầu: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng số nguyên dương n và đếm xem có bao nhiêu số lẻ được in ra.
Dữ liệu vào: Cho từ tệp văn bản SOLE.INP (Có thể nhập từ bàn phím) gồm
1 dòng chứa số nguyên n (0<n<1000). ‘
Dữ liệu ra: Ghi vào tệp văn bản SOLE.OUT (Có thể in ra màn hình) gồm 2 dòng chứa các thông tin sau:
Dòng đầu tiên liệt kê 1 dãy số lẻ.
Dòng thử hai ghi số lượng các số lẻ.
Ví dụ:
SOLE.INP
SOLE.OUT
20
1 3 5 7 9 11 13 15 17 19 10
Bài 2: Đối xứng (4.0 điểm ) ?
Số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Chẳng hạn số 11,121,101 là các số đối xứng.
Yêu cầu: Viết chương trình tìm tất cả các số đối xứng có từ 2 chữ số trở lên từ n đến m.
Dữ liệu vào: Cho từ file văn bản DOIXƯNG.INP gồm 1 dòng chứa 2 số nguyên n, m (n <m) cách nhau bởi dấu-cách.
Dữ liệu ra: Ghi ra file văn bản DOIXUNG.OUT chứa các số đối xứng có 2 chữ số trở lên từ n đến m; các số cách nhau bởi dấu cách. Nếu không tìm được số đối xứng như yêu cầu thì ghi ra
Ví dụ:
DOIXUNG.INP
DOIXUNG.OUT
80 110
88 99 101
Bài 3: Công tắc đèn (4,0 điểm) ?
Trên vách tường được bố trí dãy liên tiếp các công tắc để điều khiển một bóng đèn điện, mỗi công tắc có thể được bật hoặc tắt. Được biết đèn chỉ được bật sáng khi có ít nhất hai công tắc được bật và không nằm cạnh nhau.
Yêu cầu: Với trạng thái của các công tắc, bạn cần phải xác định xem đèn có được bật sáng hay không.
Dữ liệu vào: Cho từ file văn bản SWITCH.INP gồm một xâu chứa các ký hiệu “+” hoặc mô tả các trạng thái của công tắc, từ công tắc đầu tiên đến công tắc cuối cùng và theo thứ tự từ trái sang phải. Ký hiệu “+” cho biêt công tăc ở trạng thái “bật” và chỉ trạng thái “tắt”.
Dữ liệu ra: Ghi ra file văn bản SWITCH.OUT chứa chữ “On” (không có dấu nháy kép) nếu đèn được bật sáng hoặc “Off ’ (không có dấu nháy kép) trong trường hợp ngược lại.
Ví dụ:
SVVITCH.INP
SWITCH.OUT
+-+-
On
+–+-++
Off
Bài 4: Giải mã thông điệp (4,0 điểm ) ?
Diễn giải:
Trong thời đại ngày nay, thông tin cá nhân của mỗi người dễ dàng bị xâm nhập bởi rất nhiều công nghệ hiện đại dùng để nghe lén.
Chính vì vậy, một đôi bạn muốn bảo mật thông tin cho nhau đã có sáng kiến nghĩ ra cách trao nhau những thông điệp mà người khác đọc hoặc nghe được thì không hiểu gì.
Thông điệp của họ là một câu với nhiều từ được phân biệt bởi ký tự trống (dấu cách) và được sắp xếp lộn xộn để trở thành câu vô nghĩa.
Để hiểu nội dung một thông điệp của người bạn gửi cho mình,
hai người bạn đã quy ước trước một bộ mã là một dãy số nguyên dương có số lượng số tương ứng với số từ của thông điệp nhằm giải mã thành câu có ý nghĩa.
Yêu cầu: Viết chương trình để giúp đôi bạn giải mã một thông điệp cho trước.
Dữ liệu vào: Cho từ file văn bản GIAIMA.INP gồm 2 dòng:
Dòng đầu ghi một câu có không quá 255 kí tự là thông điệp được gởi đi.
Dòng thứ hai ghi bộ mã gồm một dãy các số nguyên dương chỉ vị trí các từ của thông điệp trên (mỗi số cách nhau bởi 1 dấu khoảng trắng).
Dữ liệu ra: Ghi ra file văn bản GIAIMA.OUT gồm một dòng ghi câu đã được giải mã từ thông điệp đã cho.
Ví dụ:
GIAIMA.INP
GIAIMA.OUT
gioi ban chuc hoc luon
3 2 5 4 1
chuc ban luon hoc gioi
Bài 5: Chọn hoa (4,0 điểm ) ?
Diễn giải:
Một công ty XYZ nọ, cứ đến mỗi quý là tổ chức sinh nhật cho nhân viên 1 lần.
Ông chủ của công ty này tên Bình là người yêu thích hoa lan, cho nên đến lần tổ chức sinh nhật trong quý I năm 2023 này,
Ông Bình quyết định đến cửa hàng bán hoa tươi để mua hoa về tặng cho nhân viên.
Cửa hàng hiện đang có n (n<= 20) giỏ phong lan rất đẹp được đánh số từ 1 đến n.
Các giỏ lan đều đẹp như nhau nên ông phân vân không biết chọn giỏ nào.
Ông muốn mua tặng cho nhân viên là k ( k <=n ) giỏ phong lan
Yêu cầu: Viết chương trình giúp ông Bình tìm tất cả các cách có the chọn.
Dữ liệu vào: Cho từ tệp văn bản CHONIIOA.INP gồm một dòng chứa 2 số nguyên n, k.
Dữ liệu ra: Ghi vào tệp văn bản CHONHOA.OUT tất cả các cách chọn có thể và tổng số cách chọn.
Ví dụ:
CHONHOA.INP
CHONHOA.OUT
4 2
1 2
1 3
1 4
2 3
2 4
3 4
Tong so cach chon: 6
Đáp án bài 1: In số lẻ (4,0 điểm) ?
import sys
sys.stdin=open('SOLE.INP','r')
sys.stdout=open('SOLE.OUT','w')
n=int(input())
dem=0
for i in range(n+1):
if i%2!=0:
dem+=1
print(i,end=' ')
print()
print(dem)
Đáp án bài 2: Đối xứng (4.0 điểm ) ?
import sys
sys.stdin=open('DOIXUNG.INP','r')
sys.stdout=open('DOIXUNG.OUT','w')
def ktdx(n):
s=str(n)
return s==s[::-1]
m,n=map(int,input().split())
for i in range(m,n+1):
if ktdx(i) and i>1:
print(i,end=' ')
Đáp án bài 3: Công tắc đèn (4,0 điểm) ?
import sys
sys.stdin=open('SWITCH.INP','r')
sys.stdout=open('SWITCH.OUT','w')
s=input()
a=list(s)
kq=1
for i in range(len(a)-1):
if (a[i]=='-'and a[i+1]=='-') or (a[i]=='+'and a[i+1]=='+'):
kq=0
break
if kq==1:
print('On')
else:
print('Off')
Đáp án bài 4: Giải mã thông điệp (4,0 điểm ) ?
import sys
sys.stdin=open('GIAIMA.INP','r')
sys.stdout=open('GIAIMA.OUT','w')
a=input().split()
b=list(map(int,input().split()))
c=[]
d=[]
for i in range(len(b)):
c.append(b[i]-1)
for i in range(len(c)):
for j in range(len(a)):
if c[i]==j:
d.append(a[j])
print(*d)
Đáp án bài 5: Chọn hoa (4,0 điểm ) ?
import sys
sys.stdin=open('CHONHOA.INP','r')
sys.stdout=open('CHONHOA.OUT','w')
n,k=list(map(int,input().split()))
dem=0
for i in range(1,k+2):
for j in range(2,n+1):
if i!=j and i<=j:
dem+=1
print(i,j)
print('Tong so cach chon:',dem,sep='')
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
View Comments