SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH ĐỀ THI TUYỂN SINH LỚP 10 TRƯỜNG THPT CHUYÊN Năm học 2016 - 2017 Mơn: TIN HỌC (chun) ĐỀ CHÍNH THỨC Thời gian làm bài: 150 phút (Đề thi gồm: 02 trang) Câu (2,0 điểm) Cho chương trình viết ngơn ngữ PASCAL sau: (𝒎, 𝒏 nguyên dương) var m,n,t:longint; begin readln(m,n); if m mod 0 then t:=n else t:=0; while m>0 begin m:=m div 2; n:=n*2; if m mod 0 then t:=t+n; end; write(t); end Khi thực chương trình ứng với giá trị 𝒎 𝒏 đưa vào, cho biết giá trị biến 𝒕 in hình? Trường hợp 𝒎 11 60 517 4096 𝒏 16 1024 25691 Giá trị biến 𝒕 Lập chương trình ngơn ngữ Pascal để giải tốn câu 2, 3, Câu (2,0 điểm) TÌM SỐ Cho số nguyên dương 𝑁 Số nguyên 𝑑 gọi ước số 𝑁 𝑁 chia hết cho 𝑑 (1 ≤ 𝑑 ≤ 𝑁) Ví dụ: Với 𝑁 = 10 có ước 1, 2, 10 (có tất ước) u cầu: Viết chương trình nhập từ bàn phím hai số nguyên 𝐿 𝑅 (0 < 𝐿 ≤ 𝑅 ≤ 108 , 𝑅 − 𝐿 ≤ 103 ) Tìm in hình số nguyên đoạn [𝐿, 𝑅] có nhiều ước số lượng ước Nếu có nhiều số thỏa mãn, đưa số nhỏ tìm Ví dụ: Màn hình thực chương trình là: L = R = 10 So nhieu uoc nhat la va so luong uoc cua no la Câu (2,0 điểm) SỐ HỖN HỢP Một số gọi số hỗn hợp có dạng 𝐴1 𝑅1 𝐴2 𝑅2 … 𝐴𝑛 𝑅𝑛 (𝑖 = 1, … , 𝑛) Trong đó, chữ số 𝐴𝑖 số 0, 1, 2, 3, 4, 5, 6, 7, chữ 𝑅𝑖 chữ số La Mã 𝐼, 𝑉, 𝑋, 𝐿, 𝐶, 𝐷, 𝑀 có giá trị cho bảng sau: Chữ số La Mã Giá trị 𝐼 𝑉 𝑋 10 𝐿 50 𝐶 100 𝐷 500 𝑀 1000 Gọi 𝑆 giá trị số hỗn hợp 𝑆 = @𝐺𝑇(𝐴1 𝑅1 )@ 𝐺𝑇(𝐴2 𝑅2 )@ … @𝐺𝑇(𝐴𝑛−1 𝑅𝑛−1 ) + 𝐺𝑇(𝐴𝑛 𝑅𝑛 ) Trong đó: - 𝐺𝑇(𝐴𝑖 𝑅𝑖 ) = 𝐴𝑖 nhân với giá trị 𝑅𝑖 (𝑖 = 1, … , 𝑛); - Kí hiệu @ đứng trước cặp 𝐴𝑖 𝑅𝑖 phép trừ giá trị 𝑅𝑖 nhỏ giá trị 𝑅𝑖+1 kí hiệu @ phép cộng trường hợp lại Trang Ví dụ: Giá trị số hỗn hợp 3𝑀1𝐷2𝐶 𝑆 = ∗ 1000 + ∗ 500 + ∗ 100 = 3700 giá trị số hỗn hợp 3𝑋2𝐼4𝑋 S = ∗ 10 − ∗ + ∗ 10 = 68 u cầu: Cho số hỗn hợp có khơng q 100 cặp 𝐴𝑖 𝑅𝑖 Tính giá trị số hỗn hợp Dữ liệu vào cho tệp văn HONHOP.INP chứa số dạng số hỗn hợp Kết đưa tệp văn HONHOP.OUT chứa số giá trị số hỗn hợp tính Ví dụ: HONHOP.INP 3M1D2C HONHOP.OUT 3700 Câu (2,0 điểm) THI HỌC SINH GIỎI Đội tuyển tham dự kì thi học sinh giỏi có 𝑁 em Học sinh thứ 𝑖 đặc trưng tham số: hệ số kỹ 𝑎𝑖 số thông minh 𝑏𝑖 Trong q trình ơn luyện, tiết học tiến hành theo cách sau: Giáo viên phụ trách đội tuyển làm việc riêng với học sinh, thảo luận, giải vấn đề nảy sinh Kết sau lần làm việc riêng, hệ số kỹ học sinh tăng thêm lượng số thơng minh Như vậy, học sinh thơng minh hệ số kỹ tăng nhanh Do hạn chế thời gian, suốt q trình ơn luyện, giáo viên thực 𝐶 lần làm việc riêng với học sinh Một học sinh làm việc nhiều lần với giáo viên Số liệu thống kê cho thấy, học sinh muốn đạt giải kỳ thi hệ số kỹ phải khơng nhỏ 𝐾 Yêu cầu: Cho số nguyên 𝑁, 𝐶, 𝐾 𝑎𝑖 , 𝑏𝑖 (1 ≤ 𝑁 ≤ 103 , ≤ 𝐶, 𝐾 ≤ 109 , ≤ 𝑎𝑖 , 𝑏𝑖 ≤ 109 , 𝑖 = 1, … , 𝑁) Hãy xác định số lượng tối đa học sinh giải Dữ liệu vào từ tệp văn HSG.INP gồm: Dòng chứa số nguyên 𝑁, 𝐶 𝐾, số cách dấu cách; Dòng thứ 𝑖 𝑁 dòng sau chứa số nguyên 𝑎𝑖 𝑏𝑖 , cách dấu cách Kết đưa tệp văn HSG.OUT số nguyên – số lượng tối đa học sinh giải Ví dụ: HSG.INP 356 11 21 42 Câu (2,0 điểm) Tính cần đưa kết HSG.OUT Cho tập hợp Σ gồm ký tự in hoa bảng chữ tiếng Anh (gồm 26 chữ cái) Xét tập 𝑇 gồm xâu, xâu thỏa mãn hai điều kiện sau: Có ký tự; Các ký tự khác đôi nằm tập hợp Σ Nếu xâu ký tự tập hợp 𝑇 xếp theo thứ tự từ điển đánh số từ trở đi: ABC, ABD, ABE, … Cho biết thứ tự xâu tập 𝑇 theo cách đánh số trên, tìm xâu tương ứng với thứ tự trường hợp sau? Thứ tự 𝑻 Xâu tương ứng 𝑻 17 83 4515 11605 -HẾT Họ tên thí sinh:………………… Số báo danh:……………………… Họ tên, chữ ký GT 1…………………… Họ tên, chữ ký GT 2…………………… Trang SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM THI KỲ THI TUYỂN SINH LỚP 10 CHUYÊN NĂM HỌC 2016 - 2017 Môn: TIN HỌC (chuyên) Câu (2,0 điểm) Mỗi trường hợp cho 0,5 điểm Trường hợp 𝒎 11 60 517 4096 𝒏 16 1024 25691 Giá trị biến 𝒕 88 960 529408 105230336 Câu (2,0 điểm) Hướng dẫn giải thuật: - Duyệt số 𝑖 từ 𝐿 đến 𝑅, với số 𝑖 ta đếm số ước để so sánh tìm số có số ước lớn Trong q trình đếm ước số 𝑖 có hai cách khác nhau: + Cách 1: Thử số nguyên 𝑗 từ đến 𝑖 để đếm ước (tìm kết nhiều thời gian) + Cách 2: Thử số nguyên 𝑗 từ đến [√𝑖 ] (tìm kết nhanh, đáp ứng hết yêu cầu bài) Văn chương trình Var l,r,max,i,j,luu,dem:longint; begin write('L=');readln(L); write('R=');readln(R); max:=0; for i:=L to R begin dem:=0; for j:=1 to round(sqrt(i)) if i mod j=0 then begin dem:=dem+1; if ji div j then dem:=dem+1; end; if max