Đề khảo sát chất lượng đội tuyển HSG liên trường khối THPT huyện Triệu Sơn mở rộng lần 2 môn Tin học Lớp 12 - Năm học 2020-2021
Bài 1 (6 điểm): Cặp số Lucasa
Cặp số (a,b) được gọi là lucasa nếu: b là bình phương của a và các chữ số của a xuất hiện lần lượt ở cuối trong các chữ số của b.
Ví dụ: (1,1); (25,625) là các cặp số lucasa còn (15,225) không phải là cặp số lucasa.
Cho số tự nhiên N (N ≤ 1012). Đếm số cặp số lucasa không lớn hơn N và in ra các cặp số đó theo thứ tự từ bé đến lớn và a<>
Dữ liệu vào: trong file BAI1.INP ghi số tự nhiên N.
Kết quả: ghi ra file BAI1.OUT dòng đầu tiên là số k – số cặp số lucasa, k dòng sau mỗi dòng là một cặp số lucasa từ nhỏ đến lớn.
Bạn đang xem tài liệu "Đề khảo sát chất lượng đội tuyển HSG liên trường khối THPT huyện Triệu Sơn mở rộng lần 2 môn Tin học Lớp 12 - Năm học 2020-2021", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐỀ CHÍNH THỨC SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRƯỜNG THPT TRIỆU SƠN 4 ĐỀ KHẢO SÁT CHẤT LƯỢNG ĐỘI TUYỂN HSG LIÊN TRƯỜNG KHỐI THPT HUYỆN TRIỆU SƠN MỞ RỘNG LẦN 2 - NĂM HỌC 2020-2021 Môn: Tin học - Lớp 12 THPT Thời gian: 180 phút (không kể thời gian giao đề) Ngày khảo sát: 12 tháng 11 năm 2020 (Đề khảo sát có 03 trang, gồm 05 câu) Tổng quan bài thi: Tên bài File chương trình File dữ liệu vào File kết quả Bài 1 Cặp số Lucasa BAI1.* BAI1.INP BAI1.OUT Bài 2 Số anh em BAI2.* BAI2.INP BAI2.OUT Bài 3 Hạt nhân BAI3.* BAI3.INP BAI3.OUT Bài 4 Phần tử chung BAI4.* BAI4.INP BAI4.OUT Bài 5 Giả thuyết của Collatz BAI5.* BAI5.INP BAI5.OUT Dữ liệu vào là đúng đắn, không cần phải kiểm tra. Trong các file dữ liệu vào, nếu dữ liệu trên cùng một dòng thì được cách nhau bởi ít nhất 1 dấu cách. Dấu (*) trong tên file chương trình biểu thị đuôi file tùy thuộc vào NNLT sử dụng ('pas' đối với NNLT PASCAL, ‘c’ đối với NNLT C,...). Bài 1 (6 điểm): Cặp số Lucasa Cặp số (a,b) được gọi là lucasa nếu: b là bình phương của a và các chữ số của a xuất hiện lần lượt ở cuối trong các chữ số của b. Ví dụ: (1,1); (25,625) là các cặp số lucasa còn (15,225) không phải là cặp số lucasa. Cho số tự nhiên N (N ≤ 1012). Đếm số cặp số lucasa không lớn hơn N và in ra các cặp số đó theo thứ tự từ bé đến lớn và a<=b. Dữ liệu vào: trong file BAI1.INP ghi số tự nhiên N. Kết quả: ghi ra file BAI1.OUT dòng đầu tiên là số k – số cặp số lucasa, k dòng sau mỗi dòng là một cặp số lucasa từ nhỏ đến lớn. BAI1.INP BAI1.OUT 10000 5 1 1 5 25 6 36 25 625 76 5776 Bài 2 (5 điểm): Số anh em Ước thực sự của số tự nhiên N là ước nguyên dương khác 1 và chính nó. Hai số được gọi là anh em nếu chúng có tổng các ước thực sự bằng nhau. Ví dụ: 6 và 25 được gọi là hai số anh em vì các ước thực sự của 6 là 2 và 3 có tổng bằng 5 và các ước thực sự của 25 là 5 có tổng là 5. Yêu cầu: Viết chương trình để kiểm tra hai số có phải là hai số anh em không? Dữ liệu vào: từ file văn bản BAI2.INP: Gồm các dòng, mỗi dòng chứa hai số nguyên dương M, N (0 < M, N < 104) cách nhau ít nhất một ký tự trống. Kết quả: ghi file văn bản BAI2.OUT: Gồm các dòng, mỗi dòng chứa xâu ‘YES’ nếu M, N là hai số anh em, ngược lại ghi ra xâu ‘NO’. Ví dụ: BAI2.INP BAI2.OUT 6 25 12 13 YES NO Bài 3 (4 điểm): Hạt nhân Xâu u được gọi là hạt nhân của xâu v nếu u là xâu ngắn nhất sao cho ghép một số lần u thì nhận được v. Cho xâu S, tìm hạt nhân của nó. Dữ liệu vào: từ file BAI3.INP gồm một xâu S (có độ dài ≤ 100000 ký tự). Dữ liệu ra: ghi ra file BAI3.OUT là hạt nhân của xâu S. Ví dụ: BAI3.INP BAI3.OUT abcabcabc abc Bài 4 (3 điểm): Phần tử chung. Cho k dãy số nguyên, các số trong dãy thuộc đoạn [-109..109] . Hãy viết chương trình tìm số xuất hiện trong cả k dãy. Nếu không có số nào xuất hiện trong cả k dãy thì ghi kí tự “x”, còn nếu có nhiều số cùng xuất hiện trong k dãy thì ghi số nhỏ nhất tìm được. Dữ liệu vào: từ file BAI4.INP Dòng 1: chứa số nguyên dương; Dòng 2: gồm số lần lượt là độ dài từng dãy; dòng sau, mỗi dòng mô tả một dãy số, biết rằng tổng số lượng số trong dãy không vượt quá 500000 số. Kết quả: ghi ra file BAI4.OUT: Ghi số tìm được hoặc ghi kí tự “x” BAI4.INP 2 3 4 1 2 3 4 3 2 -1 BAI4.OUT 2 Bài 5 (2 điểm) Giả thuyết của Collatz Collatz đưa ra giả thuyết: Với một số nguyên dương X, nếu X chẵn ta gán X=Xdiv 2, nếu X lẻ ta gán X = X*3 + 1 thì sau một số hữu hạn bước ta sẽ có X=1. Ví dụ: Với X=10, các bước tiến hành như sau: X= 10 (chẵn) à X=10 div 2 = 5 X= 5 (lẻ) à X= 5*3 + 1 = 16 X= 16 (chẵn) à X=16 div 2 = 8 X= 8 (chẵn) à X=8 div 2 =4 X= 4 (chẵn) à X=4 div 2 =2 X=2 (chẵn) à X= 2 div 2 =1 Cứ cho giả thuyết Collatz là đúng đắn, bài toán đặt ra là: Cho trước một số 1 cùng với hai phép toán *2 và div 3, hãy sử dụng một cách hợp lí hai phép toán đó để biến số 1 thành một giá trị nguyên dương X cho trước. Dữ liệu: Vào từ văn bản BAI5.INP: Gồm một dòng duy nhất chứa số X (X≤1019). Kết quả: Ghi ra file văn bản BAI5.OUT: Là kết quả tìm được của bài toán. Ví dụ: BAI5.INP BAI5.OUT 10 1*2*2*2*2div3*2 .HẾT Họ tên thí sinh:..................................................................................SBD:................................ 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.
Tài liệu đính kèm:
- de_khao_sat_chat_luong_doi_tuyen_hsg_lien_truong_khoi_thpt_h.doc
- BAI LAM.rar
- CODE.rar
- Test.rar