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 7: Lập trình giải bài toán tìm kiếm có đáp án chi tiết đầy đủ các mức độ sách Cánh diều 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 7: Lập trình giải bài toán tìm kiếm - Cánh diều
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: Khái niệm nào dưới đây mô tả đúng nhất về bài toán tìm kiếm?
A. Tìm kiếm dữ liệu từ cơ sở dữ liệu.
B. Cho một yêu cầu tìm kiếm và một tập hợp dữ liệu, tìm mục dữ liệu đáp ứng yêu cầu.
C. Chỉ tìm kiếm trong mảng số nguyên.
D. Không thể tìm thấy một mục dữ liệu nào.
Đáp án: B
Giải thích: Bài toán tìm kiếm là việc xác định xem một mục dữ liệu có tồn tại trong một tập hợp dữ liệu hay không, và nếu có, xác định vị trí của nó.
Câu 2: Trong Python, phương thức nào được sử dụng để tìm kiếm phần tử trong danh sách?
A. search()
B. find()
C. index()
D. locate()
Đáp án: C
Giải thích: Phương thức index() được sử dụng để tìm kiếm phần tử trong danh sách và trả về chỉ số của lần xuất hiện đầu tiên.
Câu 3: Khi nào phương thức index() sẽ trả về lỗi "ValueError"?
A. Khi tìm thấy phần tử.
B. Khi không tìm thấy phần tử trong danh sách.
C. Khi danh sách rỗng.
D. Khi có nhiều phần tử giống nhau.
Đáp án: B
Giải thích: Phương thức index() sẽ phát sinh lỗi "ValueError" nếu không tìm thấy phần tử trong danh sách
Câu 4: Tìm kiếm tuần tự trong Python là gì?
A. Tìm kiếm theo thứ tự tăng dần của danh sách.
B. Tìm kiếm từng phần tử trong danh sách cho đến khi tìm thấy hoặc đã xét hết danh sách.
C. Tìm kiếm bằng cách chia đôi danh sách.
D. Tìm kiếm trong một cơ sở dữ liệu lớn.
Đáp án: B
Giải thích: Tìm kiếm tuần tự là phương pháp kiểm tra từng phần tử trong danh sách cho đến khi tìm thấy mục tiêu hoặc đã xét hết danh sách.
Câu 5: Thuật toán tìm kiếm nhị phân yêu cầu điều kiện nào trước khi áp dụng?
A. Danh sách phải sắp thứ tự.
B. Danh sách phải có ít nhất 10 phần tử.
C. Danh sách phải không chứa các phần tử trùng lặp.
D. Danh sách phải được lưu trữ trong một cơ sở dữ liệu.
Đáp án: A
Giải thích: Tìm kiếm nhị phân chỉ có thể được thực hiện trên danh sách đã sắp thứ tự, vì thuật toán này dựa trên việc chia đôi danh sách để tìm kiếm.
Câu 6: Trong thuật toán tìm kiếm nhị phân, chỉ số của phần tử ở giữa được tính như thế nào?
A. (lo + hi) / 2
B. (lo + hi) // 2
C. (hi - lo) / 2
D. (hi + lo) / 2
Đáp án: B
Giải thích: Chỉ số của phần tử ở giữa được tính bằng (lo + hi) // 2 để đảm bảo kết quả là số nguyên.
Câu 7: Trong thuật toán tìm kiếm tuần tự, khi nào bạn thông báo "không tìm thấy"?
A. Khi tìm thấy phần tử.
B. Khi đã xét hết dãy số và không tìm thấy phần tử.
C. Khi gặp lỗi trong quá trình tìm kiếm.
D. Khi tìm thấy nhiều phần tử.
Đáp án: B
Giải thích: Bạn sẽ thông báo "không tìm thấy" khi đã xét hết tất cả các phần tử trong dãy mà không tìm thấy mục tiêu.
Câu 8: Khi thực hiện tìm kiếm tuần tự, bạn có thể giới hạn phạm vi tìm kiếm bằng cách nào?
A. Sử dụng chỉ số lo và hi trong phương thức index.
B. Thay đổi kiểu dữ liệu của danh sách.
C. Chỉ tìm kiếm trong các phần tử đầu tiên.
D. Xóa các phần tử không liên quan.
Đáp án: A
Giải thích: Bạn có thể giới hạn phạm vi tìm kiếm bằng cách chỉ định chỉ số lo và hi trong phương thức index() để tìm kiếm trong đoạn con của danh sách.
Câu 9: Một ví dụ thực tế nào dưới đây có thể dẫn đến bài toán tìm kiếm?
A. Tìm kiếm một cuốn sách trong thư viện.
B. Chọn một màu sắc cho đồ họa.
C. Thay đổi kích thước của một bức ảnh.
D. Phát triển một ứng dụng mới.
Đáp án: A
Giải thích: Một ví dụ thực tế cho bài toán tìm kiếm là tìm một cuốn sách trong thư viện, khi có mã cuốn sách để xác định vị trí của nó.
Câu 10: Trong mã giả của thuật toán tìm kiếm nhị phân, điều kiện nào là điều kiện dừng?
A. Khi đã tìm thấy phần tử x.
B. Khi phạm vi tìm kiếm không còn phần tử.
C. Khi tìm thấy nhiều hơn một phần tử.
D. Cả A và B đều đúng.
Đáp án: D
Giải thích: Điều kiện dừng của thuật toán tìm kiếm nhị phân là khi đã tìm thấy phần tử x hoặc khi phạm vi tìm kiếm không còn phần tử nào để kiểm tra.
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: Khái niệm bài toán tìm kiếm là gì?
a) Tìm một giá trị trong tập hợp dữ liệu.
b) Chỉ có thể tìm kiếm trong các dãy số đã sắp xếp.
c) Tìm kiếm không bao giờ thất bại.
d) Tìm kiếm chỉ áp dụng cho dữ liệu văn bản.
a) Đúng . Đây là khái niệm chính của bài toán tìm kiếm, nơi ta cần tìm kiếm một hoặc nhiều mục trong một tập hợp dữ liệu dựa trên yêu cầu tìm kiếm đã cho.
b) Sai. Bài toán tìm kiếm có thể thực hiện trên các dãy số đã sắp xếp và chưa sắp xếp. Tìm kiếm nhị phân yêu cầu dữ liệu đã sắp xếp, nhưng tìm kiếm tuần tự có thể áp dụng cho cả hai trường hợp.
c) Sai. Bài toán tìm kiếm có thể thất bại nếu mục tiêu không có trong tập hợp dữ liệu. Thông báo "không tìm thấy" là một phần quan trọng của quá trình tìm kiếm.
d) Sai. Tìm kiếm có thể được áp dụng cho nhiều loại dữ liệu khác nhau, bao gồm số, hình ảnh, và âm thanh, không chỉ riêng dữ liệu văn bản.
Câu 2: Phương thức index() trong Python được sử dụng để làm gì?
a) Tìm kiếm một phần tử trong dãy và trả về chỉ số đầu tiên nếu tìm thấy.
b) Tìm kiếm một phần tử trong dãy mà không báo lỗi nếu không tìm thấy.
c) Tìm kiếm tất cả các phần tử giống nhau trong dãy và trả về danh sách các chỉ số.
d) Chỉ tìm kiếm trong dãy số đã sắp xếp.
a) Đúng. Phương thức index() thực hiện tìm kiếm một phần tử trong dãy và trả về chỉ số của lần xuất hiện đầu tiên. Nếu không tìm thấy, nó sẽ báo lỗi ValueError.
b) Sai. Nếu phần tử không có trong dãy, phương thức index() sẽ báo lỗi ValueError, vì vậy không phải là "không báo lỗi".
c) Sai). Phương thức index() chỉ trả về chỉ số đầu tiên của phần tử tìm thấy, không phải danh sách tất cả các chỉ số.
d) Sai. Phương thức index() có thể tìm kiếm trong cả dãy đã sắp xếp và chưa sắp xếp, vì vậy không giới hạn trong dãy số đã sắp xếp.
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: Khái niệm bài toán tìm kiếm là gì?
Đáp án: Bài toán tìm kiếm là quá trình tìm kiếm một hoặc nhiều mục dữ liệu trong một tập hợp dữ liệu dựa trên một yêu cầu tìm kiếm cụ thể.
Giải thích: Bài toán tìm kiếm rất quan trọng trong nhiều lĩnh vực, như tìm kiếm thông tin trên internet, tra cứu dữ liệu trong cơ sở dữ liệu, hay tìm kiếm sách trong thư viện. Để giải quyết bài toán này, cần có các thuật toán phù hợp để xác định cách thức và tốc độ tìm kiếm, từ đó cung cấp kết quả chính xác và nhanh chóng cho người dùng.
Câu 2: Thuật toán tìm kiếm tuần tự trong Python hoạt động như thế nào?
Đáp án: Thuật toán tìm kiếm tuần tự kiểm tra từng phần tử trong một dãy cho đến khi tìm thấy phần tử cần tìm hoặc đã kiểm tra hết các phần tử trong dãy.
Giải thích: Khi sử dụng phương thức index() trong Python, hàm này sẽ trả về chỉ số của lần xuất hiện đầu tiên của một phần tử trong dãy. Nếu phần tử không tồn tại, nó sẽ báo lỗi ValueError. Thuật toán tìm kiếm tuần tự có thể áp dụng cho cả dãy đã sắp xếp và chưa sắp xếp, giúp người lập trình dễ dàng tìm kiếm dữ liệu mà không cần phải thay đổi cấu trúc của dãy.
Câu 3: Khi nào nên sử dụng thuật toán tìm kiếm nhị phân thay vì tìm kiếm tuần tự?
Đáp án: Nên sử dụng thuật toán tìm kiếm nhị phân khi dãy dữ liệu đã được sắp xếp.
Giải thích: Thuật toán tìm kiếm nhị phân có ưu điểm lớn hơn so với tìm kiếm tuần tự vì nó giảm đáng kể số lần so sánh cần thiết. Với mỗi lần lặp, thuật toán sẽ loại bỏ nửa dãy mà không chứa phần tử cần tìm, dẫn đến thời gian tìm kiếm ngắn hơn. Điều này làm cho tìm kiếm nhị phân trở thành lựa chọn tối ưu cho các dãy đã được sắp xếp, trong khi tìm kiếm tuần tự có thể hiệu quả hơn cho các dãy không được sắp xếp hoặc khi tập dữ liệu nhỏ.
Xem thêm câu hỏi trắc nghiệm Tin học lớp 11 Cánh diều có đáp án hay khác: