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

20 đề và đáp án thi HSG tin Python C++ THPT có tài liệu ôn thi

Thầy mến chào các em đang trong giai đoạn nước rút ôn luyện thi học sinh giỏi tin học lập trình Python cấp huyện hoặc cấp tỉnh, hoặc các em đang thi vào các trường Chuyên Tin. Thầy sẽ tổng hợp được 20 đề và đáp án thi HSG tin Python C++ THPT có tài liệu ôn luyện thi pdf. từ dễ đến nâng cao. Hy vọng 20 đề  này sẽ giúp ích cho các em ôn lại kiến thức trước khi thi bước vào kỳ thi cam go sắp tới và Thầy chúc các em đạt được kết quả cao nhé!

Tải hình các đề thi

Tải bằng google driver

  • Còn em nào chưa giải đề được mà muốn học từ cơ bản đến nâng cao và đến giải đề thi vào đường link phía dưới các em nhé!
    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 

Nếu bạn nào mà mới bắt đầu thì nên vào bài để học nhé! còn các đề thi này dành cho các bạn chuẩn bị ôn thi học sinh giỏi lập trình Python rồi nhé!

Tự học Python từ cơ bản đến nâng cao giải đề Miễn Phí tài liệu pdf

Khóa học Python từ cơ bản đến nâng cao miễn phí

Khóa học Python từ cơ bản đến nâng cao miễn phí

Rồi còn chờ gì nữa mà không vào giải thử 20 đề hay và hấp dẫn nào!

Đề 1: Dành cho các bạn thuộc Cấp Độ 10:

NĂM HỌC 2022-2023

Môn: TIN HỌC

Thời gian: 90 phút (Không kể thời gian giao đề)

Ngày thi: 14/07/2024

Thứ tự

Tên bài File

chương

trình

File dữ liệu

vào

File kết quả

Bài 1 Tính loại bão D011.* D011.INP D051.OUT
Bài 2 Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n D012.* D012.INP D012.OUT
Bài 3 Tìm số lớn nhất trong mâng và vị tri D013. * D013.INP D013.OUT
Bài 4 In các từ viết hoa trong xâu s D014.* D014.INP D014.OUT
Bài 5  Tính trung bình cộng các số chính phương đầu tiên D015 * D015.INP D015.OUT

Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C++.

Bài 1: (4 điểm) Tính loại bão?

  • Diễn giải: Nhập vào tốc độ gió (đơn vị km/h) của một com bào ớ ba địa điểm khác nhau, tính tốc độ gió trung bình. Cho biết cơn bão đó thuộc loại nào sau đây:
    • Nếu tốc độ gió trung bình dưới 89: Gió
    • Nếu tốc độ gió trung bình từ 89 đến 183: Bão
    • Nếu tốc độ gió trung bình trên 183 đến 220: Siêu bão
    • Nếu tốc độ gió trung bình trên 220 đến 465: Siêu cuồng phong
    • Nếu tốc độ gió trung bình >=466: Siêu bão hủy diệt
  • Input: Ba số nguyên a, b, c trên một dòng, cách nhau bờ dấu cách cho biết tốc độ gió của ở 3 địa điểm khác nhau (0<a, b, c<500).
  • Output: Tốc độ gió trung bình (một chữ số thập phân), dấu “-“, loại bão

Ví dụ:

Input Output
100 120 114 111.3-Bao
189 178 195 187.3-Sieu bao

Bài 2: (4 điểm) Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • Tính tổng các số nguyên chia hết cho 5 từ m đến n;
    • Tính trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
  • Output:
    • Số thứ nhất là tổng các số chia hết cho 5 từ m đến n, dấu cách, số thứ hai là trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
    • Làm tròn đến một chữ số thập phân.
    • Nếu không có số nguyên nào chia hết cho 2 và 3 thì số thứ hai là “0.0”

Ví dụ:

Input Output
4 15 30 9.0
2 11 15 6.0

Bài 3: (4 điểm) Tìm số lớn nhất trong mảng và vị trí của nó?

Diễn giải:

  • Nhập vào một mảng a có n số nguyên: a0, a1, a2,…… an-1
  • Tìm số lớn nhất trong mảng a và vị trí của số lớn nhất đó

Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105.

Output: Số lớn nhất và vị trí của nó trong mảng trên cùng một dòng, cách nhau bởi dấu cách

Input

Output

7 10 4
9
6
3
8
10
7
-2

 

5 20 0
20
7
6
8
0

Bài 4: (4 điểm) In các từ viết hoa trong xâu s

Diễn giải: Nhập vào một xâu s. In các từ viết hoa trong xâu s

Input: Xâu s trên một dòng, cỏ độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.

Output: Các từ viết hoa trong xâu theo thứ tự xuất hiện, trên một dòng, cách nhau bởi dấu cách.

 

Input

Output

Toi hoc LAP TRINH Python tu nam 2024 LAP TRINH
Thi HOC SINH GIOI mon Tin Hoc HOC SINH GIOI

Bài 5: (4 điểm) Tính trung bình cộng n số chính phương đầu tiên?

  • Diễn giải:
    • Nhập vào số nguyên dương n.
    • Tính trung bình cộng của n số chính phương đầu tiên.
    • Số nguyên n được gọi là số chính phương khi n>=0 và căn bậc 2 của n là một số nguyên.
  • Ví dụ:
    • n=9 là số chính phương, căn bậc 2 của 3 là 3
    • n=15 không phải số chính phương vì căn bậc 2 của 5 là 3.872
    • Số chính phương thứ nhất là 0
    • Dãy số chính phương: 0, 1,4, 9, 16, 25, 36, 49,….
  • Input: Một số nguyên n (0<n<103)
  • Output: Trung bình cộng của n số chính phương đầu tiên, làm tròn đến 2 chữ số thập phân
Input Output
4 3.50
7 13.00

Đáp án giải đề thi HSG Python bài 1: Tính loại bão?

import sys
sys.stdin=open('D011.INP','r')
sys.stdout=open('D011.OUT','w')
a,b,c=map(int,input().split())
TBC=(a+b+c)/3
print('%0.1f'%TBC,'-',sep='',end='')
if TBC<89:
    print('Gio')
elif 89<=TBC<=183:
    print('Bao')
elif 183<TBC<=220:
    print('Sieu bao')
elif 220<TBC<=465:
    print('Sieu cuong phong')
elif TBC>465:
    print('Sieu bao huy diet')

Đáp án bài 2: tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n

import sys
sys.stdin=open('D012.INP','r')
sys.stdout=open('D012.OUT','w')
m,n=map(int,input().split())
tong=0
dem=0
tong5=0
for i in range(m,n+1):
    if i%5==0:
        tong5+=i
print(tong5,end=' ')
for i in range(m,n+1):
    if i%2==0 and i%3==0:
        dem+=1
        tong+=i
tbc=0
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)

Đáp án bài 3: Tìm số lớn nhất trong mảng và vị trí của nó?

import sys
sys.stdin=open('D013.INP','r')
sys.stdout=open('D013.OUT','w')
n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
M=max(a)
vt=a.index(M)
print(M,vt)

Đáp án bài 4: In các từ viết hoa trong xâu s

import sys
sys.stdin=open('D054.INP','r')
sys.stdout=open('D054.OUT','w')
n=input()
n=n.split()
for i in n:
    if i.isupper():
        print(i,end=' ')

Đáp án bài 5: Tính trung bình cộng n số chính phương đầu tiên?

import sys,math
sys.stdin=open('D015.INP','r')
sys.stdout=open('D015.OUT','w')
def ktcp(n):
    if n<0:
        return -1
    x=int(math.sqrt(n))
    return x*x==n
n=int(input())
i=0
dem=0
tong=0
Tbc=0
while dem<n:
    if ktcp(i):
        tong+=i
        dem+=1
    i+=1
if dem>0:
    Tbc=tong/dem
    print('%0.2f'%Tbc)

Thầy có giải đề thi vào lớp 10 Chuyên Tin Tiền Giang năm 2024 – 2025:

Giải bài tập 1: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 2: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 3: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 4: thi vào lớp 10 Chuyên Tin Tiền Giang

 

Giải bài tập 5: thi vào lớp 10 Chuyên Tin Tiền Giang

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

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

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Website: vitinhtandan.com
  • Email: vitinhtandan@gmail.com

5 đề thi Python học sinh giỏi tin học THCS có đáp án tài liệu ôn thi

Chào các em yêu thích tin học lập trình Python, để chuẩn bị cho kỳ thi tốt sắp tới thầy có soạn ra 5 đề thi Python học sinh giỏi tin học THCS có đáp án và tài liệu ôn thi  để các em thi cho tốt nhé!

Đầu tiên các em cần ôn tập lại tất cả kiến thức về các hàm, vòng lập for, while, cách tạo các hàm def cho tốt nhé ! Các em vào đường dẫn phía dưới nhé!

Tự học Python từ cơ bản đến nâng cao đến giải đề Miễn Phí tài liệu pdf.

Khóa học Python từ cơ bản đến nâng cao miễn phí

Khóa học Python từ cơ bản đến nâng cao miễn phí

  • Rồi sau khi ôn lại kiến thức đã học các em vào tự giải đề trước rồi xem đáp án sau nhé!
  • Hôm nay thầy sẽ giải đề thi học sinh giỏi tin học lập trình Python huyện Gò Công Đông, Tiền Giang.

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO HUYỆN GÒ CÔNG ĐÔNG

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: 150 phút (Không kể thời gian giao đề)

Ngày thi: 14/02/2023

(Đề thi có 03 trang, 05 câu)

TỔNG QUAN CÁC BÀI THI:

Tên bài

File chương trình File dữ liệu vào

File kết quả

Câu 1. Công nhân CONGNHAN.* TT.INP KQ.OUT
Câu 2. Thăm bạn THAMBAN.* KANGAROO.INP KANGAROO.OUT
Câu 3. xếp hàng XEPHANG * XEPHANG.INP XEPHANG.OUT
Câu 4. Dãy nhị phân DAYNHIPHAN. * DAYNHIPHAN.INP DAYNHIPHAN.OUT
Câu 5.

 

Đổi tiền DOITIEN.*

 

DOITIEN.INP DOITIEN.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 NNLT khác

Câu 1:  Công nhân (4.0 điểm)

  • Diễn Giải:
    • Công ty A đưa rước cho N nhóm công nhân đi làm, nhóm thứ i cách công ty di km (i—1, 2, 3, …, N).
    • Công ty có M xe được đánh số từ 1 đến M (M>N) để phục vụ cho việc đưa rước các nhóm công nhân.
    • Xe thứ j có mức tiêu thụ xăng là vj đơn vị thể tích/km (j=l, 2, 3, . ., M).                                                                                    .
  • Yêu cầu: Hãy chọn N xe để phục vụ cho việc đưa các nhóm công nhân đi làm, mỗi xe chỉ phục vụ cho một nhóm, sao cho tổng chi phí xăng cần sử dụng là ít nhất.     •
  • Dữ liệu: Vào file văn bản TT.INP:                                                        Ị
    • Dòng đầu tiên chứa hai số nguyên dương N, M (N<M<200);
    • Dòng thứ hai chứa các sô nguyên dương dl, d2,…, dN;
    • Dòng thứ ba chứa các số nguyên dương vl, v2, …, vM;
    • Các số trên cùng một dòng được ghi cách nhau bởi dấu cách. I
  • Kết quả: Ghi ra file văn bản KQ.OUT:
    • Dòng đầu tiên chứa tổng lượng xăng cần dùng cho việc đưa rước công nhân (không tính lượt về);
    • Dòng thứ 2 trở đi ghi chỉ số xe đã sử dụng để chở công nhân.
  • Ví dụ: 
TT.INP KQ.OUT
47 454
6 1115 12 2
15 13 19 10 11 20 9 4
5
7

Câu 2: Thăm bạn (4.0 điểm)

  • Diễn Giải:
    • Một chú Kangaroo muốn đi thăm một người bạn cách đó một khoảng n (đơn vị dm). Kangaroo chỉ có hai cách di chuyển, một là nhảy ngắn a (đơn vị dm), hai là nhảy dài b (đon vị dm).
    • Hỏi chú Kangaroo cần nhảy ít nhât bao nhiêu bước nhảy để đến được nhà người bạn (phải nhảy vừa đủ, không nhảy quá nhà bạn).
  • Dữ liệu vào từ file: INP gồm ba số nguyên dương n, a, b cách nhau một khoảng trắng (l<n<109, l<a< b<50).
  • Kết quả ra file: KANGAROO.OUT
    • Dòng 1 ghi tổng số bước nhảy ít nhất của chú
    • Dòng 2 cho biết số bước ngắn, số bước dài.
KANGAROO.INP KANGAROO.OƯT
21 25

 

6

3 ngan, 3 dai

Câu 3: Xếp hàng ( 4.0 điểm )

  • Diễn giải:
    • Trong giờ sinh hoạt tập thể, lớp 9A có n học sinh (n<45) xếp thành hàng dọc.
    • Mỗi học sinh có chiều cao a[i] (i=l, 2, 3,….n).
    • Em hãy viết chương trình đếm số bạn có chiều cao bằng nhau nhiều nhất.
  • Dữ liệu vào từ file:  XEPHANG.INP
    • Dòng thứ nhất chứa số tự nhiên n.
    • Dòng thứ hai gồm n số tự nhiên a[i], mỗi số ứng với chiều cao của từng bạn (đơn vị cm), các số cách nhau một khoảng trắng.
  • Kết quả ra file: XEPHANG.OUT
    • Dòng thứ nhất: Ghi tổng số bạn có chiều cao bằng nhau nhiều nhất.
    • Dòng số 2: Ghi các chiều cao tương ứng.
  • Ví dụ:
XEPHANG.INP XEPHANG.OUT
10 3
160 156 158 160 159 158 159 160 158 161 158
160

Câu 4: Dãy nhị phân (4.0 điểm)

Diễn giải: Cho dãy nhị phân có độ dài là n. Hãy kiểm tra dãy nhị phân này có chứa các sô 0 và 1 xen kẽ nhau không?

Dữ liệu: Vào từ file văn bản DAYNHIPHAN.INP gồm :

  • Dòng đầu chứa số nguyên n (l<n<106)
  • Dòng thứ 2 chứa dãy nhị phân có độ dài n

Kết quả:

  • Ghi ra file văn ban DAYNHIPHAN.OUT chữa chữ “YES” nếu đó là dãy chứa các số 0 và 1 xen kẽ nhau, ngược lại ghi “NO”.
  • Dòng thứ 2 là số thập phân tương ứng được đổi từ hệ nhị phân sang hệ thập phân.
  • Lưu ý cách đổi số từ hệ nhị phân (ví dụ 1101) sang hệ thập phân:
  • 1×23 + 1×22 + 0x21 +1×2° = 8+4+0+1=13
DAYNHIPHAN.INP DAYNHIPHAN.OUT
5 YES
10101 21

Câu 5: Đổi tiền(4 0 điểm)

  • Diễn giải: Em hãy viết chương trình đổi số tiền N ( N là số nguyên và 0<=N<1000000) sang chuỗi tương ứng?
  • Dữ liệu vào từ file: DOITIEN.INP
    • Gồm một dòng chứa số tự nhiên n.                                                                    I
  • Kết quả ra file: DOITIEN.OUT
    • Gồm một dòng ghi số tiền bằng chữ tương ứng
  • Ví dụ:
DOITIEN.INP DOITIEN.OUT
0 Khong dong
98 Chin muoi tam dong
809 Tam tram le chin dong
605305 Sau tram le nam nghin ba tram le nam dong
999999 Chin tram chin muoi chin nghin chin tramf chin muoi chin dong

………………………………………………………Hết……………………………………………….

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Đáp án tin học lập trình python câu 2 thăm bạn:

 

import sys
sys.stdin=open('KANGAROO.INP','r')
sys.stdout=open('KANGAROO.OUT','w')
n,a,b=map(int,input().split())
tong=0
k=[]
for i in range(1,n):
    for j in range(1,n):
        if i*a+j*b==n:
            tong=i+j
            k.append(tong)
Min=min(k)
for i in range(1,n):
    for j in range(1,n):
        if i*a+j*b==n and i+j==Min:
            print(Min)
            print(i,' ngan,',j,' dai',sep='')
            break

Đáp án tin học lập trình python câu 3 xếp hàng:

import sys
sys.stdin=open('XEPHANG.INP','r')
sys.stdout=open('XEPHANG.OUT','w')
n=int(input())
a=list(map(int,input().split()))
b=a.copy()
i=0
while i<len(b)-1:
    j=i+1
    while j<len(b):
        if b[i]==b[j]:
            b.pop(j)
        else:
            j+=1
    i+=1
c=[]
for i in range(len(b)):
    c.append(a.count(b[i]))
Max=max(c)
dem=0
e=[]
for i in range(len(b)):
    if a.count(b[i])==Max:
        e.append(b[i])
        dem+=1

if dem>0:
    print(Max)
    for i in sorted(e):
        print(i)

Đáp án tin học lập trình python câu 4 dãy nhị phân:

 

import sys
sys.stdin=open('DAYNHIPHAN.INP','r')
sys.stdout=open('DAYNHIPHAN.OUT','w')
n=int(input())
s=input()
s=list(s)
dk=1
for i in range(len(s)-1):
    if (s[i]=="1" and s[i+1]=='1') or (s[i]=="0" and s[i+1]=='0'):
        dk=0
if dk==1:
    print('Yes')
else:
    print('No')
tong=0
for i in range(len(s)):
    tong+=int(s[i])*(2**(len(s)-1-i))
print(tong)

Đáp án tin học lập trình python câu 5 đổi tiền:

 

import sys
sys.stdin=open('DOITIEN.INP','r')
sys.stdout=open('DOITIEN.OUT','w')
def chuadauhoa(s):
    s=list(s)
    a=[]
    a.append(s[0].uper())
    for i in range(1,len(s)):
        a.append(s[i])
    return a
s=input()
s=list(s)
print(s)
b=[]
for i in range(len(s)):
    b.append(int(s[i]))
print(b)
a=['khong','mot','hai','ba','bon','nam','sau','bay','tam','chin']
c=[]
for i in b:
    c.append(a[i])
print(c)
if len(c)>=3:
    for i in range(len(c)):
        if c[i]=='khong':
            c[i]='le'
if len(c)==1:
    print(c[0],end='')
elif len(c)==2:
    if c[0]=='le':
        print(c[0],c[1],end='')
    else:
        print(c[0],'muoi',c[1],end='')
elif len(c)==3:
    if c[1]=='le':
        print(c[0],'tram',c[1],c[2],end='')
    else:
        print(c[0],'tram',c[1],'muoi',c[2],end='')
elif len(c)==4:
    if c[2]=='le':
        print(c[0],'nghin',c[1],'tram',c[2],c[3],end='')
    else:
        print(c[0],'nghin',c[1],'tram',c[2],'muoi',c[3],end='')
elif len(c)==5:
    if c[3]=='le':
        print(c[0],'muoi',c[1],'nghin',c[2],'tram',c[3],c[4],end='')
    else:
        print(c[0],'muoi',c[1],'nghin',c[2],'tram',c[3],'muoi',c[4],end='')
elif len(c)==6:
    if c[4]=='le' and c[1]=='khong':
        print(c[0],'tram',c[1],'muoi',c[2],'nghin',c[3],'tram',c[4],c[5],end='')
    elif c[1]=='le' and c[4]=='le':
        print(c[0],'tram',c[1],c[2],'nghin',c[3],'tram',c[4],c[5],end='')
    else:
        print(c[0],'tram',c[1],'muoi',c[2],'nghin',c[3],'tram',c[4],'muoi',c[5],end='')
print(' dong')

Chú ý: bài đáp án chỉ có tính chất tham khảo bạn nào có cách giải hay hơn, hoặc có cách giải khác hãy đăng ký và để lại bình luận mình sẽ giải thích cho nhé !

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

Giải đề 2 có đáp án thi HSG tin học python chuyên tin Tiền Giang năm 2024 – 2025

Đề thi HSG chuyên tin tiền giang 2024 - 2025

10 đề thi đáp án thi Python

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

  • Hotline: 093.717.9278 ( Gặp Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Website: vitinhtandan.com
  • Email: vitinhtandan@gmail.com