Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án)
Bài 1. MEMORY (6 điểm)
Năm 2025, Trường THPT HV kỉ niệm 15 năm thành lập trường kết hợp tổ chức cắm trại vào dịp ngày thành lập Đoàn thanh niên 26 tháng 3. Đây là lễ hội vô cùng quan trọng và lớn đối với trường, nên đã có rất nhiều khách mời là lãnh đạo các ban ngành, giáo viên – nhân viên đã và đang làm việc tại trường, cựu học sinh và học sinh đang học. Để tăng thêm phần ấn tượng cũng như tỏ lòng cảm ơn đối với khách mời, nhà trường có tổ chức trao quà lưu niệm cho một số cá nhân, tập thể đã có đóng góp lớn cho quá trình phát triển của nhà trường. Danh sách là tên các cá nhân, tập thể được lưu trong chuỗi kí tự liên tiếp.
Số lượng phần quà sẽ thay đổi liên tục do số tiền tài trợ cho chương trình có sự thay đổi theo từng ngày. Để không bị động về kinh phí trao quà, nhà trường đã giao cho Ban chấp hành Đoàn trường lập danh sách số lượng lớn nhất các cá nhân, hoặc tập thể có thể được nhận quà trong đoạn danh sách liên tiếp lấy từ danh sách ban đầu nhà trường đưa ra. Số lượng các cá nhân, tập thể được nhận quà tương ứng là số lượng chuỗi khác rỗng khác nhau có thể có sau khi bỏ một đoạn ký tự ở đầu hoặc cuối chuỗi (có thể không bỏ đoạn ký tự nào).
Yêu cầu: Bạn hãy viết chương trình giúp Ban chấp hành Đoàn trường đưa ra số lượng các cá nhân, hoặc tập thể có thể được nhận quà từ đoạn danh sách lấy ra.
Dữ liệu: Vào từ file văn bản MEMORY.INP gồm:
- Dòng đầu tiên chứa 2 số nguyên M, T lần lượt là độ dài danh sách ban đầu (1 ≤ M ≤ 2 x 105) và số lượng đoạn danh sách con (1 ≤ T ≤ 2 x 105).
- Dòng tiếp theo chứa một chuỗi S có độ dài M bao gồm các chữ cái Latin thường thể hiện tên của các cá nhân hoặc tập thể.
- T dòng tiếp theo, dòng thứ i (1 ≤ i ≤ T) gồm 2 số nguyên li và ri thể hiện một danh sách con được trích từ danh sách ban đầu từ vị trí li đến vị trí ri (1 ≤li ≤ ri ≤ M).
Lưu ý: Các số trên cùng một hàng cách nhau bởi một dấu cách.
Kết quả: Ghi ra file văn bản MEMORY.OUT gồm T dòng, dòng thứ i là một số nguyên thể hiện số lượng các cá nhân, tập thể có thể được nhận quà tương ứng với truy vấn thứ i.
Tóm tắt nội dung tài liệu: Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án)

Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net ĐỀ SỐ 1 SỞ GD&ĐT HÀ NỘI KỲ THI CHỌN HỌC SINH GIỎI CẤP TRƯỜNG TRƯỜNG THPT PHÙNG KHẮC KHỐI 10, 11 KHOAN - THẠCH THẤT ĐỀ THI MÔN: TIN HỌC - KHỐI 11 Thời gian: 150 phút, không kể thời gian giao đề Tổng quan đề thi Bài Tên bài Tên file Tên file input Tên file output Điểm 1 SỐ NGUYÊN TỐ SNT.* SNT.INP SNT.OUT 3 2 ĐẾM TRONG XÂU XAU.* STRING.INP STRING.OUT 5 3 CHƯƠNG TRÌNH CON CTC.* CTC.INP CTC.OUT 4 4 DANH SÁCH LIST.* LIST.INP LIST.OUT 4 5 FILE FILE.* FILE.INP FILE.OUT 2 6 SẮP XẾP SORT.* SORT.INP SORT.OUT 2 Dấu * là PY hoặc CPP tùy theo ngôn ngữ lập trình là PYTHON hay C++ Bài 1. Số nguyên tố (3 điểm) Viết chương trình nhập n số nguyên và cho biết dãy số vừa nhập có bao nhiêu số nguyên tố Ví dụ: SNT.INP SNT.OUP nhập số n:5 Có 2 số nguyên tố nhập phần tử thứ 1:1 nhập phần tử thứ 2:4 nhập phần tử thứ 3:2 nhập phần tử thứ 4:6 nhập phần tử thứ 5:7 Bài 2. Đếm trong xâu (5 điểm) Hãy viết chương trình nhập vào 1 câu văn và một từ, thực hiện các công việc sau đây: a. Đếm và đưa ra số kí tự là chữ số, chữ hoa, chữ thường b. Tìm số lần xuất hiện của từ vừa nhập trong câu văn đã nhập ban đầu Dữ liệu vào: Một dòng chứa 1 xâu ký tự (câu văn gồm các kí tự số, chữ cái thường và hoa, giữa các từ có dấu cách) Một dòng chứa 1 từ Dữ liệu ra: Cho biết số chữ số, số chữ thường và số chữ hoa DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net Cho biết từ nhập sau xuất hiện mấy lần trong câu văn nhập ban đầu Ví dụ: STRING.INP STRING.OUP Toi la hoc sinh nen toi phai đi hoc luc 7 gio Số chữ số: 1 Số chữ thường: 32 Số chữ hoa: 1 Hãy nhập 1 từ: hoc Từ hoc xuất hiện 2 lần Bài 3. Chương trình con (3 điểm) Viết chương trình phân tích số nguyên n thành các thừa số nguyên tố trong Python. Dữ liệu vào: Số nguyên N Dữ liệu ra: N được phân tích thành các thừa số nguyên tố Ví dụ: CTC.INP CTC.OUP Nhập số nguyên dương n = 12 Kết quả: 12 = 2 x 2 x 3 Bài 4. Danh sách (4 điểm) Viết chương trình nhập n số nguyên. Tính tổng bình phương các số âm trong dãy Dữ liệu vào: N số nguyên Dữ liệu ra: Tổng bình phương các số âm Ví dụ: LIST.INP LIST.OUP nhập số n:5 Tổng bình phương các số âm: 10 nhập phần tử thứ 1:2 nhập phần tử thứ 2:-1 nhập phần tử thứ 3:2 nhập phần tử thứ 4:-3 nhập phần tử thứ 5:4 Bài 5. File (2 điểm) Nhập vào 1 xâu là tên của 1 tệp và kiểm tra xem tên tệp đó có phải là tên của tệp chương trình Python hay không ? Dữ liệu vào: Dòng 1: Tên một tệp có đầy đủ phần tên và phần mở rộng Dữ liệu ra: Dòng 1: “Tệp mã nguồn Python” hoặc “không phải tệp mã nguồn Python” DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net Ví dụ: FILE.INP FILE.OUP Baitap1.py Baitap1.py là tệp mã nguồn Python Baitap1.cpp Baitap1.cpp không phải tệp mã nguồn Python Bài 6. Sắp xếp (2 điểm) Viết chương trình nhập vào dãy A gồm n phần tử và in ra dãy số theo thứ tự giảm dần. Dữ liệu vào: Số nguyên dương n n số nguyên Dữ liệu ra: Dãy A được sắp xếp là dãy số theo thứ tự giảm dần Ví dụ: SORT.INP SORT.OUP nhập số n:5 9 6 4 3 1 nhập phần tử thứ 1:3 nhập phần tử thứ 2:1 nhập phần tử thứ 3:6 nhập phần tử thứ 4:4 nhập phần tử thứ 5:9 ----------HẾT---------- DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net ĐÁP ÁN Câu 1: Số nguyên tố (3 điểm) Tên tệp chương trình: SNT.* def is_prime(num): """Kiểm tra xem số num có phải là số nguyên tố không""" if num <= 1: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def main(): # Đọc dữ liệu từ tệp SNT.INP with open(' SNT.INP ', 'r') as file: # Dòng đầu tiên là số lượng phần tử n n = int(file.readline().strip()) # Dòng thứ hai là dãy số nguyên numbers = list(map(int, file.readline().strip().split())) # Đếm số lượng số nguyên tố trong dãy prime_count = sum(1 for num in numbers if is_prime(num)) # Ghi kết quả vào tệp SNT.OUT with open(' SNT.OUT ', 'w') as file: file.write(f'Dãy số đã nhập có {prime_count} số nguyên tố.\n") # In kết quả ra màn hình print(f'Dãy số đã nhập có {prime_count} số nguyên tố.") if _name__== "__main _ main() Câu 2: Đếm trong xâu (4 điểm) Tên tệp chương trình: XÂU.* def main(): # Đọc câu văn và từ cần tìm từ tệp STRING.INP with open(' STRING.INP ', 'r') as file: # Dòng đầu tiên là câu văn sentence = file.readline().strip() # Dòng thứ hai là từ cần tìm word_to_find = file.readline().strip() # a. Đếm và đưa ra số kí tự là chữ số, chữ hoa, chữ thường digits = sum(1 for char in sentence if char.isdigit()) # Đếm chữ số uppercase = sum(1 for char in sentence if char.isupper()) # Đếm chữ hoa lowercase = sum(1 for char in sentence if char.islower()) # DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net Đếm chữ thường # b. Tìm số lần xuất hiện của từ trong câu word_count = sentence.lower().split().count(word_to_find.lower()) # Đếm từ xuất hiện, không phân biệt hoa thường # In kết quả print(f"Số chữ số trong câu văn: {digits}") print(f"Số chữ hoa trong câu văn: {uppercase}") print(f"Số chữ thường trong câu văn: {lowercase}") print(f"Số lần xuất hiện của từ '{word_to_find}' trong câu văn: {word_count}") # Ghi kết quả vào tệp STRING.OUT with open(' STRING.OUT ', 'w') as file: file.write(f"Số chữ số trong câu văn: {digits}\n") file.write(f"Số chữ hoa trong câu văn: {uppercase}\n") file.write(f"Số chữ thường trong câu văn: {lowercase}\n") file.write(f"Số lần xuất hiện của từ '{word_to_find}' trong câu văn: {word_count}\n") if__name _== "__main _": main() Câu 3: Chương trình con Tên tệp chương trình: CHUONG TRINH CON.* def prime_factors(n): factors = [] # Kiểm tra số 2 while n % 2 == 0: factors.append(2) n //= 2 # Kiểm tra các số lẻ từ 3 trở đi i = 3 while i * i <= n: while n % i == 0: factors.append(i) n //= i i += 2 # Nếu n > 2 và còn lại là số nguyên tố if n > 2: factors.append(n) return factors def main(): DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net # Đọc số nguyên từ tệp CTC.INP with open(' CTC.INP 'r') as file: n = int(file.readline().strip()) # Phân tích n thành các thừa số nguyên tố factors = prime_factors(n) # Ghi kết quả vào tệp CTC.OUT with open(' CTC.OUT 'w') as file: file.write("Các thừa số nguyên tố của " + str(n) + " là: " + ' 'join(map(str, factors)) + '\n') # In kết quả ra màn hình print(f"Các thừa số nguyên tố của {n} là: {' 'join(map(str, factors))}") if __name__== " __main__": main() Câu 4: Danh sách (4 điểm) Tên tệp chương trình: LIST.* def main(): # Đọc tên tệp từ tệp LIST.INP with open(' LIST.INP 'r') as file: filename = file.readline().strip() # Đọc dòng đầu tiên và loại bỏ khoảng trắng thừa # Kiểm tra xem tên tệp có phải là tệp Python không if filename.endswith(".py"): result = f"Tên tệp {filename} là tệp chương trình Python." else: result = f"Tên tệp {filename} không phải là tệp chương trình Python." # Ghi kết quả vào tệp LIST.OUT with open(' LIST.OUT', 'w') as file: file.write(result + '\n') # In kết quả ra màn hình print(result) if__name _== "__main _ main() Câu 5: File (2 điểm) Tên tệp chương trình: FILE.* def main(): # Đọc tên tệp từ tệp FILE.INP with open(' FILE.INP 'r') as file: filename = file.readline().strip() # Đọc dòng đầu tiên và loại bỏ khoảng trắng thừa # Kiểm tra xem tên tệp có phải là tệp Python không if filename.endswith(".py"): result = f"Tên tệp {filename} là tệp chương trình Python." DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net else: result = f"Tên tệp {filename} không phải là tệp chương trình Python." # Ghi kết quả vào tệp FILE.OUT with open(' FILE.OUT 'w') as file: file.write(result + '\n') # In kết quả ra màn hình print(result) if__name _== "__main _": main() Câu 6: Sắp xếp (2 điểm) Tên tệp chương trình: SORT.* def main(): # Đọc dữ liệu từ tệp with open('SORT.INP', 'r') as file: # Đọc số lượng phần tử n n = int(file.readline().strip()) # Đọc dãy số A = list(map(int, file.readline().strip().split())) # Sắp xếp dãy A theo thứ tự giảm dần A.sort(reverse=True) # Ghi kết quả vào tệp SORT.OUT with open(' SORT.OUT 'w') as file: # Ghi dãy số sau khi sắp xếp file.write(' '.join(map(str, A)) + '\n') if__name _== "__main _": main() DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net ĐỀ SỐ 2 SỞ GD&ĐT HÀ NỘI ĐỀ THI HỌC SINH GIỎI CẤP TRƯỜNG TRƯỜNG THPT PHAN HUY CHÚ Môn: Tin học – Khối 11 – QUỐC OAI Thời gian: 120 phút (không kể thời gian giao đề) ĐỀ THI CHÍNH THỨC Họ tên: . SBD: . Lớp: Câu 1 (4 điểm). Đong gạo: Tý được mẹ giao nhiệm vụ là đong gạo để mang lên nhà trọ. Tý được mẹ đưa cho 2 loại túi để đựng gạo đó là loại 5kg và 3kg. Tý sẽ phải đong đủ số gạo mẹ cho vào 2 loại túi trên. Hãy giúp Tý đong với số lượng túi ít nhất có thể, nếu không thể đong dược, in ra -1 VD1 VD2 Dữ liệu nhập vào Kết quả Dữ liệu nhập vào Kết quả 18 4 4 -1 Câu 2 (4 điểm) Trâu và Cỏ: Có x con trâu và y bó cỏ. Trong đó có 03 loại trâu: Trâu đứng 1 con ăn 5 bó cỏ Trâu nằm: 1 con ăn 3 bó cỏ Trâu già: 3 con ăn 1 bó cỏ Hỏi có mấy con trâu đứng, mấy con trâu nằm và mấy con trâu già. Biết x con trâu này ăn vừa đúng hết y bó cỏ. Dữ liệu nhập vào Kết quả 1 4 100 100 0 25 75 4 18 78 8 11 81 12 4 84 Câu 3 (4 điểm): Kí tự duy nhất đầu tiên Một xâu kí tự S gom dãy chữ cái tiếng Anh in thường, hãy tìm vị trí đầu tiên của kí tự xuất hiện l lần duy nhất trong xâu S. Các kí tự trong xâu được đánh thứ tự 1, 2, 3, ... nếu không có kí tự não như vậy thi in ra số -1. Dữ liệu nhập vào Kết quả 4 1 abcdbc 6 abcdefabcde -1 DeThiTinHoc.net Bộ 12 Đề thi Học sinh giỏi Tin học Lớp 11 (Có đáp án) - DeThiTinHoc.net ababab 1 a Câu 4 (4 điểm) Số nguyên tố: Nhập vào tử bàn phím số nguyên dương M (2<= M<= 64000) Viết chương trình tính tổng của số nguyên tố lớn nhất không vượt quá M và số nguyên tố nhỏ nhất còn lớn hơn M. Dữ liệu nhập vào Kết quả 10 18 Giải thích: Số nguyên tố lớn nhất không vượt quá 10 là 7 Số nguyên tố nhỏ nhất còn lớn hơn 10 là 11 7 + 11 = 18 Câu 5 (4 điểm) Chơi game Phong và Hải đang chơi trò chơi có n cấp độ. Tất nhiên ai cũng muốn vượt qua n cấp độ của trò chơi. Nhung Phong có thể vượt qua cấp p độ của trò chơi, Hải vượt qua cấp q của trò chơi. Em biết các chỉ số cấp độ trò chơi mà Phong và Hải có thể vượt qua, liệu khi Phong và Hải hợp tác cùng chơi thì họ có vượt qua toàn bộ các cấp độ của trò chơi hay không? Dữ liệu nhập vào Kết quả 4 YES 3123 224 4 NO 3123 223 ------------HẾT------------ DeThiTinHoc.net
File đính kèm:
bo_12_de_thi_hoc_sinh_gioi_tin_hoc_lop_11_co_dap_an.docx
File Chương trình Đề 3.rar