Thẻ: Tài liệu ôn thi học sinh giỏi Python

100 đề và đáp án thi HSG tin Python cấp huyện 2025

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 đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Đề thi học sinh giỏi cấp huyện chợ Gạo năm 2022 – 2023:

100 đề và đáp an thi HSG tin Python

Tài liệu On thi HSG Tin học THPT Python

De thi học sinh giỏi tin 11 Python

Tài liệu on thi HSG Tin học THPT C++

De thi học sinh giỏi Tin lớp 10 cấp trường Python

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àiFile chương trìnhFile dữ liệu vào

*

File kết quả
Bài 1In sổ léSOLE.*SOLE.INPSOLE.OUT
Bài 2Đối xứngDOIXUNG.*DOIXUNG.INPDOIXUNG.OUT
Bài 3Công tắc đènSWITCH.*SWITCH.INPSWITCH.OUT
Bài 4Giải mã thông điệpGIAIMA.*GIAIMA.INPGIAIMA.OUT
Bài 5Chọn hoaCHONHOA.*CHONHOA.INPCHONHOA.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.INPSOLE.OUT
201 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.INPDOIXUNG.OUT
80 11088 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.INPSWITCH.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.INPGIAIMA.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.INPCHONHOA.OUT
4 21 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é !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

12 đề và đáp án thi HSG tin Python mới nhất năm 2024

Rất vui được gặp lại các em chuẩn bị thi học sinh giỏi môn tin học cấp huyện và cấp tỉnh. Để chuẩn bị tốt cho kỳ thi học sinh giỏi môn tin học sắp tới thầy đã soạn ra 12 đề và đáp án thi HSG tin Python mới nhất năm 2024. Để các em có bước chuẩn bị ôn luyện quan trọng để chuẩn bị kỳ thi khó khăn sắp tới. Nào chúng ta hãy cùng nhau giỏi đề 12 ở phía dưới ngay nào!

Đây đã là đề thi số 12 đề và đáp án thi HSG Tin Python cấp huyện 

tai ngay vi tính tấn dân

  • Còn em nào muốn học lý thuyết thì hãy vào đường dẫn phía dưới nhé ! chép từ bài 1 đến bài 21 là giỏi liền kha kha ! có tài liệu pdf tải về thoải mái !
    1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

Rồi còn chờ gì nữa hãy vào giải ngay đề 12  thi HSG Tin Python cấp huyện 

Số thứ tựTên bàiFile

chương trình

File dữ liệu

vào

File kết quà
Bài 1Phân loại sức mạnh của dàn PCD131 *D131.INPD131.OUT
Bài 2Đếm số lượng số hoàn hảo từ m đến nD132.*D132.INPD132.OUT
Bài 3Sắp xếp thứ tự các số trong mảng giảm dầnD133 *D133.INPD133.OUT
Bài 4Tìm số Iớn nhất trong xâu sD134.*D134.INPD134.OUT
Bài 5Sắp xếp danh sách theo điểm giảm dầnD135.*D135.INPD135.OUT

Bài 1: (4 điểm) Phân loại sức mạnh của dàn PC ?

  • Diễn giải:
    1. Siêu mạnh-Cao cấp: Điểm từ 800 đến 1000
    2. Mạnh-Trung cấp: Điểm từ 600 đến 799
    3. Vừa-Cơ bản: Điểm từ 500 đến 599
    4. Chậm-Chưa đạt: Điểm dưới 500
  • Input: Số nguyên X là điểm của dàn PC (0<=x<=1000)
  • Output: Loại theo mô tả trên
  • Ví dụ về input và output:
inputoutput
620Manh-Trung cap
801Sieu manh-Cao cap

Bài 2: (4 điểm) Đếm số lượng số hoàn hảo từ m đến n?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Đếm xem trong các số nguyên từ m đến n, có bao nhiêu số hoàn hảo.
    • Số hoàn hảo (hay còn gọi là số hoàn chỉnhsố hoàn thiện hoặc số hoàn thành) là một số nguyên dương mà tổng các ước nguyên dương thực sự của nó (các số nguyên dương bị nó chia hết ngoại trừ nó) bằng chính nó.
    • Ví dụ số hoàn hảo:
    • 6=1+2+3
    • 28=1+2+4+7+14
    • 496=1+2+4+8+16+31+62+124+248
  • Input: Hai số nguyên dương m và n trên cùng một dòng, cách nhau bởi dấu cách.
  • Output: Số lượng số hoàn hảo từ m đến n.
  • Ví dụ:
InputOutput
11 150
2 131

Bài 3: (4 điểm ) sắp xếp trong mảng theo thứ tự giảm dần ?

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: ao, ai, a2, …. sắp xếp thứ tự các số trong mảng giảm dần và in mảng đã sắp xếp.
  • Input: Một dòng chửa các số nguyên có giá trị tuyệt đối không vượt quá 10\ cách nhau bời dảu cách.
  • Output: In mảng đà sấp xcp, mồi số trên một dòng
  •  Ví dụ:
 InputOutput
9 -6 3 8 10 -7 -210

9

8

3

-2

-6

-7

 

7 3 8 0 28

7

3

2

0

Bài 4: (4 điểm) Tìm số nguyên lớn nhất trong xâu s?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Tìm số nguyên lớn nhất trong xâu s
  • Input:
    • Xâu s trên một dòng, có độ dài không vượt quá 10 mũ 5, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
    • Các số có trong xâu không vượt quá 109
  • Output: Số nguyên lớn nhất trong xâu s. Nếu không có số nào thì in “-“
  • Ví dụ:
InputOutput
Ky thi hoc sinh gioi dien ra 1 ngay trong thang 2, co 5 bai, tong cong 20 di em, cham trong 3 ngay co ket qua20
Hom nay toi mua 5 quyen tap, 2 quyen sach va 4 cay viet5

Bài 5: (4 điểm) sắp xếp danh sách theo điểm giảm dần?

  • Diễn giải:
    • Nhập vào danh sách lớp và điểm của từng học sinh. Sắp xếp danh sách theo điểm giảm dần
    • Input: Mỗi dòng là một xâu họ tên và điểm của một người, có độ dài không vượt quá 102, chứa các kỷ tự là chữ cái và các dấu cách, điểm là số thực từ 0 đến 10.
  • Output: Danh sách đã sắp xếp, mỗi dòng gồm họ tên và điểm (hiển thị một chữ số thập phân)
  • Ví dụ:
InputOutput
Pham Quoc Thinh 7

Tran Minh Phat 6.3

Dinh Nguyen Khoa 9

Hoang An Nhien 9

Mai Nguyen Tan Thanh 8.7

Nguyên Hoai Minh Anh 8.8

Vo Hoai Anh 8

Tran Duy Khang 7.8

Dinh Nguyen Khoa 9.0

Hoang An Nhien 9.0

Nguyen Hoai Minh Anh 8.8

Mai Nguyen Tan Thanh 8.7

Vo Hoai Anh 8.0

Tran Duy Khang 7.8

Pham Quoc Thinh 7.0

Tran Minh Phat 6.3

Ví dụ 2:

InputOutput
Tran Tien Long 8.5

Nguyên Huu Nam 6

Nguyên Minh Phat 7.2

Nguyên Tan Dung 7.5

Le Hoai Bao Duy 5.0

Tran Ngoe Van Anh 5.0

Pham Nguyên Thien Phuc 8.3

Nguyên Minh Dang 5.0

Duong Phu Loc 6.8

Tran Tien Long 8.5

Pham Nguyên Thien Phuc 8.3

Nguyên Tan Dung 7.5

Nguyên Minh Phat 7.2

Duong Phu Loc 6.8

Nguyên Huu Nam 6.0

Le Hoai Bao Duy 5.0

Tran Ngoe Van Anh 5.0

Nguyên Minh Dang 5.0

Đáp án bài 1: (4 điểm) Phân loại sức mạnh của dàn PC

 

import sys
sys.stdin=open('D131.INP','r')
sys.stdout=open('D131.OUT','w')
n=int(input())
if 800<=n<=1000:
    print('Sieu manh-Cao cap')
elif 600<=n<799:
    print('Manh-Trung cap')
elif 500<=n<=599:
    print('Vua-Co ban')
elif n<500:
    print('Cham-Chua dat')

 

Đáp án bài 2: (4 điểm) Đếm số lượng số hoàn hảo từ m đến n

 

import sys
sys.stdin=open('D132.INP','r')
sys.stdout=open('D132.OUT','w')
def kthh(n):
    s=0
    for i in range(1,n):
        if n%i==0:
            s+=i
    return n>1 and s==n
m,n=map(int,input().split())
dem=0
for i in range(m,n+1):
    if kthh(i):
        dem+=1
print(dem)

 

Đáp án bài 3: (4 điểm ) sắp xếp trong mảng theo thứ tự giảm dần

 

import sys
sys.stdin=open('D133.INP','r')
sys.stdout=open('D133.OUT','w')
a=list(map(int,input().split()))
a.sort()
a=a[::-1]
print(*a,sep='\n')

 

Đáp án bài 4: (4 điểm) Tìm số nguyên lớn nhất trong xâu s

 

import sys,re
sys.stdin=open('D134.INP','r')
sys.stdout=open('D134.OUT','w')
s=input()
s1=re.sub('[^0-9]+',' ',s).split()
a=[]
for i in range(len(s1)):
    a.append(int(s1[i]))
if len(s1)==0:
    print('-')
else:
    print(max(a))

 

Đáp án bài 5: (4 điểm) sắp xếp danh sách theo điểm giảm dần

import sys
sys.stdin=open('D135.INP','r')
sys.stdout=open('D135.OUT','w')
def laydiem(s):
    s=s.split()
    return float(s[-1])
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
        except ValueError:
            break
    except EOFError:
        break
kq=sorted(a,key=laydiem,reverse=True)
for i in range(len(kq)):
    x=kq[i].split()
    diem=float(x[-1])
    x.pop(-1)
    hoten=' '.join(x)
    print(hoten,'%0.1f'%diem)

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

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !