Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 20 Thực hành bài toán tìm kiếm

Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 20 Thực hành bài toán tìm kiếm giúp bạn củng cố lại các nội dung đã học thông qua kho câu hỏi phong phú.

Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 20 Thực hành bài toán tìm kiếm

⏱ Thời gian còn lại: --:--
Tiến độ hoàn thành 0/0 câu

🏆 BẢNG VÀNG TOP 5 ĐIỂM TỐT NHẤT

Đang tải bảng xếp hạng...

Câu 1: Khi tìm kiếm một số điện thoại trong danh bạ giấy được sắp xếp theo tên, chúng ta thường áp dụng tư duy của thuật toán nào?

  • - Tìm kiếm tuần tự từ trang đầu tiên
  • - Tìm kiếm nhị phân (mở ở giữa và thu hẹp phạm vi)
  • - Tìm kiếm ngẫu nhiên các trang
  • - Không sử dụng thuật toán nào

Câu 2: Trong thuật toán tìm kiếm nhị phân, điều kiện nào thường được dùng để duy trì vòng lặp tìm kiếm?

  • - while low == high:
  • - while low <= high:
  • - while low < high:
  • - while low != high:

Câu 3: Trong Python, để tính chỉ số ở giữa (mid) của một đoạn danh sách từ chỉ số 'left' đến 'right' trong tìm kiếm nhị phân, công thức nào thường được dùng?

  • - mid = (left + right) // 2
  • - mid = (left + right) / 2
  • - mid = (left + right) % 2
  • - mid = left + right // 2

Câu 4: Trong thuật toán tìm kiếm nhị phân, vòng lặp 'while low <= high' sẽ kết thúc khi nào?

  • - Khi tìm thấy phần tử hoặc khi low lớn hơn high
  • - Khi danh sách chỉ còn 1 phần tử
  • - Khi chỉ số mid bằng 0
  • - Khi đã duyệt qua tất cả các phần tử tuần tự

Câu 5: Khi nào thì tìm kiếm tuần tự có thể kết thúc sớm hơn việc duyệt hết toàn bộ danh sách?

  • - Khi danh sách quá lớn
  • - Khi tìm thấy phần tử cần tìm
  • - Khi danh sách chưa được sắp xếp
  • - Khi không tìm thấy phần tử

Câu 6: Trong Python, công thức chính xác để tính chỉ số giữa (mid) của danh sách có chỉ số từ 'low' đến 'high' trong tìm kiếm nhị phân là gì?

  • - mid = low + high // 2
  • - mid = (low + high) // 2
  • - mid = (low + high) / 2
  • - mid = high - low // 2

Câu 7: Kết quả trả về của một hàm tìm kiếm thông thường khi không tìm thấy giá trị trong danh sách là gì?

  • - Giá trị 0
  • - Giá trị -1 (hoặc None)
  • - Giá trị cuối cùng của danh sách
  • - Một thông báo lỗi dừng chương trình

Câu 8: Trong trường hợp tốt nhất, thuật toán tìm kiếm tuần tự sẽ thực hiện bao nhiêu lần so sánh?

  • - 0 lần
  • - n lần
  • - 1 lần
  • - log n lần

Câu 9: Tại sao tìm kiếm nhị phân không thể áp dụng trực tiếp cho danh sách liên kết (Linked List) một cách hiệu quả?

  • - Vì danh sách liên kết không thể sắp xếp
  • - Vì không thể truy cập ngẫu nhiên phần tử ở giữa với thời gian hằng số
  • - Vì danh sách liên kết chỉ chứa dữ liệu kiểu chuỗi
  • - Vì danh sách liên kết tiêu tốn quá nhiều bộ nhớ

Câu 10: Thuật toán tìm kiếm tuần tự sẽ thực hiện bao nhiêu lần so sánh để tìm giá trị 5 trong danh sách [1, 2, 3, 4, 5]?

  • - 1 lần
  • - 3 lần
  • - 5 lần
  • - 0 lần

Câu 11: Trong Python, phương thức 'A.index(x)' của danh sách A sẽ làm gì nếu x không có trong A?

  • - Trả về -1
  • - Trả về None
  • - Gây ra lỗi ValueError
  • - Trả về độ dài của danh sách

Câu 12: Điều kiện bắt buộc để có thể áp dụng thuật toán tìm kiếm nhị phân (Binary Search) trên một danh sách là gì?

  • - Danh sách phải có số lượng phần tử là số chẵn
  • - Danh sách phải chứa các giá trị số nguyên
  • - Danh sách phải được sắp xếp theo một thứ tự xác định (tăng dần hoặc giảm dần)
  • - Danh sách không được chứa các giá trị trùng lặp

Câu 13: Khi tìm kiếm một số điện thoại trong danh bạ đã được sắp xếp theo tên, thuật toán nào hiệu quả nhất?

  • - Tìm kiếm tuần tự
  • - Tìm kiếm nhị phân
  • - Tìm kiếm ngẫu nhiên
  • - Duyệt toàn bộ danh bạ

Câu 14: Thuật toán tìm kiếm nhị phân thuộc chiến lược thiết kế thuật toán nào?

  • - Tham ăn (Greedy)
  • - Quy hoạch động (Dynamic Programming)
  • - Chia để trị (Divide and Conquer)
  • - Duyệt toàn bộ (Brute Force)

Câu 15: Với danh sách đã sắp xếp A = [5, 12, 18, 25, 30, 42, 55], khi tìm X = 42 bằng tìm kiếm nhị phân, giá trị 'mid' đầu tiên sẽ trỏ vào số nào?

  • - 12
  • - 25
  • - 30
  • - 42

Câu 16: Giả sử bạn có một danh sách tên học sinh chưa được sắp xếp. Thuật toán nào là lựa chọn hợp lý nhất để tìm tên một học sinh?

  • - Tìm kiếm nhị phân
  • - Tìm kiếm tuần tự
  • - Sắp xếp nhanh rồi tìm kiếm nhị phân
  • - Sắp xếp nổi bọt

Câu 17: Trong mã giả của thuật toán tìm kiếm nhị phân, điều kiện 'while low <= high' có vai trò gì?

  • - Để đảm bảo danh sách luôn có độ dài lớn hơn 0
  • - Để duy trì vòng lặp chừng nào phạm vi tìm kiếm vẫn còn khả thi
  • - Để sắp xếp lại danh sách sau mỗi vòng lặp
  • - Để ngăn chặn việc người dùng nhập sai dữ liệu

Câu 18: Phát biểu nào sau đây là SAI về thuật toán tìm kiếm tuần tự?

  • - Có thể áp dụng cho cả danh sách đã sắp xếp và chưa sắp xếp
  • - Luôn nhanh hơn tìm kiếm nhị phân với danh sách lớn
  • - Đơn giản và dễ cài đặt
  • - Phù hợp với danh sách có kích thước nhỏ

Câu 19: Trong bài toán tìm kiếm, mục tiêu chính của thuật toán tìm kiếm tuần tự (linear search) là gì?

  • - Sắp xếp lại danh sách trước khi tìm
  • - Duyệt qua các phần tử để tìm giá trị cần thiết
  • - Chia đôi danh sách liên tiếp để tìm kiếm
  • - Loại bỏ các phần tử trùng lặp trong danh sách

Câu 20: Khi nào thì việc sử dụng tìm kiếm tuần tự lại hiệu quả hơn việc sắp xếp rồi dùng tìm kiếm nhị phân?

  • - Khi danh sách rất lớn
  • - Khi cần thực hiện tìm kiếm rất nhiều lần trên cùng một danh sách
  • - Khi danh sách nhỏ và chỉ cần thực hiện tìm kiếm một lần duy nhất
  • - Khi danh sách đã được sắp xếp sẵn

Câu 21: Khi thực hiện tìm kiếm nhị phân, nếu giá trị cần tìm (x) nhỏ hơn giá trị tại vị trí giữa (A[mid]), ta cần thu hẹp phạm vi tìm kiếm sang đâu?

  • - Nửa danh sách bên trái (từ left đến mid - 1)
  • - Nửa danh sách bên phải (từ mid + 1 đến right)
  • - Dừng thuật toán vì không tìm thấy
  • - Tiếp tục tìm kiếm tuần tự từ vị trí mid trở đi

Câu 22: Trong thuật toán tìm kiếm nhị phân, lệnh 'high = mid - 1' được thực hiện khi nào?

  • - Khi giá trị cần tìm bằng giá trị tại vị trí 'mid'
  • - Khi giá trị cần tìm nhỏ hơn giá trị tại vị trí 'mid'
  • - Khi giá trị cần tìm lớn hơn giá trị tại vị trí 'mid'
  • - Khi đã duyệt hết danh sách

Câu 23: Trong bài toán tìm kiếm thông tin một học sinh theo tên trong danh sách 'ds_hoc_sinh' (mỗi phần tử là một từ điển chứa 'ten' và 'diem'), đoạn mã nào thực hiện đúng tìm kiếm tuần tự?

  • - for hs in ds_hoc_sinh: if hs['ten'] == x: return hs
  • - if x in ds_hoc_sinh: return x
  • - while x != ds_hoc_sinh['ten']: x += 1
  • - ds_hoc_sinh.sort(); binary_search(x)

Câu 24: Tại sao việc sử dụng danh sách các từ điển (list of dicts) lại phù hợp để lưu trữ hồ sơ học sinh trong Python?

  • - Vì nó giúp thuật toán chạy nhanh hơn gấp hai lần
  • - Vì nó tiết kiệm bộ nhớ hơn so với kiểu danh sách lồng nhau
  • - Vì mỗi từ điển có thể lưu trữ nhiều thuộc tính khác nhau của một học sinh theo cặp khóa-giá trị
  • - Vì Python không cho phép lưu hồ sơ học sinh bằng các kiểu dữ liệu khác

Câu 25: Công thức xác định chỉ số phần tử ở giữa 'mid' trong thuật toán tìm kiếm nhị phân với 'low' là chỉ số đầu và 'high' là chỉ số cuối là gì?

  • - mid = (low + high) / 2
  • - mid = (low + high) // 2
  • - mid = low + high
  • - mid = (high - low) // 2