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é!
- 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 đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
- Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
- Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
- Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
- Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
- Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
- Giải đề 7 và đáp án thi học sinh giỏi tin học 10 Python có số Collatz
- Các đề thi ở cấp huyện cần luyện tập nâng cao:
- Các Đề luyện thi chuyên tin lớp 10 năm 2024 – 2025:
Đầ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.
- 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
- 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