Haylamdo biên soạn và sưu tầm với 15 câu hỏi trắc nghiệm Tin học 11 Bài 20: Thực hành bài toán tìm kiếm có đáp án chi tiết đầy đủ các mức độ sách Kết nối tri thức sẽ giúp học sinh lớp 11 ôn luyện trắc nghiệm Tin 11 Khoa học máy tính.
Trắc nghiệm Tin học 11 Bài 20: Thực hành bài toán tìm kiếm - Kết nối tri thức
PHẦN I.Câu trắc nghiệm nhiều phương án lựa chọn. Thí sinh trả lời từ câu 1 đến câu 10. Mỗi câu hỏi thí sinh chỉ lựa chọn một phương án.
Câu 1: Trong Python, lệnh nào sau đây dùng để mở tệp văn bản data.txt để ghi thêm dữ liệu mà không xóa nội dung cũ?
A. f = open("data.txt", "r", encoding="UTF-8")
B. f = open("data.txt", "w", encoding="UTF-8")
C. f = open("data.txt", "a", encoding="UTF-8")
D. f = open("data.txt", "x", encoding="UTF-8")
Đáp án: C
Giải thích: Tham số "a" trong lệnh mở tệp dùng để ghi tiếp dữ liệu vào tệp mà không xóa nội dung cũ. Các lựa chọn khác không phù hợp.
Câu 2: Khi mở tệp bằng lệnh f = open("data.txt", "r"), Python sẽ thực hiện điều gì?
A. Mở tệp để ghi dữ liệu từ đầu
B. Mở tệp để ghi thêm dữ liệu
C. Mở tệp để đọc dữ liệu
D. Mở tệp nếu tệp không tồn tại
Đáp án: C
Giải thích: Tham số "r" trong lệnh open() chỉ ra rằng tệp sẽ được mở để đọc dữ liệu.
Câu 3: Câu lệnh f.close() có tác dụng gì trong Python?
A. Đóng tệp sau khi hoàn tất việc đọc hoặc ghi
B. Xóa nội dung của tệp
C. Ghi dữ liệu ra tệp
D. Mở tệp để đọc
Đáp án: A
Giải thích: Lệnh f.close() được dùng để đóng tệp sau khi hoàn tất các thao tác đọc hoặc ghi, giúp giải phóng tài nguyên.
Câu 4: Lệnh print(TenHS[i], DiemHS[i], file=f) dùng để:
A. Hiển thị dữ liệu trên màn hình
B. Ghi dữ liệu vào tệp
C. Xóa dữ liệu trong tệp
D. Tạo một tệp mới
Đáp án: B
Giải thích: Lệnh print() với tham số file=f được sử dụng để ghi dữ liệu vào tệp thay vì hiển thị trên màn hình.
Câu 5: Câu lệnh line.split() trong Python có chức năng gì?
A. Tách một dòng thành danh sách các phần tử dựa trên dấu cách
B. Xóa dòng trong tệp
C. Ghi một dòng vào tệp
D. Tạo một dòng mới trong tệp
Đáp án: A
Giải thích: Lệnh split() tách dòng văn bản thành danh sách các từ, sử dụng khoảng trắng làm ký tự phân tách.
Câu 6: Thuật toán nào được sử dụng để tăng tốc độ tìm kiếm trong tệp đã được sắp xếp theo thứ tự tăng dần?
A. Tìm kiếm tuần tự
B. Tìm kiếm nhị phân
C. Tìm kiếm mờ
D. Tìm kiếm tuyến tính
Đáp án: B
Giải thích: Thuật toán tìm kiếm nhị phân được áp dụng hiệu quả khi dữ liệu đã được sắp xếp, giúp tăng tốc độ tìm kiếm.
Câu 7: Khi tìm kiếm tên học sinh trong danh sách, nếu tên học sinh không tồn tại, chương trình sẽ:
A. Ghi lại tên vào danh sách
B. Thông báo "Không tìm thấy dữ liệu của học sinh"
C. Ghi lại điểm số của học sinh đó
D. Xóa tên học sinh khỏi danh sác
Đáp án: B
Giải thích: Nếu tên học sinh không tồn tại trong danh sách, chương trình sẽ hiển thị thông báo không tìm thấy dữ liệu.
Câu 8: Trong thuật toán tìm kiếm nhị phân, điều kiện nào quyết định quá trình tìm kiếm tiếp theo?
A. Vị trí giữa của danh sách so sánh với giá trị cần tìm
B. Giá trị đầu tiên của danh sách
C. Giá trị cuối cùng của danh sách
D. Tổng số phần tử trong danh sách
Đáp án: A
Giải thích: Thuật toán tìm kiếm nhị phân so sánh giá trị ở giữa danh sách với giá trị cần tìm để quyết định bước tiếp theo.
Câu 9: Khi sử dụng lệnh f.readlines(), kết quả trả về là:
A. Một danh sách các dòng trong tệp
B. Một danh sách các ký tự trong tệp
C. Một chuỗi chứa toàn bộ nội dung tệp
D. Một số nguyên đếm số dòng trong tệp
Đáp án: A
Giải thích: Lệnh f.readlines() đọc tất cả các dòng trong tệp và trả về chúng dưới dạng một danh sách.
Câu 10: Trong bài toán tra cứu điểm thi, nếu người dùng nhập từ khóa "end", chương trình sẽ:
A. Kết thúc quá trình tra cứu
B. Xóa dữ liệu của học sinh
C. In ra danh sách học sinh
D. Ghi lại tên học sinh cuối cùng
Đáp án: A
Giải thích: Khi người dùng nhập từ khóa "end", chương trình sẽ dừng quá trình tra cứu điểm thi và kết thúc vòng lặp.
PHẦN II. Câu trắc nghiệm đúng sai.Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai
Câu 1: Trong Python, lệnh nào dưới đây được sử dụng để mở một tệp văn bản chỉ cho mục đích đọc?
a) f = open(<file name>, "w", encoding="UTF-8")
b) f = open(<file name>, "a", encoding="UTF-8")
c) f = open(<file name>, "r", encoding="UTF-8")
d) f = open(<file name>, "rb", encoding="UTF-8")
a) Sai. Tham số "w" mở tệp để ghi và sẽ xóa dữ liệu cũ trong tệp nếu có, không phù hợp với việc chỉ đọc.
b) Sai. Tham số "a" mở tệp để ghi tiếp (append) dữ liệu, không phải chỉ đọc.
c) Đúng. Tham số "r" mở tệp để đọc dữ liệu, đây là lựa chọn đúng để đọc tệp văn bản.
d) Sai. Tham số "rb" mở tệp ở chế độ đọc nhị phân, không phù hợp cho tệp văn bản thông thường.
Câu 2: Thuật toán nào dưới đây được sử dụng để tìm kiếm một phần tử trong danh sách đã được sắp xếp theo thứ tự tăng dần?
a) Tìm kiếm tuần tự (Sequential Search)
b) Tìm kiếm nhị phân (Binary Search)
c) Tìm kiếm nội suy (Interpolation Search)
d) Tìm kiếm lặp (Iterative Search)
a) Sai. Tìm kiếm tuần tự không tối ưu cho danh sách đã được sắp xếp vì nó kiểm tra từng phần tử từ đầu đến cuối.
b) Đúng. Tìm kiếm nhị phân là thuật toán tối ưu cho danh sách đã được sắp xếp, với độ phức tạp O(log n) bằng cách chia đôi danh sách tại mỗi bước.
c) Sai. Tìm kiếm nội suy sử dụng phương pháp khác, không phải tìm kiếm nhị phân.
d) Sai. Tìm kiếm lặp không phải là một thuật toán tìm kiếm chuẩn trong bối cảnh này.
PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3
Câu 1: Làm thế nào để đọc dữ liệu từ một tệp văn bản trong Python?
Đáp án: Để đọc dữ liệu từ tệp văn bản trong Python, ta sử dụng lệnh open(<file
name>, "r", encoding="UTF-8") để mở tệp và sau đó dùng phương thức read() hoặc readlines() để đọc dữ liệu. Ví dụ:
f = open('data.txt', 'r', encoding='UTF-8')
data = f.readlines()
f.close()
Giải thích: Lệnh open() mở tệp với chế độ đọc và tham số encoding là UTF-8 để đọc tệp có tiếng Việt. Phương thức readlines() đọc tất cả các dòng của tệp và trả về dưới dạng danh sách.
Câu 2: Làm thế nào để ghi dữ liệu vào tệp văn bản trong Python?
Đáp án: Để ghi dữ liệu vào tệp văn bản, ta sử dụng lệnh open(<file name>,
"w", encoding="UTF-8") để mở tệp với chế độ ghi, sau đó dùng phương thức write() hoặc print() với tham số file=<đối tượng file>. Ví dụ:
f = open('output.txt', 'w', encoding='UTF-8')
f.write("Hello, Python!\n")
f.close()
Giải thích: Lệnh open() với chế độ "w" sẽ ghi đè lên tệp hiện có hoặc tạo một tệp mới nếu tệp chưa tồn tại. Phương thức write() ghi dữ liệu vào tệp.
Câu 3: Làm thế nào để tìm kiếm tên học sinh trong danh sách và in ra điểm của họ?
Đáp án: Để tìm kiếm tên học sinh trong danh sách, có thể duyệt qua danh sách tên và sử dụng vòng lặp for để kiểm tra từng phần tử. Nếu tên được tìm thấy, ta có thể lấy điểm từ danh sách tương ứng. Ví dụ:
ten_list = ['Hà', 'Bình', 'Quang']
diem_list = [9.6, 8.5, 7.2]
ten = input('Nhập tên học sinh: ')
if ten in ten_list:
index = ten_list.index(ten)
print('Điểm của', ten, 'là:', diem_list[index])
else:
print('Không tìm thấy học sinh')
Giải thích: Sử dụng phương thức in và index() để kiểm tra xem tên học sinh có tồn tại trong danh sách hay không. Sau đó, truy cập danh sách điểm theo chỉ số để in ra kết quả.
Xem thêm câu hỏi trắc nghiệm Tin học lớp 11 Kết nối tri thức có đáp án hay khác: