Nội dung text Bài tập luyện tập Bài 20 - Thực hành Bài toán tìm kiếm.pdf
D. "rw" Đáp án: A Giải thích: "w" ghi mới, xóa dữ liệu cũ. 8. Lệnh nào không thuộc Tracuuten.py? (Remember) A. ten_list.append(ten) B. diem_list.append(float(diem)) C. mid = (left + right) // 2 D. for i in range(len(ten_list)) Đáp án: C Giải thích: mid thuộc nhị phân, không phải tuần tự. 9. Tại sao điểm trong diemthi_sx.inp phải sắp xếp tăng dần? (Understand) A. Để nhị phân thu hẹp phạm vi đúng B. Để tuần tự nhanh hơn C. Để xóa dữ liệu D. Để nhập nhanh hơn Đáp án: A Giải thích: Sắp xếp giúp nhị phân hoạt động. 10. Lệnh nào đọc tệp trong Kiemtradiem_sx.py? (Understand) A. ds_diem.append(float(line)) B. mid = (left + right) // 2 C. return -1 D. print(vitri) Đáp án: A Giải thích: Thêm điểm từ dòng vào danh sách. 11. Để tìm điểm của 'Hà' trong diem.inp, bạn làm gì? (Apply) A. Duyệt ten_list, lấy diem_list tại cùng chỉ số B. Sắp xếp ten_list trước C. Thu hẹp phạm vi tìm kiếm D. Xóa dữ liệu cũ Đáp án: A Giải thích: Tuần tự duyệt để tìm 'Hà'. 12. readlines() khác for line in f ở điểm nào? (Analyze) A. readlines() đọc hết vào list, for đọc từng dòng B. for đọc hết, readlines() đọc từng dòng C. Cả hai đều đọc từng dòng D. Không có sự khác biệt Đáp án: A Giải thích: readlines() tải toàn bộ, for tiết kiệm bộ nhớ. 13. Chế độ nào mở tệp để đọc? (Remember) A. "r" B. "w" C. "a" D. "rw" Đáp án: A Giải thích: "r" dùng để đọc tệp. 14. Lệnh nào không thuộc BinarySearch? (Remember) A. left = mid + 1 B. right = mid - 1 C. for i in range(len(A)) D. return mid Đáp án: C Giải thích: for thuộc tuần tự, không phải nhị phân. 15. Để tìm điểm 8.9 trong ds_diem = [5.6, 7.4, 7.8, 8.4, 8.9, 9.5], nhị phân trả về gì? (Apply) A. 4 B. 5
a) "r" để đọc tệp. b) UTF-8 hỗ trợ Unicode. c) 'w' ghi mới, 'a' ghi tiếp, khác nhau. d) f.close() cần để giải phóng tài nguyên. a) ten_list lưu tên từ tệp. b) Duyệt tuần tự để tìm tên. c) Tracuuten.py dùng tuần tự, không phải nhị phân. d) Code kiểm tra vitri và in thông báo. Phần 2: Thực hành (PR) - 3 điểm 1. Đánh giá f.close(): Đánh giá lợi ích của việc đóng tệp bằng f.close() sau khi đọc/ghi trong Python, nêu ít nhất 2 lợi ích cụ thể. (1 điểm, Evaluate) Đáp án mẫu: Lợi ích: Giải phóng tài nguyên hệ thống (ví dụ: bộ nhớ sau khi đọc Data.inp); tránh lỗi khi mở lại tệp (như ghi đè không mong muốn). Đánh giá: Rất quan trọng để đảm bảo chương trình hoạt động ổn định. 2. Sáng tạo tra cứu điểm: Viết đoạn code Python tra cứu điểm thi từ tệp diem.inp và in thông báo nếu không tìm thấy, giải thích ngắn gọn. (1 điểm, Create) Đáp án mẫu: Code: Giải thích: Câu 2: Một học sinh chạy Tracuuten.py với tệp diem.inp: a) ten_list lưu tên học sinh (Đúng, Remember). b) Duyệt tuần tự tìm tên học sinh (Đúng, Understand). c) BinarySearch được dùng trong Tracuuten.py (Sai, Remember). d) Có thể tra cứu và in thông báo nếu không tìm thấy (Đúng, Create). Đáp án: a) Đ; b) Đ; c) S; d) Đ Giải thích: python f = open('diem.inp', encoding='UTF-8') TenHS = [] DiemHS = [] for line in f: ten, diem = line.split() TenHS.append(ten) DiemHS.append(float(diem)) f.close() ten = input('Nhập tên: ') vitri = -1 Thu gọn Bọc lại Sao chép