50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam (Có đáp án và lời giải chi tiết)
Cập nhật mới nhất 2025: Tổng hợp 50 đề thi học sinh giỏi môn Tin học lớp 9 và THCS của các tỉnh, thành phố trên cả nước Việt Nam, kèm lời giải chi tiết bằng Python hoặc Pascal. Bộ sưu tập này giúp học sinh ôn luyện toàn diện, chuẩn bị tốt nhất cho kỳ thi HSG cấp huyện, cấp tỉnh và thi vào lớp 10 chuyên Tin.
1. Giới thiệu bộ 50 đề thi Tin học trên cả nước
Môn Tin học là môn học đòi hỏi tư duy logic, kỹ năng lập trình và khả năng giải quyết vấn đề. Bộ “50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam” được tổng hợp từ nhiều năm của các tỉnh như: Hà Nội, TP. Hồ Chí Minh, Bình Định, Tiền Giang, Nghệ An, Đà Nẵng, Hải Phòng, Lâm Đồng, Cần Thơ, Thái Bình, Nam Định, Đồng Tháp,…
Mỗi đề đều gồm 5 bài lập trình, được sắp xếp từ dễ đến khó, giúp học sinh:
Ôn tập cấu trúc ngôn ngữ (Python hoặc Pascal)
Củng cố kỹ năng thuật toán cơ bản
Phát triển khả năng tư duy giải quyết bài toán thực tế
2. Nội dung và dạng bài thường gặp trong các đề thi
Sau khi tổng hợp 50 đề thi, có thể chia các dạng bài Tin học học sinh giỏi phổ biến như sau:
Dạng 1: Xử lý mảng 1 chiều
Tìm số lớn nhất, nhỏ nhất, tổng, trung bình, phần tử thỏa điều kiện.
Sắp xếp, đếm, lọc phần tử. Rèn kỹ năng duyệt mảng, sử dụng vòng lặp và điều kiện.
Dạng 2: Ma trận (mảng 2 chiều)
Tính tổng hàng, cột, đường chéo.
Xoay ma trận, phản chiếu, tìm phần tử đặc biệt. Kiểm tra khả năng làm việc với cấu trúc dữ liệu hai chiều.
Dạng 3: Xử lý chuỗi ký tự
Đếm từ, tách chữ, đếm nguyên âm – phụ âm.
Loại bỏ ký tự, viết hoa chữ cái đầu, so sánh chuỗi. Củng cố kỹ năng làm việc với string trong Python.
⚙️ Dạng 4: Thuật toán và quy hoạch động (Dynamic Programming)
Bài toán con ếch, chia kẹo, dãy con tăng dài nhất, ba lô,… Đòi hỏi tư duy phân tích và tối ưu thuật toán.
Dạng 5: Đồ thị và đường đi ngắn nhất
Duyệt đồ thị bằng DFS, BFS, tìm cây khung nhỏ nhất (Prim, Kruskal), hoặc đường đi ngắn nhất (Dijkstra, Floyd). Đây là phần khó, thường xuất hiện ở đề cấp tỉnh và chuyên Tin.
3. Lợi ích khi luyện 50 đề thi Tin học HSG
Học sinh khi luyện bộ đề này sẽ đạt được nhiều kỹ năng quan trọng:
✅ Nắm chắc cấu trúc lập trình cơ bản: vòng lặp, điều kiện, hàm, mảng, chuỗi. ✅ Hiểu rõ tư duy thuật toán: cách phân tích đề, chia bài toán nhỏ, tìm hướng tối ưu. ✅ Làm quen với phong cách ra đề của các tỉnh – chuẩn bị tốt cho kỳ thi thật. ✅ Tăng tốc độ lập trình và tư duy khi viết code.
Kết luận
Bộ 50 Đề thi học sinh giỏi Tin học trên cả nước Việt Nam là tài liệu không thể thiếu cho những ai đam mê lập trình và mong muốn đạt giải cao trong các kỳ thi học sinh giỏi. Mỗi đề là một thử thách thú vị, giúp bạn nâng cao tư duy thuật toán, khả năng lập trình và tốc độ xử lý vấn đề.
Hãy tải về, luyện tập hằng ngày và chinh phục ước mơ trở thành học sinh chuyên Tin giỏi nhất!
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é !
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à Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.
Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.
Bài 1: Tiền điện (4,0 điểm) Tên chương trình: ELCOST.*
Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:
Bậc 1: 100 Kwh đầu tiên, có giá là 2500 đồng/Kwh
Bậc 2: Từ Kwh 101 đến 200, có giá là 3000 đồng/Kwh
Bậc 3: Từ Kwh 201 trở lên, có giá là 3500 đồng/Kwh
Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.
Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:
Dòng 1: Chứa số nguyên dương n (1 < n < 104) là số lượng hộ gia đình.
Dòng 2: Chứa n số nguyên dương ai (1 < i < n, 1 < ai < 104), với mỗi ai là số Kwh sử dụng của hộ gia đình thứ i. Giữa hai số liên tiếp được cách nhau bởi một dấu cách.
Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.
Ví dụ:
ELCOST.INP
ELCOST.OUT
3
15 165 205
1050000
Giải thích:
Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205
Số tiền hộ thứ nhất: 15*2500 = 37500
Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000
Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500
Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000
Bài 2: Độ mạnh của xâu (4,0 điểm) Tên chương trình: STRONG.*
Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.
Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.
Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.
Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.
Ví dụ:
STRONG.INP
STRONG.OUT
xy11z2yyzxy0y
30
ggggg__________________
5
Giải thích:
Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.
Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.
Bài 3: Tổng dòng cột (4,0 điểm) Tên chương trình: SUM.*
Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.
Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:
Dòng 1: Chứa hai số nguyên dương theo thứ tự là m, n (1 < m, n < 102). Giữa hai số cách nhau bởi một dấu cách.
m dòng tiếp theo, mỗi dòng chứa n số nguyên dương aij (0 < aij < 109). Giữa hai số liên tiếp được cách nhau bởi một dấu cách.
Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.
Ví dụ:
SUM.INP
SUM.OUT
2 3
10
3 2 4
2 1 5
Giải thích: Ma trận b là 11 10 14 11 10 12
Nên giá trị nhỏ nhất trong ma trận b là 10.
Bài 4: Xâu lặp (4,0 điểm) Tên chương trình: SUBSTR.*
Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.
Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).
Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:
Dòng 1: Chứa số nguyên dương n (1 < n < 103) là số lượng xâu.
n dòng tiếp theo, mỗi dòng chứa một xâu có độ dài không quá 103 kí tự.
Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.
Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.
Ví dụ:
SUBSTR.INP
SUBSTR.OUT
4
xyabach
xyxyxyxy
abcab
abacabac
hhh
Giải thích:
Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.
Bài 5: Phần thưởng (4,0 điểm) Tên chương trình: GIFT.*
An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.
Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.
Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.
Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.
Ví dụ:
GIFT.INP
GIFT.OUT
2 4 3 5 7 8 6
4
1 5 4 3 5 6 6 5 8 6
3
Giải thích:
Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)
Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –
Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.
Tiền xử lý tổng hàng và tổng cột để tính giá trị của ma trận B trong O(1).
Duyệt nhanh để tìm giá trị nhỏ nhất.
Code Python
import sys
sys.stdin = open("SUM.INP", "r")
sys.stdout = open("SUM.OUT", "w")
m, n = map(int, input().split())
ma_tran = [list(map(int, input().split())) for _ in range(m)]
tong_dong = [sum(hang) for hang in ma_tran]
tong_cot = [sum(ma_tran[i][j] for i in range(m)) for j in range(n)]
gia_tri_nho_nhat = float('inf')
for i in range(m):
for j in range(n):
b_ij = tong_dong[i] + tong_cot[j] - ma_tran[i][j]
gia_tri_nho_nhat = min(gia_tri_nho_nhat, b_ij)
print(gia_tri_nho_nhat)
⏳ Độ phức tạp: O(m × n).
Đáp án bài 4: Xâu lặp (SUBSTR)
Ý tưởng tối ưu
Duyệt từ 1 → len(s)//2 để tìm đoạn lặp ngắn nhất.
Kiểm tra nhanh bằng cách ghép đoạn lặp nhiều lần.
Code Python
import sys
sys.stdin = open("SUBSTR.INP", "r")
sys.stdout = open("SUBSTR.OUT", "w")
def tim_doan_dau(xau):
n = len(xau)
for do_dai in range(1, n + 1):
if n % do_dai == 0 and xau == xau[:do_dai] * (n // do_dai):
return xau[:do_dai]
return xau
n = int(input().strip())
ket_qua = []
for _ in range(n):
xau = input().strip()
ket_qua.append(tim_doan_dau(xau))
print("".join(ket_qua))
⏳ Độ phức tạp: O(n²) trong trường hợp xấu nhất, nhưng thường nhanh hơn.
Đáp án bài 5: Phần thưởng (GIFT)
Ý tưởng tối ưu
Duyệt 1 lần qua danh sách để tìm dãy tăng dần dài nhất (O(n)).
Tất cả các bài toán đều chạy tối ưu và có thể xử lý nhanh dữ liệu lớn!
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é !
Rồi các em đã giải đến đề thứ 19 thi HSG Tin 9 C ++ hoặc Python là các em đã có nhiều kinh nghiệm để chuẩn bị thi cấp huyện cho tốt rồi! Các em nào chưa giải bắt đầu từ đề 1 các em nên giải từ đề 1 trước vì mình giải đề từ cơ bản đến nâng cao các em nhé! Chúc các em vượt qua kỳ thi và đạt được kết quả thật tốt các em nhé !
Đây đã là đề thi số 19 Đề 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é!
Giải ngay đề 19 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2024 – 2025 !
TỔNG QUAN CÁC BÀI THI
Thứ tự
Tên bài
File
chương
trình
File dữ liệu
vào
File kết quả
Bài 1
Phân loại cận thị
D201.*
D201.INP
D201.OUT
Bài 2
In những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n
D202.*
D202.INP
D202.OUT
Bài 3
Đếm số lượng số trong mảng có tổng các ước là số lẻ
D203.*
D203.INP
D203.OUT
Bài 4
Xóa các từ trùng lặp trong xâu s
D204.*
D204.INP
D204.OUT
Bài 5
Mã hóa xâu s
D205.*
D205.INP
D205.OUT
Bài 1 ( 4 điểm ): Phân loại cận thị ?
Diễn giải:
Một robot AI được huấn luyện để làm nhiệm vụ phân loại mức độ cận thị của học sinh, người huấn luyện dựa vào số độ (Diop) được xác định bằng thiết bị chuyên dụng gắn trên robot. Dưới đây là phân loại mức độ cận thị:
Cận thị nhẹ: Độ cận dưới 3.0 Diop.
Cận thị trung bình: Độ cận từ 3.0 Diop đến dưới 6.0
Cận thị nặng: Độ cận từ 0 Diop dưới 10.0 Diop.
Cận thị cực đoan: Độ cận từ 10.00 Diop trở lên.
Nhập vào số độ cận thị của một người, hãy cho biết người này đang ở mức độ cận thị nào.
Input: Một số thực có giá trị từ 0 đến 10 mũ 2 cho biết giá trị của độ cận.
Output: Kết quả mức độ theo mô tả trên (không có dấu tiếng Việt, ký tự đầu tiên là chữ in hoa).
Ví dụ:
D201.INP
D201.OUT
1.75
Can thi nhe
3.25
Can thi trung bình
Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?
Diễn giải:
Nhập vào hai sổ nguyên m và n (m<=n). In những số nguyên tố mà đảo ngược của
sổ đó cũng lả số nguyên tố của các sổ nguyên từ m đến n
Input: Hai số nguyên dương m vả n (0<m, n<106), mỗi số trên một dòng.
Output: Những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố theo thứ tự từ m đến n, các số cách nhau một dấu cách.
Ví dụ:
Input
Output
11
15
11 13
2
13
2 3 5 7 11 13
Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?
Diễn giải:
Nhập vào một mảng a có n số nguyên: a0, a1, a2,…..an
Đếm số lượng số trong mảng có tổng các ước dương là số lẻ.
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ượng số trong mảng có tổng các ước dương là số lẻ.
Nếu không có số nào có tổng các ước dương là số lẻ trong mảng thì in “-“
Ví dụ:
Input
Output
7
2
9
6
3
15
10
7
-2
5
1
7
3
6
0
Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?
Diễn giải:
Nhập vào một xâu s.
Xóa các từ trùng lặp trong xâu s (giữ lại một từ).
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: Xâu s đã được xóa các từ trùng lặp.
Ví dụ:
Input
Output
Toi moi mua mot chiec PC moi, PC moi, that su rat moi
Toi moi mua mot chiec PC that su rat
Chiec PC moi chay that muot
Chiec PC moi chay that muot
Bài 5: (4 điểm) Mã hóa xâu s ?
Diễn giải:
Nhập vào một xâu s và một số tự nhiên k.
Mã hoá xâu s bằng cách đổi tất cả ký tự sang ký tự mới cách ký tự cũ k đon vị trong bảng mã ASCII
Input: Xâu s trên một dòng một, có độ dài không vượt quá 105, chứa các ký tự là chữ cái in hoa, chữ sổ, ký hiệu và các dấu cách. Dòng hai là sổ tự nhiên k (0<k<27)
Output: Kết quả xâu s đã được mã hoá
Ví dụ:
Input
Output
LAP TRINH
3
ODS#WULỌK
XIN CHAO, TOI LA MAY VI TINH 10
bSX*MRKY6*AYS*VK*WKc*’S*Ã
Bài 1 ( 4 điểm ): Phân loại cận thị ?
import sys
sys.stdin=open('D201.INP','r')
sys.stdout=open('D201.OUT','w')
n=float(input())
if n<3.0:
print('Can thi nhe')
if 3.0<=n<6.0:
print('Can thi trung binh')
if 6.0<=n<10.0:
print('Can thi nang')
if n>10.00:
print('Can thi cuc doan')
Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?
import sys
sys.stdin=open('D202.INP','r')
sys.stdout=open('D202.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
def daonguoc(n):
s=str(n)
s=s[::-1]
return int(s)
m=int(input())
n=int(input())
for i in range(m,n+1):
if ktnt(i) and ktnt(daonguoc(i)):
print(i,end=' ')
Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?
import sys
sys.stdin=open('D203.INP','r')
sys.stdout=open('D203.OUT','w')
def tonguoc(n):
tong=0
for i in range(1,n+1):
if n%i==0:
tong+=i
return tong
n=int(input())
a=[]
for i in range(n):
a.append(int(input()))
dem=0
for i in range(len(a)):
if tonguoc(abs(a[i]))%2!=0:
dem+=1
if dem==0:
print('-')
else:
print(dem)
Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?
import sys
sys.stdin=open('D205.INP','r')
sys.stdout=open('D205.OUT','w')
def Mahoaxaus(s,k):
tong=''
for i in s:
tong+=chr(ord(i)+k)
return tong
s=input()
k=int(input())
ketqua=Mahoaxaus(s,k)
print(ketqua)
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é !
Mến chào các em yêu thích môn lập trình Python! Để các em có thể chuẩn bị tốt cho kỳ thi học sinh giỏi cấp huyện sắp tới Thầy đã Tuyển tập Bộ đề thi học sinh giỏi trung học phổ thông môn Tin học. Trong đó có 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 để các em có thể dễ dàng ôn luyện để có thể dễ dàng thi đậu kỳ thi học sinh giỏi tin học cấp huyện sắp tới ! Chúc các em thành công !
Đây đã là đề thi số 18 Đề 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é!
Giải ngay đề 18 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 !
Thứ tự
Tên bài
File
chương
trình
File dữ liệu
vào
File kết quả
Bài 1
Phân loại nguy cơ nhiễm Covid
D191.*
D191.INP
D191.OUT
Bài 2
ln số đảo ngược của các số nguyên từ m đến n
D192.*
D192.INP
D192.OUT
Bài 3
In các số có tổng chữ số là số chính phương trong mảng
D193.*
D193.INP
D193.OUT
Bài 4
Đếm số lần xuất hiện của một từ trong xâu
D194.*
D194.INP
D194.OUT
Bài 5
Tách các thành phần trong số điện thoại bàn
D195.*
D195.INP
D195.OUT
Bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?
Diễn giải:
Để đánh giá nguy cơ dịch COVID-19, người ta dựa vào số lượng F0 được phát hiện hàng tuần trong cộng đồng.
Nhập vào số lượng F0 mới được phát hiện dương một xã (thị trấn) là một số nguyên n (0 < n < 105), hãy trả lời mức độ theo qui ước:
Nguy cơ thấp: 0 < n < 20
Nguy cơ trung bình: 20 <=n <50
Nguy cơ rất cao: 150 <=n
Input: Một số nguyên có giá trị từ 0 đến 10 mũ 5 cho biết giá trị của n.
Ouput: Kết quả theo mô tả trên.
Ví dụ:
INPUT
OUTPUT
21
Nguy co trung binh
63
Nguy co cao
Bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?
Diễn giải:
Nhập vào hai số nguyên m và n (m<=n).
In số đảo ngược của các số nguyên từ m đến n.
Input: Hai số nguyên dương m và n (0<m, n<10 mũ 5 ), trên một dòng, cách nhau bởi dấu cách.
Output: Số đảo ngược của các số nguyên theo thứ tự từ m đến n, các số cách nhau một dấu cách.
Ví dụ:
Input
Output
11 15
11 21 31 41 51
2 13
2 3 4 5 6 7 8 9 1 11 21 31
Bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?
Diễn giải:
Nhập vào một mảng a có n số nguyên: a0, a1, a2, …..an. In các số có tổng chữ số số chính phương trong mảng theo thứ tự xuất hiện.
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á 10s.
Output:
Các có tổng chữ sổ là số chính phương trong mảng trên cùng một dòng, theo thứ tự xuất hiện, cách nhau bới dấu cách.
Nếu không có sổ có tổng chữ số là số chính phương nào trong mảng thì in dấu “-“
Ví dụ:
Input
Output
7
18 97 10 -31
18
61
97
8
10
17
-31
5
72 81 0 22
72
3
81
0
22
Bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?
Diễn giải:
Nhập vào một xâu s và một từ X.
Đếm số lần xuất hiện của X trong xâu s
Input:
Xâu s trên dòng một, 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.
Xâu X trên dòng hai là một từ chứa chữ cái với độ dài không vượt quá 10 mũ 2
Output: Số lần xuất hiện của từ X trong xâu.
Ví Dụ:
Input
Output
Toi moi mua mot chiec PC moi, PC moi, that su rat moi! moi
4
Chiec PC moi chay that muot
ngon
0
Bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?
Diễn giải:
Nhập vào một chuỗi s là số điện thoại bàn đầy đủ. Tách các thành phần trong số điện thoại: mã quốc gia, mã vùng, số điện thoại chính.
Input: Chuỗi s trên một dòng, có độ dài không vượt quá 102, chứa các chữ cái, chữ số, và ký hiệu. Các thành phần phân tách nhau bởi dấu cách
Output: In mã quốc gia trên dòng một, mã vùng trên dòng hai và số điện thoại chính trên dòng ba
Ví dụ:
Input
Output
+1 212 5551234
+1
212
5551234
+84 273 987654321
+84
273
987654321
Đáp án bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?
import sys
sys.stdin=open('D191.INP','r')
sys.stdout=open('D191.OUT','w')
n=int(input())
if 0<=n<20:
print('Nguy co thap')
elif 20<=n<50:
print('Nguy co trung binh')
elif 50<=n<150:
print('Nguy co cao')
elif 150<=n:
print('Nguy co rat cao')
Đáp án bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?
import sys
sys.stdin=open('D192.INP','r')
sys.stdout=open('D192.OUT','w')
def daonguoc(n):
s=str(n)
s=s[::-1]
return int(s)
m,n=map(int,input().split())
for i in range(m,n+1):
print(daonguoc(i),end=' ')
Đáp án bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?
import sys,math
sys.stdin=open('D193.INP','r')
sys.stdout=open('D193.OUT','w')
def tcs(n):
tong=0
while n>0:
tong+=n%10
n=n//10
return tong
def ktcp(n):
if n<0:
return False
x=int(math.sqrt(n))
return x*x==n
n=int(input())
a=[]
while True:
try:
line=input()
try:
x=int(line)
a.append(x)
except ValueError:
break
except EOFError:
break
dem=0
for i in range(len(a)):
if ktcp(tcs(abs(a[i]))):
dem+=1
print(a[i],end=' ')
if dem==0:
print('-')
Đáp án bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?
Đáp án bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?
import sys
sys.stdin=open('D195.INP','r')
sys.stdout=open('D195.OUT','w')
a=list(map(str,input().split()))
for i in range(len(a)):
print(a[i])
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é !
Để có thể thi đậu kỳ thi học sinh giỏi tin học sắp tới các em chỉ cần ” Cài Cuốc “ các dạng đề của thầy cho là có thể dễ dàng thi đậu điểm cao trong kỳ thi khó khăn và đầy thử thách phía trước! Để làm được điều đó các em phải giải hết 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mớinhất ! Thầy chúc tất cả các em điều đạt được kết quả tốt các em nhé ! Rồi hãy bắt tay vào giải ngay 14 đề bồi dưỡng học sinh giỏi tin học thôi nào!
Đây đã là đề thi số 14 Đề 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é!
Rồi còn chờ gì nữa hãy nhanh tay giải ngay đề 14 thi học sinh giỏi Tin Học Python cấp huyện !
Thứ tự
Tên bài
File
chương
trình
File dữ liệu vào
File kết quả
Bài 1
Phân loại bằng lái xe hạng A
D151.*
D151.INP
D151.0UT
Bài 2
Tính tổng những số có tổng chữ số là số nguyên tố từ m đến n
D152.*
D152.INP
D152.0UT
Bài 3
Đếm số lượng số nguyên tố trong mảng
D153.*
D153.INP
D153.0UT
Bài 4
Tìm tên trong xâu họ và tên
D154.*
D154.INP
D154.0UT
Bài 5
Tách các thành phần trong địa chỉ
D155-*
D155.INP
D155.0UT
Bài 1: (4 điểm) Phân loại bằng lái xe hạng A ?
Diễn giải:
Bằng lái xe hạng A1: Người lái xe mô tô hai bánh có dung tích xy lanh từ 50 cm3 đến dưới 175 cm3.
Bằng lái xe hạng A2: Người lái xe để điều khiển xe mô tô hai bánh có dung tích xy lanh từ 175 cm3 trở lên.
Bằng lái xe hạng A3: Hạng A3 cấp cho người lái xe để điều khiển xe mô tô ba bánh.
Input: Hai số nguyên m,n trên một dòng, cách nhau bởi dấu cách, cho biết loại xe mấy bánh và dung tích xy lanh ( 2<=m<=3, 50<=n<500).
Output: Hạng của bằng lái xe
Ví dụ:
Input
Output
2 70
A1
3 100
A3
Bài 2: (4 điểm) Tính tổng những số có tổng chữ số là số nguyên tố 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 những số có tổng chữ số là số nguyên tố từ m đến n.
Input: Hai so 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: Là tông những số có tổng chữ số là số nguyên tố từ m đến n.
Ví dụ:
Input
Output
11 15
37
2 13
40
Bài 3: ( 4 điểm ) Đếm số lượng số nguyên tố trong mảng ?
Diễn giải:
Nhập vào một mảng số nguyên a: aO, al, a2, …. Đếm số lượng số nguyên tố trong mảng
Input: Mồi dòng một số nguyên có giá trị tuyệt đối không vượt quá 105.
Output: Số lượng số nguyên tố trong mảng.
Ví dụ:
Input
Output
9
2
6
3
8
10
7
-2
7
3
3
8
0
2
Bài 4: (4 điểm) Tìm tên trong xâu họ và tên ?
Diễn giải:
Nhập vào n xâu họ và tên. Tìm tên trong từng xâu đó
Input: Dòng một là số nguyên n (0<n<103). n dòng tiếp theo, mỗi dòng là một xâu họ và tên 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.
Output: Tìm tên trong từng xâu họ và tên, in các tên theo thứ tự xuất hiện của input, mỗi tên một dòng
Ví dụ:
Input
Output
8
Thinh
Pham Quoc Thinh
Phat
Tran Minh Phat
Khoa
Dinh Nguyen Khoa
Nhien
Hoang An Nhien
Thanh
Mai Nguyen Tan Thanh
Anh
Nguyen Hoai Minh Anh
Anh
Vo Hoai Anh
Khang
Tran Duy Khang
13
Long
Tran Tien Long
Nam
Nguyen Huu Nam
Phat
Nguyen Minh Phat
Dung
Nguyen Tan Dung
Duy
Le Hoai Bao Duy
Anh
Tran Ngoe Van Anh
Duy
Nguyên Duc Duy
Phuc
Pham Nguyên Thien Phuc
Dang
Nguyên Minh Dang
Loc
Duong Phu Loc
Sang
Pham Thanh Sang
Van
Nguyên Thi Bao Van
Man
Le Nguyên Trieu Man
Bài 5: (4 điểm) Tách các thành phần trong địa chỉ ?
Diễn giải:
Nhập vào một chuỗi s là địa chỉ gồm số nhà, tên đường, ấp, xà, huyện, tỉnh. Tách các phần trong địa chỉ
Input:
Chuỗi s trên một dòng, có độ dài không vượt quá 10 mũ 3,
Chứa các ký tự là chữ cái, chữ số, ký hiệu, mỗi thành phần được phân tách bởi dấu phẩy (,) theo thứ tự là số nhà, tên đường, ấp, xà, huyện, tỉnh.
Output: In các thành phần tách được trên từng dòng
Ví dụ:
Input
Output
123/5, duong huyen 35, ap Vinh Thanh, xa Vinh Kim, huyen Chau Thanh, tinh Tien Giang
123/5
duong huyen 35 ap Vinh Thanh xa Vinh Kim huy en Chau Thanh tình Tien Giang
5, duong Hoa Binh, ap Hanh Phuc, xa Vui Ve, huyen Niem No, tinh Khong Quau
5
duong Hoa Binh ap Hanh Phuc xa Vui Ve huyen Niem No tinh Khong Quau
Đáp án bài 1: (4 điểm) Phân loại bằng lái xe hạng A ?
import sys
sys.stdin=open('D151.INP','r')
sys.stdout=open('D151.OUT','w')
m,n=map(int,input().split())
if m==2:
if 50<=n<175:
print('A1')
elif n>175:
print('A2')
else:
print('A3')
Đáp án bài 2: (4 điểm) Tính tổng những số có tổng chữ số là số nguyên tố từ m đến n ?
import sys
sys.stdin=open('D152.INP','r')
sys.stdout=open('D152.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
def tcs(n):
t=0
while n>0:
t+=n%10
n//=10
return t
m,n=map(int,input().split())
tong=0
for i in range(m,n+1):
if ktnt(tcs(i)):
tong+=i
print(tong)
Đáp án bài 3: ( 4 điểm ) Đếm số lượng số nguyên tố trong mảng ?
import sys
sys.stdin=open('D153.INP','r')
sys.stdout=open('D153.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
a=[]
while True:
try:
line=input()
try:
x=int(line)
a.append(x)
except ValueError:
break
except EOFError:
break
dem=0
for i in range(len(a)):
if ktnt(a[i]):
dem+=1
print(dem)
Đáp án bài 4: (4 điểm) Tìm tên trong xâu họ và tên ?
import sys
sys.stdin=open('D154.INP','r')
sys.stdout=open('D154.OUT','w')
n=int(input())
a=[]
for i in range(n):
a.append(input())
b=[]
for i in range(len(a)):
x=a[i].split()
b.append(x[-1])
for i in range(len(b)):
print(b[i])
Đáp án bài 5: (4 điểm) Tách các thành phần trong địa chỉ ?
import sys
sys.stdin=open('D155.INP','r')
sys.stdout=open('D155.OUT','w')
#Cách 1
n=input().split(',')
for i in n:
print(i)
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 được các đề thi học sinh giỏi Tin Học THCS các em cần phải giải thường xuyên các đề thi học sinh giỏi cấp huyện thì các em có thể nắm các dạng đề để chuẩn bị tốt nhất cho các kỳ thi sắp tới! cho nên thầy đã soạn ra hơn 13 Đề thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024. Các em hãy xem các bài tập bên dưới ngay và tự giải nhé ! khi nào khó khăn quá hãy xem bài giải có đáp án phía dưới các em nhé !
Đây đã là đề thi số 13 Đề 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é!
Rồi còn chờ gì nữa hãy nhanh tay giải ngay đề 13 thi học sinh giỏi Tin Học Python cấp huyện !
Thứ tự
Tên bài
File
chương
trình
File dữ liệu vào
File kết quả
Bài 1
Phân loại đường dây điện
D141.*
D141.INP
D141.OUT
Bài 2
In tổng chữ số của các số nguyên từ m đến n
D142.*
D142.INP
D142.OUT
Bài 3
In các số nguyên tố trong mảng
D143.*
D143.INP
D143.OUT
Bài 4
Tính tổng các chữ số có trong xâu s
D144.*
D144.INP
D144.OUT
Bài 5
Kiểm tra chuỗi s có phải là một địa chỉ email
D145.*
D145.INP
D145.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) Phân loại đường dây điện ?
Diễn giải:
Cao thế: Điện áp từ 500 KV trở lên
Trung thế: Điện áp từ 100 KV đến 499 KV
Hạ thế: Điện áp dưới 100 KV
Input: Số nguyên X là điện áp đi qua của đường dây (0<=x<=5000)
Output: Loại theo mô tả trên
Ví dụ:
input
output
620
Cao the
85
Ha the
Bài 2: (4 điểm) In tổng chữ số của các số nguyên từ m đến n ?
Diễn giải:
Nhập vào hai số nguyên m và n (m<=n).
In ra tổng chữ số của các số nguyên từ m đến n
Input: Hai số nguyên dương m và n (0<m, n<106), mỗi số trên một dòng.
Output: Tổng chữ số của các số nguyên theo thứ tự từ m đến n, các số cách nhau một dấu cách.
Ví dụ:
Input
Output
11
15
2 3 4 5 6
2
13
2 3 4 5 6 7 8 9 1 2 3 4
Bài 3: (4 điểm) in các số nguyên tố trong mảng ?
Diễn giải:
Nhập vào một mảng số nguyên a: ao, ai, &2, ….
In các số nguyên tố trong mảng theo thứ tự xuất hiện.
Input: Mỗi dòng một số nguyên có giá trị tuyệt đối không vượt quá 105.
Output: Các số nguyên tố trong mảng trên cùng một dòng, theo thứ tự xuất hiện, cách nhau bởi dấu cách. Nếu không có số nguyên tố nào trong mảng thì in “-“
Ví dụ:
Input
Output
9
3 7
6
3
8
10
7
-2
7
7 3 2
3
8
0
2
Bài 4: (4 điểm) Tính tổng các chữ số có trong xâu s ?
Diễn giải:
Nhập vào một xâu s.
Tính tổng các chữ số có 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: Tổng các chữ số có trong xâu s
Ví dụ:
Input
Output
Toi hoc LAP TRINH C++ tu nam 2024
8
Thi HOC SINH GIOI mon Tin Hoc vao thang 02 nam 2024
10
Bài 5: (4 điểm) Kiểm tra chuỗi s có phải là một địa chỉ email ?
Diễn giải:
Nhập vào một chuỗi s. Kiểm tra xem chuỗi s có phải là một địa chỉ email, một chuỗi s là email hợp lệ khi:
Bắt đầu bằng một chữ cái.
Chứa ít nhất một chữ cái, một chữ số, một dấu chấm (.)
Chứa đúng một dấu @.
Sau dấu @ là một tên miền (có ít nhất một dấu chấm nam giữa tên miền).
Input: Chuỗi s trên một dòng, có độ dài không vượt quá 10 mủ 2, chứa các ký tự là chữ cái, chữ số, ký hiệu, và các dấu cách.
Output: In “Yes” nếu s là một địa chỉ email hợp lệ, ngược lại là “No”
Đáp án bài 2: (4 điểm) In tổng chữ số của các số nguyên từ m đến n ?
import sys
sys.stdin=open('D142.INP','r')
sys.stdout=open('D142.OUT','w')
def tcs(n):
t=0
while n>0:
t+=n%10
n//=10
return t
m=int(input())
n=int(input())
for i in range(m,n+1):
print(tcs(i),end=' ')
Đáp án bài 3: (4 điểm) in các số nguyên tố trong mảng ?
import sys
sys.stdin=open('D143.INP','r')
sys.stdout=open('D143.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
a=[]
while True:
try:
line=input()
try:
x=int(line)
a.append(x)
except ValueError:
break
except EOFError:
break
dem=0
for i in range(len(a)):
if ktnt(a[i]):
dem+=1
print(a[i],end=' ')
if dem==0:
print('-')
Đáp án bài 4: (4 điểm) Tính tổng các chữ số có trong xâu s ?
import sys
sys.stdin=open('D144.INP','r')
sys.stdout=open('D144.OUT','w')
n=input()
a=list(n)
tong=0
for i in n:
if i.isdigit():
tong+=int(i)
print(tong)
Đáp án bài 5: (4 điểm) Kiểm tra chuỗi s có phải là một địa chỉ email ?
import sys
sys.stdin=open('D145.INP','r')
sys.stdout=open('D145.OUT','w')
s=input()
dk1=0
if s[0].isalpha():
dk1=1
dk2=0
dk21=dk1
dk22=0
dk23=0
for i in range(len(s)):
if s[i].isnumeric():
dk22=1
break
for i in range(len(s)):
if s[i]=='.':
dk23=1
break
if dk21==1 and dk22==1 and dk23==1:
dk2=1
dk3=0
if s.count('@')==1:
dk3=1
vt=s.find('@')
dk4=0
for i in range(vt,len(s)):
if s[i]=='.':
dk4=1
dk5=1
if (not s[vt-1].isalnum()) or (not s[vt+1].isalnum()):
dk5=0
if dk1==1 and dk2==1 and dk3==1 and dk4==1 and dk5==1:
print('Yes')
else:
print('No')
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é !
Đến hẹn lại lên hôm nay thầy ra tiếp đề 10 thi tin học trẻ THPT có đáp án và tài liệu hay nhất 2024 để các em dễ dàng tham khảo và thi thử chuẩn bị cho kỳ thi học sinh giỏi tin học sắp tới nhé !
Đây đã là đề thi thứ 10 chuyên dùng để bồi dưỡng học sinh giỏi Tin học lớp 9
Rồi các em nếu chưa làm từ đề 1 hãy giải từ đề 1 trước rồi mới làm đề này các bạn nhé tại các đề từ dễ đến nâng cao!
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é!
Đáp án bài 2: Tính trung bình cộng những số nguyên tố từ m đến n?
import sys
sys.stdin=open('D112.INP','r')
sys.stdout=open('D112.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
m,n=map(int,input().split())
dem=0
tong=0
for i in range(m,n+1):
if ktnt(i):
dem+=1
tong+=i
tbc=0
if dem>0:
tbc=tong/dem
print('%0.1f'%tbc)
Đáp án bài 3: Tìm số âm nhỏ nhất trong mảng và vị trí?
import sys
sys.stdin=open('D113.INP','r')
sys.stdout=open('D113.OUT','w')
a=list(map(int,input().split()))
b=[]
for i in range(len(a)):
if a[i]<0:
b.append(a[i])
if len(b)>0:
M=min(b)
for i in range(len(a)):
if a[i]==M:
vt=i
break
print(M)
print(vt)
else:
print('-')
Đáp án bài 4: Đếm số lượng ký hiệu trong xâu s?
import sys
sys.stdin=open('D114.INP','r')
sys.stdout=open('D114.OUT','w')
s=input()
s=s.replace(' ','')
so=0
chu=0
kytu=0
for i in range(len(s)):
if s[i].isdigit():
so+=1
elif s[i].isalpha():
chu+=1
else:
kytu+=1
print(kytu)
Đáp án bài 5: In các xâu con trong xâu s
import sys
sys.stdin=open('D115.INP','r')
sys.stdout=open('D115.OUT','w')
def inxauconne(n):
a=[]
for i in range(len(n)):
for j in range(i+1,len(n)+1):
a.append(n[i:j])
return a
def inranao(n):
s=inxauconne(n)
for i in range(len(s)):
print(s[i])
s=input()
inranao(s)
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é !
Thầy rất đam mê và rất thích lập trình từ rất lâu ! Nên thầy muốn chia sẻ niềm đam mê của thầy với các em nên thầy đã soạn ra đề 9 thi HSG Tin học lớp 8 lập trình Python trong 20 đề ôn thi bồi dưỡng thi học sinh giỏi cấp huyện và tỉnh
Đây đã là đề thi thứ 09 chuyên dùng để bồi dưỡng học sinh giỏi Tin học lớp 8
Rồi các em nếu chưa làm từ đề 1 hãy giải từ đề 1 trước rồi mới làm đề này các bạn nhé tại các đề từ dễ đến nâng cao!
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é!
Đáp án bài 2: Tính tổng những số nguyên tố từ m đến n
import sys
sys.stdin=open('D102.INP','r')
sys.stdout=open('D102.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
m=int(input())
n=int(input())
tong=0
for i in range(m,n+1):
if ktnt(i):
tong+=i
print(tong)
Đáp án bài 3: Tính trung bình cộng các số âm trong mảng
import sys
sys.stdin=open('D103.INP','r')
sys.stdout=open('D103.OUT','w')
a=list(map(int,input().split()))
tong=0
dem=0
for i in range(len(a)):
if a[i]<0:
tong+=a[i]
dem+=1
tbc=0
if dem>0:
tbc=tong/dem
print('%0.1f'%tbc)
else:
print('0.0')
Đáp án bài 4: Đếm số lượng chữ số trong xâu s
import sys
sys.stdin=open('D104.INP','r')
sys.stdout=open('D104.OUT','w')
s=input()
dem=0
for i in range(len(s)):
if s[i].isdigit():
dem+=1
print(dem)
Đáp án bài 5: Đếm xem có bao nhiêu số Happy từ m đến n
import sys
sys.stdin=open('D105.INP','r')
sys.stdout=open("D105.OUT",'w')
def tcs(n):
a=str(n)
t=0
for i in range(len(a)):
t+=int(a[i])**2
return t
def Happy(n):
b=[]
while not n in b:
b.append(n)
n=tcs(n)
for i in range(len(b)):
if b[i]==1:
return True
def in_so(m,n):
dem=0
c=[]
for i in range(m,n+1):
if Happy(i):
dem+=1
c.append(i)
if dem==0:
print('-1')
else:
for i in range(len(c)):
print(c[i],end=' ')
m=int(input())
n=int(input())
in_so(m,n)
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é !
Thầy mến chào các em yêu thích môn tin học mà đặc biệt là các em yêu thích môn lập trình Python. Để chuẩn bị tốt cho kỳ thi học sinh giỏi cấp huyện, cấp tỉnh hoặc thi vào các trường Chuyên Tin vào lớp 10. Thầy sẽ làm tới 100 đề và đáp án thi HSG Tin Python mới nhất năm 2024 để các em có thể tham khảo và tập làm quen với các dạng đề để chuẩn bị thi cho tốt! Thầy chúc các em đạt được kết quả cao nhất trong kỳ thi sắp tới nhé !
Đây đã là đề thi số 5 đề và đáp án thi HSG Tin Python cấp huyện và cấp tỉnh
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é!
Đáp án bài 2: Tính trung bình cộng những số nguyên chia hết cho 2 hoặc 3 từ m đến n
import sys
sys.stdin=open('D052.INP','r')
sys.stdout=open('D052.OUT','w')
m=int(input())
n=int(input())
tong7=0
for i in range(m,n+1):
if i%7==0:
tong7+=1
print(tong7,end=' ')
tong=0
dem=0
for i in range(m,n+1):
if i%2==0 or i%3==0:
tong+=i
dem+=1
tbc=0
if dem>0:
tbc=tong/dem
print('%0.1f'%tbc)
Đáp án bài 3: Tìm số nhỏ nhất trong mảng và vị trí
import sys
sys.stdin=open('D053.INP','r')
sys.stdout=open('D053.OUT','w')
n=int(input())
a=[]
for i in range(n):
a.append(int(input()))
M=min(a)
vt=a.index(M)
print(M)
print(vt)
Đáp án bài 4: In các từ viết thường trong xâu
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.islower():
print(i,end=' ')
Đáp án bài 5: Kiểm tra xem số nguyên n có trong dãy số Pell
import sys
sys.stdin=open('D055.INP','r')
sys.stdout=open('D055.OUT','w')
def Pell(n):
pell1=[0,1]
while pell1[-1]<=n:
pell2=2*pell1[-1]+pell1[-2]
pell1.append(pell2)
return pell1
n=int(input())
a=Pell(n)
if n in a:
print('Yes')
print(a.index(n))
else:
print('No')
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é !
Thầy rất vui được gặp lại các em đam mê lập trình python nhé! Đây là đã qua đề 4 trong 20 Đề thi học sinh giỏi Tin Học THCS và THPT có đáp án kèm theo cho các em thuận tiện cho việc học ôn thi để các em chuẩn bị thi học sinh giỏi Tin Học cấp huyện sắp tới! Thầy chúc các em đạt điểm cao và đạt được thành tích tốt nhé!
Các em có thể xem lại 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é!
Rồi sau đây là các em hãy giải đề 4 thi học sinh giỏi Tin Học Trung Học Cơ Sở hoặc ở Trung Học Phổ Thông.
Chú ý: các em nên tự giải trước xong hết rồi xem lại đáp án để tham khảo các em nhé!
Đề 4 thi học sinh giỏi Tin Học Trung Học Cơ Sở:
Thứ tự
Tên hài
File
chương
trình
File dữ liệu vào
File kết quả
Bài 1
Tính cấp độ bão
D041*
D041.1NP
D041.OUT
Bài 2
Tính trung bình cộng những số nguyên chẵn từ m đến n
D042*
D042.1NP
D042.OUT
Bài 3
Tính trung bình cộng các số không chia hết cho 3 trong mảng
D043 *
D043.1NP
D043.OUT
Bài 4
In các từ có chiều dài là số nguyên tố trong xâu s
D044.*
D044.INP
D044.OUT
Bài 5
In số Harshad thứ n
D045 *
D045.INP
D045.OUT
Bài 1: (4 điểm) Tính cấp độ bão
Diễn Giải : Nhập vào tốc độ gió (đơn vị km/h) của một cơn 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 cấp nào sau đây:
Nếu tốc độ gió trung bình dưới 89: Không phải bão
Nếu tốc độ gió trung bình từ 89 đến dưới 102: cấp 10
Nếu tốc độ gió trung bình từ 102 đến dưới 117: cấp 11
Nếu tốc độ gió trung bình từ 117 đến dưới 133: cấp 12
Nếu tốc độ gió trung bình từ 133 đến dưới 149: cấp 13
Nếu tốc độ gió trung bình lừ 149 đến dưới 166: cấp 14
Nếu tốc độ gió trung bình từ 166 đến dưới 183: cấp 15
Nếu tốc độ gió trung bình trên 183: Siêu bão
Input: Nhập vào 3 số nguyên a, b, c; mỗi số một dòng cho biết tốc độ gió của ở 3 địa điểm khác nhau (0<a, b, c<500).
Output: Hai dòng:
Dòng 1: Tốc độ gió trung bình (một chữ số thập phân)
Dòng 2: cấp bão
Ví dụ về input và output:
Input
Output
100
111.3
120
Cap 11
114
130
95.0
70
Cap 10
Bài 2: (4 điểm) Tính trung bình cộng những số nguyên chẵn từ m đến n
Diễn giải: Nhập vào hai số nguyên m và n (m<=n). Tính trung bình cộng các số nguyên chẵn từ m đcn n.
Input: Hai số nguycn dương m và n (0<m, n<106), mồi số trcn một dỏng.
Output: Là trung bình cộng các số nguyên chẵn từ m đến n, làm tròn đến một chữ số thập phân. Nếu không có số chẵn nào từ m đến n thì in “0.0”
Ví dụ:
Input
Output
11
15
13.0
2
13
7.0
Bài 3: (4 điểm) Tính trung bình cộng các số không chia hết cho 3 trong mảng
Diễn giải: Nhập vào một mảng a có n số nguyên: ao, ai, a2,an-i, tính trung bình cộng các số không chia hết cho 3 trong mảng
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: Trung bình cộng các số không chia hết cho 3 trong mảng, làm tròn đến ba chữ số thập phân. Nếu không có số nào thỏa điều kiện thì in “0.000”
Ví Dụ:
Input
Output
7
9
6
3
8
10
7
-2
5.750
5
20
7
6
8
0
11.667
Bài 4: (4 điểm) In các từ có chiều dài là số nguyên tố trong xâu s
Diễn giải: Nhập vào một xâu s. In các từ có chiều dài là số nguyên tố 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ừ có chiều dài là số nguyên tố trong xâu theo thứ tự xuất hiện, các từ trên một dòng, cách nhau bởi dấu cách.
Ví dụ:
Input
Output
Toi hoc LAP TRINH C++ tu nam 2023
Toi hoc LAP TRINH C++ tu nam
Thi HOC SINH GIOI mon Tin Hoc
Thi HOC mon Tin Hoc
Bài 5: (4 điểm) In sổ Harshad thứ n
Diễn Giải:
Nhập vào số nguyên dương n. In số Harshad thứ n
Số Harshad là một số tự nhiên n mà n chia hết cho tổng các chữ số của nó
Ví dụ:
n=18; tổng các chữ số của 18 là 1+8=9 và 18 chia hết cho 9 n=24; tổng các chữ số của 24 là 2+4=6 và 24 chia hết cho 6 Dãy số Harshad: 1, 2, 3,4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24,27,…
Đáp án bài 2: Tính trung bình cộng những số nguyên chẵn từ m đến n
import sys
sys.stdin=open('D042.INP','r')
sys.stdout=open('D042.OUT','w')
m=int(input())
n=int(input())
tong=0
dem=0
tbc=0
for i in range(m,n+1):
if i%2==0:
tong+=i
dem+=1
if dem>0:
tbc=tong/dem
print('%0.1f'%tbc)
Đáp án bài 3: Tính trung bình cộng các số không chia hết cho 3 trong mảng
import sys
sys.stdin=open('D043.INP','r')
sys.stdout=open('D043.OUT','w')
n=int(input())
a=[]
while True:
try:
line=input()
try:
x=int(line)
a.append(x)
except ValueError:
break
except EOFError:
break
dem=0
tong=0
tbc=0
for i in range(len(a)):
if a[i]%3!=0:
dem+=1
tong+=a[i]
if dem>0:
tbc=tong/dem
print('%0.3f'%tbc)
else:
print('0.000')
Đáp án bài 4: In các từ có chiều dài là số nguyên tố trong xâu s
import sys
sys.stdin=open('D044.INP','r')
sys.stdout=open('D044.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
s=input()
dem=0
i=0
a=[]
while dem<len(s):
if ktnt(i):
dem+=1
a.append(i)
i+=1
s=s.split()
for i in s:
for j in range(len(a)):
if len(i)==a[j]:
print(i,end=' ')
Đáp án bài 5: In sổ Harshad thứ n
import sys
sys.stdin=open('D045.INP','r')
sys.stdout=open('D045.OUT','w')
def Harshad(n):
a=str(n)
tong=0
for i in range(len(a)):
tong+=int(a[i])
if n%tong==0:
return True
else:
return False
n=int(input())
a=[]
dem=0
i=1
while dem<=n:
if Harshad(i):
dem+=1
a.append(i)
i+=1
print(a[n])
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é !