12+ Đề Trắc Nghiệm Tin Học 11 (Kết Nối Tri Thức) Bài 20: Thực Hành Bài Toán Tìm Kiếm

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 01 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, bạn cần xử lý dữ liệu từ một tệp văn bản "hocsinh.txt" có cấu trúc mỗi dòng chứa "TenHS, DiemHS" (ví dụ: "Nguyen Van A, 8.5"). Để đọc từng dòng và tách riêng tên và điểm, bạn sẽ kết hợp những phương thức nào sau đây?

  • A. read() và join()
  • B. write() và split()
  • C. close() và readlines()
  • D. readlines() và split()

Câu 2: Bạn đang viết chương trình Python để ghi kết quả tra cứu vào một tệp log "log_timkiem.txt". Mỗi lần có kết quả, bạn muốn ghi thêm thông tin vào cuối tệp mà không xóa nội dung cũ. Lệnh `open()` nào sau đây là đúng cho mục đích này?

  • A. f = open("log_timkiem.txt", "w")
  • B. f = open("log_timkiem.txt", "a")
  • C. f = open("log_timkiem.txt", "r")
  • D. f = open("log_timkiem.txt", "x")

Câu 3: Giả sử bạn có một danh sách `diem_thi = [8.5, 7.0, 9.2, 6.8, 7.5]` và cần tìm xem điểm `9.2` có tồn tại trong danh sách này hay không bằng thuật toán tìm kiếm tuần tự. Nếu bạn duyệt từ đầu danh sách, tại vị trí nào bạn sẽ tìm thấy giá trị cần tìm và dừng thuật toán?

  • A. Chỉ số 0
  • B. Chỉ số 1
  • C. Chỉ số 2
  • D. Phải duyệt hết danh sách mới kết luận được

Câu 4: Cho một danh sách tên học sinh `ten_hs = ["An", "Binh", "Hoa", "Nam", "Viet"]` đã được sắp xếp theo thứ tự bảng chữ cái. Bạn muốn tìm tên "Hoa" bằng thuật toán tìm kiếm nhị phân. Bước đầu tiên của thuật toán là gì?

  • A. Kiểm tra phần tử ở giữa danh sách ("Hoa").
  • B. Kiểm tra phần tử đầu tiên của danh sách ("An").
  • C. Kiểm tra phần tử cuối cùng của danh sách ("Viet").
  • D. Kiểm tra từng phần tử từ đầu đến cuối ("An", "Binh", ...).

Câu 5: Tiếp theo Câu 4, sau khi kiểm tra phần tử ở giữa là "Hoa" và thấy nó khớp với tên cần tìm, thuật toán tìm kiếm nhị phân sẽ làm gì?

  • A. Tiếp tục tìm kiếm trong nửa bên trái của danh sách.
  • B. Tiếp tục tìm kiếm trong nửa bên phải của danh sách.
  • C. Kết thúc tìm kiếm và trả về vị trí của "Hoa".
  • D. Báo cáo rằng không tìm thấy tên "Hoa".

Câu 6: Trong bài toán tìm kiếm thông tin học sinh (tên, điểm) từ một tệp dữ liệu. Nếu tệp dữ liệu không được đảm bảo là đã sắp xếp theo tên học sinh, thuật toán tìm kiếm nào là lựa chọn đơn giản và phù hợp nhất để tìm thông tin của một học sinh cụ thể?

  • A. Tìm kiếm tuần tự (Sequential Search)
  • B. Tìm kiếm nhị phân (Binary Search)
  • C. Cả hai thuật toán đều không phù hợp
  • D. Cần phải sắp xếp lại dữ liệu trước khi tìm kiếm

Câu 7: Khi đọc dữ liệu từ tệp bằng phương thức `f.readlines()`, kết quả trả về là gì?

  • A. Một danh sách (list) các chuỗi, mỗi chuỗi là một dòng từ tệp.
  • B. Một chuỗi (string) lớn chứa toàn bộ nội dung tệp.
  • C. Một danh sách các ký tự trong tệp.
  • D. Số lượng dòng trong tệp.

Câu 8: Bạn đã đọc dữ liệu từ tệp "diem.txt" vào một danh sách `du_lieu`. Mỗi phần tử trong danh sách là một chuỗi "TenHS, DiemHS". Để chuyển đổi danh sách này thành hai danh sách riêng biệt là `ten_list` và `diem_list` (điểm dạng số thực), bạn sẽ thực hiện vòng lặp và áp dụng phương thức/hàm nào bên trong vòng lặp cho mỗi dòng?

  • A. join() và int()
  • B. read() và str()
  • C. write() và list()
  • D. split(), strip() và float()

Câu 9: Khi thực hiện tìm kiếm nhị phân trên một danh sách gồm N phần tử đã được sắp xếp, độ phức tạp thời gian trung bình và xấu nhất của thuật toán là gì?

  • A. O(N)
  • B. O(N^2)
  • C. O(log N)
  • D. O(1)

Câu 10: Ngược lại với Câu 9, độ phức tạp thời gian trung bình và xấu nhất của thuật toán tìm kiếm tuần tự trên một danh sách N phần tử (không sắp xếp) là gì?

  • A. O(N)
  • B. O(log N)
  • C. O(N log N)
  • D. O(1)

Câu 11: Đoạn mã Python sau dùng để làm gì?```python
try:
f = open("data.txt", "r")
# Đọc và xử lý tệp
finally:
if "f" in locals() and not f.closed:
f.close()
```

  • A. Chỉ đóng tệp nếu quá trình đọc tệp gặp lỗi.
  • B. Chỉ đóng tệp nếu quá trình đọc tệp hoàn thành mà không có lỗi.
  • C. Đảm bảo tệp luôn được đóng sau khi sử dụng, ngay cả khi có lỗi xảy ra trong quá trình xử lý.
  • D. Xóa nội dung của tệp "data.txt" sau khi đọc.

Câu 12: Khi tìm kiếm nhị phân một giá trị X trong danh sách đã sắp xếp tăng dần, nếu phần tử ở vị trí giữa lớn hơn X, bước tiếp theo của thuật toán sẽ là gì?

  • A. Tìm kiếm trong nửa bên trái của danh sách.
  • B. Tìm kiếm trong nửa bên phải của danh sách.
  • C. Kết thúc tìm kiếm và báo không tìm thấy.
  • D. Kiểm tra phần tử liền kề bên phải phần tử giữa.

Câu 13: Bạn có một tệp "sanpham.txt" chứa thông tin mỗi dòng là "MaSP, TenSP, Gia". Bạn muốn tìm kiếm sản phẩm theo "MaSP". Mã sản phẩm là duy nhất và tệp không được sắp xếp theo "MaSP". Phương pháp nào sau đây là hiệu quả nhất để thực hiện việc tìm kiếm này trong Python?

  • A. Đọc toàn bộ tệp vào bộ nhớ, sắp xếp theo "MaSP", sau đó dùng tìm kiếm nhị phân.
  • B. Sử dụng tìm kiếm nhị phân trực tiếp trên tệp mà không cần đọc vào bộ nhớ.
  • C. Chỉ đọc dòng đầu tiên của tệp và kiểm tra "MaSP".
  • D. Đọc từng dòng của tệp, tách thông tin và kiểm tra "MaSP" với giá trị cần tìm (tìm kiếm tuần tự trên tệp).

Câu 14: Trong quá trình đọc dữ liệu từ tệp văn bản trong Python, tại sao việc chỉ định `encoding="UTF-8"` lại quan trọng, đặc biệt khi tệp có chứa tiếng Việt?

  • A. Để tăng tốc độ đọc tệp.
  • B. Để đảm bảo các ký tự đặc biệt và ký tự có dấu (như tiếng Việt) được đọc và hiển thị chính xác.
  • C. Để giảm dung lượng tệp khi lưu trữ.
  • D. Để chỉ cho Python biết tệp là tệp văn bản chứ không phải tệp nhị phân.

Câu 15: Giả sử bạn cần xây dựng một chương trình tra cứu từ điển đơn giản từ một tệp văn bản "dictionary.txt" đã được sắp xếp theo thứ tự bảng chữ cái của từ vựng. Mỗi dòng chứa "TuVung: Nghia". Thuật toán tìm kiếm nào sẽ mang lại hiệu suất tốt nhất cho việc tra cứu từ vựng?

  • A. Tìm kiếm tuần tự (Sequential Search).
  • B. Tìm kiếm nhị phân (Binary Search).
  • C. Cả hai thuật toán đều có hiệu suất như nhau.
  • D. Một thuật toán tìm kiếm ngẫu nhiên.

Câu 16: Đoạn mã sau cố gắng đọc và in ra dòng đầu tiên của tệp "cauhoi.txt". Nó có thể gặp lỗi gì nếu tệp "cauhoi.txt" không tồn tại?

  • A. FileNotFoundError
  • B. TypeError
  • C. ValueError
  • D. IndexError

Câu 17: Khi sử dụng vòng lặp `for line in f:` để đọc tệp `f` trong Python, biến `line` trong mỗi lần lặp sẽ chứa gì?

  • A. Toàn bộ nội dung của tệp.
  • B. Một danh sách các ký tự trong dòng hiện tại.
  • C. Số thứ tự của dòng hiện tại.
  • D. Một chuỗi chứa nội dung của dòng hiện tại (bao gồm ký tự xuống dòng).

Câu 18: Bạn đã đọc một dòng từ tệp là chuỗi `dong = " Nguyen Van B , 9.0 n"`. Để lấy ra tên "Nguyen Van B" và điểm "9.0" dưới dạng chuỗi, bạn sẽ thực hiện các bước xử lý chuỗi nào?

  • A. split(",") rồi int()
  • B. replace(",", " ") rồi upper()
  • C. strip() rồi split(",") rồi strip() cho từng phần
  • D. find(",") rồi slice()

Câu 19: Trong kịch bản tìm kiếm thông tin học sinh theo tên trong một danh sách lớn (ví dụ 100,000 học sinh) đã được sắp xếp theo tên. Nếu sử dụng tìm kiếm tuần tự, số lần so sánh trung bình cần thiết để tìm một tên có khả năng xảy ra nhất là khoảng bao nhiêu?

  • A. Khoảng 10-20 lần
  • B. Chỉ 1 lần (nếu may mắn)
  • C. Đúng 100,000 lần (trường hợp xấu nhất)
  • D. Khoảng 50,000 lần (trường hợp trung bình)

Câu 20: Tiếp theo Câu 19, nếu sử dụng tìm kiếm nhị phân trên danh sách 100,000 học sinh đã sắp xếp, số lần so sánh tối đa cần thiết để tìm một tên là khoảng bao nhiêu? (Gợi ý: log2(100,000) ≈ 16.6)

  • A. Khoảng 17 lần
  • B. Khoảng 50,000 lần
  • C. Khoảng 100,000 lần
  • D. Chỉ 1 lần

Câu 21: Khi nào thì việc sắp xếp dữ liệu trước rồi áp dụng tìm kiếm nhị phân trở nên kém hiệu quả hơn so với chỉ dùng tìm kiếm tuần tự?

  • A. Khi dữ liệu đã được sắp xếp.
  • B. Khi số lần tìm kiếm rất ít so với chi phí sắp xếp dữ liệu ban đầu.
  • C. Khi kích thước dữ liệu rất nhỏ.
  • D. Khi dữ liệu chứa các giá trị trùng lặp.

Câu 22: Trong thuật toán tìm kiếm nhị phân, nếu danh sách đang xét rỗng (khoảng tìm kiếm `left > right`), điều đó có ý nghĩa gì?

  • A. Đã tìm thấy giá trị cần tìm.
  • B. Thuật toán sẽ tiếp tục tìm kiếm trong toàn bộ danh sách ban đầu.
  • C. Danh sách ban đầu rỗng.
  • D. Không tìm thấy giá trị cần tìm trong danh sách.

Câu 23: Giả sử bạn đọc dữ liệu từ tệp "diem.txt" bằng `readlines()` và lưu vào biến `lines`. Bạn muốn xử lý từng dòng để lấy tên và điểm. Vòng lặp nào sau đây là cách thông thường để duyệt qua từng dòng trong danh sách `lines`?

  • A. for line in lines:
  • B. while lines is not empty:
  • C. if line in lines:
  • D. for i in range(len(lines)): # Nhưng không phải cách thông thường nhất để lấy giá trị

Câu 24: Bạn viết một hàm Python `tim_diem(ten_hs, danh_sach)` để tìm điểm của học sinh. Nếu học sinh không có trong danh sách, hàm nên trả về giá trị gì để chỉ rõ điều này một cách rõ ràng, tránh nhầm lẫn với điểm 0?

  • A. Trả về 0
  • B. In thông báo lỗi ra màn hình
  • C. Trả về None hoặc một giá trị đặc biệt (ví dụ: -1)
  • D. Dừng toàn bộ chương trình

Câu 25: Khi thực hiện tìm kiếm nhị phân, nếu danh sách có số lượng phần tử chẵn, vị trí "giữa" thường được xác định bằng cách nào?

  • A. Lấy trung bình cộng của chỉ số đầu và chỉ số cuối, rồi làm tròn xuống (chia nguyên).
  • B. Lấy trung bình cộng của chỉ số đầu và chỉ số cuối, rồi làm tròn lên.
  • C. Luôn chọn phần tử bên trái trong hai phần tử giữa.
  • D. Luôn chọn phần tử bên phải trong hai phần tử giữa.

Câu 26: Bạn đang debug một chương trình tìm kiếm nhị phân và nhận thấy nó đôi khi không tìm thấy giá trị lẽ ra phải có. Nguyên nhân phổ biến nhất của lỗi này khi làm việc với tìm kiếm nhị phân là gì?

  • A. Sử dụng quá nhiều bộ nhớ.
  • B. Danh sách dữ liệu đầu vào chưa được sắp xếp.
  • C. Không đóng tệp sau khi đọc.
  • D. Sử dụng sai chế độ mở tệp ("r" thay vì "w").

Câu 27: Khi sử dụng `print(data, file=f)`, tham số `file=f` có ý nghĩa gì?

  • A. Chuyển hướng đầu ra của lệnh `print` tới đối tượng tệp `f` thay vì màn hình console.
  • B. Chỉ in dữ liệu nếu tệp `f` đang mở.
  • C. Ghi tên tệp `f` vào đầu dữ liệu.
  • D. Đọc dữ liệu từ tệp `f` và in ra màn hình.

Câu 28: Bạn cần đọc dữ liệu từ một tệp "diemso.csv" có định dạng "Ten, Diem" và lưu trữ chúng vào hai danh sách Python riêng biệt: một danh sách tên (chuỗi) và một danh sách điểm (số thực). Hãy mô tả luồng xử lý cơ bản bạn sẽ thực hiện.

  • A. Mở tệp để ghi, ghi tên và điểm vào tệp, đóng tệp.
  • B. Mở tệp để đọc, đọc toàn bộ nội dung vào một chuỗi, tìm kiếm tên trong chuỗi đó.
  • C. Mở tệp để đọc, đọc từng dòng, tách tên và điểm từ mỗi dòng, chuyển điểm sang số thực, lưu vào hai danh sách riêng biệt, đóng tệp.
  • D. Sắp xếp tệp theo tên, sau đó đọc dòng đầu tiên để lấy tên và điểm.

Câu 29: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, trường hợp tốt nhất (best case) về số lần so sánh xảy ra khi nào?

  • A. Khi phần tử cần tìm nằm ở cuối danh sách.
  • B. Khi phần tử cần tìm nằm ở đầu danh sách.
  • C. Khi phần tử cần tìm không có trong danh sách.
  • D. Khi danh sách rỗng.

Câu 30: Bạn đã đọc dữ liệu học sinh (tên, điểm) từ tệp vào hai danh sách `ten_list` và `diem_list` (đảm bảo cùng chỉ số). Bạn muốn cho phép người dùng nhập tên để tra cứu điểm. Bạn sẽ sử dụng cấu trúc điều khiển nào để liên tục nhận tên từ người dùng cho đến khi họ nhập một từ khóa đặc biệt (ví dụ: "thoat")?

  • A. Vòng lặp `while` kết hợp với điều kiện dừng.
  • B. Vòng lặp `for` với số lần lặp cố định.
  • C. Câu lệnh điều kiện `if-elif-else`.
  • D. Không cần cấu trúc lặp, chỉ cần một lần nhập tên.

1 / 30

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

Tags: Bộ đề 01

Câu 1: Trong Python, bạn cần xử lý dữ liệu từ một tệp văn bản 'hocsinh.txt' có cấu trúc mỗi dòng chứa 'TenHS, DiemHS' (ví dụ: 'Nguyen Van A, 8.5'). Để đọc từng dòng và tách riêng tên và điểm, bạn sẽ kết hợp những phương thức nào sau đây?

2 / 30

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

Tags: Bộ đề 01

Câu 2: Bạn đang viết chương trình Python để ghi kết quả tra cứu vào một tệp log 'log_timkiem.txt'. Mỗi lần có kết quả, bạn muốn ghi thêm thông tin vào cuối tệp mà không xóa nội dung cũ. Lệnh `open()` nào sau đây là đúng cho mục đích này?

3 / 30

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

Tags: Bộ đề 01

Câu 3: Giả sử bạn có một danh sách `diem_thi = [8.5, 7.0, 9.2, 6.8, 7.5]` và cần tìm xem điểm `9.2` có tồn tại trong danh sách này hay không bằng thuật toán tìm kiếm tuần tự. Nếu bạn duyệt từ đầu danh sách, tại vị trí nào bạn sẽ tìm thấy giá trị cần tìm và dừng thuật toán?

4 / 30

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

Tags: Bộ đề 01

Câu 4: Cho một danh sách tên học sinh `ten_hs = ['An', 'Binh', 'Hoa', 'Nam', 'Viet']` đã được sắp xếp theo thứ tự bảng chữ cái. Bạn muốn tìm tên 'Hoa' bằng thuật toán tìm kiếm nhị phân. Bước đầu tiên của thuật toán là gì?

5 / 30

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

Tags: Bộ đề 01

Câu 5: Tiếp theo Câu 4, sau khi kiểm tra phần tử ở giữa là 'Hoa' và thấy nó khớp với tên cần tìm, thuật toán tìm kiếm nhị phân sẽ làm gì?

6 / 30

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

Tags: Bộ đề 01

Câu 6: Trong bài toán tìm kiếm thông tin học sinh (tên, điểm) từ một tệp dữ liệu. Nếu tệp dữ liệu *không* được đảm bảo là đã sắp xếp theo tên học sinh, thuật toán tìm kiếm nào là lựa chọn đơn giản và phù hợp nhất để tìm thông tin của một học sinh cụ thể?

7 / 30

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

Tags: Bộ đề 01

Câu 7: Khi đọc dữ liệu từ tệp bằng phương thức `f.readlines()`, kết quả trả về là gì?

8 / 30

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

Tags: Bộ đề 01

Câu 8: Bạn đã đọc dữ liệu từ tệp 'diem.txt' vào một danh sách `du_lieu`. Mỗi phần tử trong danh sách là một chuỗi 'TenHS, DiemHS'. Để chuyển đổi danh sách này thành hai danh sách riêng biệt là `ten_list` và `diem_list` (điểm dạng số thực), bạn sẽ thực hiện vòng lặp và áp dụng phương thức/hàm nào bên trong vòng lặp cho mỗi dòng?

9 / 30

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

Tags: Bộ đề 01

Câu 9: Khi thực hiện tìm kiếm nhị phân trên một danh sách gồm N phần tử đã được sắp xếp, độ phức tạp thời gian trung bình và xấu nhất của thuật toán là gì?

10 / 30

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

Tags: Bộ đề 01

Câu 10: Ngược lại với Câu 9, độ phức tạp thời gian trung bình và xấu nhất của thuật toán tìm kiếm tuần tự trên một danh sách N phần tử (không sắp xếp) là gì?

11 / 30

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

Tags: Bộ đề 01

Câu 11: Đoạn mã Python sau dùng để làm gì?```python
try:
f = open('data.txt', 'r')
# Đọc và xử lý tệp
finally:
if 'f' in locals() and not f.closed:
f.close()
```

12 / 30

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

Tags: Bộ đề 01

Câu 12: Khi tìm kiếm nhị phân một giá trị X trong danh sách đã sắp xếp tăng dần, nếu phần tử ở vị trí giữa lớn hơn X, bước tiếp theo của thuật toán sẽ là gì?

13 / 30

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

Tags: Bộ đề 01

Câu 13: Bạn có một tệp 'sanpham.txt' chứa thông tin mỗi dòng là 'MaSP, TenSP, Gia'. Bạn muốn tìm kiếm sản phẩm theo 'MaSP'. Mã sản phẩm là duy nhất và tệp *không* được sắp xếp theo 'MaSP'. Phương pháp nào sau đây là hiệu quả nhất để thực hiện việc tìm kiếm này trong Python?

14 / 30

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

Tags: Bộ đề 01

Câu 14: Trong quá trình đọc dữ liệu từ tệp văn bản trong Python, tại sao việc chỉ định `encoding='UTF-8'` lại quan trọng, đặc biệt khi tệp có chứa tiếng Việt?

15 / 30

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

Tags: Bộ đề 01

Câu 15: Giả sử bạn cần xây dựng một chương trình tra cứu từ điển đơn giản từ một tệp văn bản 'dictionary.txt' đã được sắp xếp theo thứ tự bảng chữ cái của từ vựng. Mỗi dòng chứa 'TuVung: Nghia'. Thuật toán tìm kiếm nào sẽ mang lại hiệu suất tốt nhất cho việc tra cứu từ vựng?

16 / 30

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

Tags: Bộ đề 01

Câu 16: Đoạn mã sau cố gắng đọc và in ra dòng đầu tiên của tệp 'cauhoi.txt'. Nó có thể gặp lỗi gì nếu tệp 'cauhoi.txt' không tồn tại?

17 / 30

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

Tags: Bộ đề 01

Câu 17: Khi sử dụng vòng lặp `for line in f:` để đọc tệp `f` trong Python, biến `line` trong mỗi lần lặp sẽ chứa gì?

18 / 30

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

Tags: Bộ đề 01

Câu 18: Bạn đã đọc một dòng từ tệp là chuỗi `dong = ' Nguyen Van B , 9.0 n'`. Để lấy ra tên 'Nguyen Van B' và điểm '9.0' dưới dạng chuỗi, bạn sẽ thực hiện các bước xử lý chuỗi nào?

19 / 30

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

Tags: Bộ đề 01

Câu 19: Trong kịch bản tìm kiếm thông tin học sinh theo tên trong một danh sách lớn (ví dụ 100,000 học sinh) đã được sắp xếp theo tên. Nếu sử dụng tìm kiếm tuần tự, số lần so sánh trung bình cần thiết để tìm một tên có khả năng xảy ra nhất là khoảng bao nhiêu?

20 / 30

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

Tags: Bộ đề 01

Câu 20: Tiếp theo Câu 19, nếu sử dụng tìm kiếm nhị phân trên danh sách 100,000 học sinh đã sắp xếp, số lần so sánh tối đa cần thiết để tìm một tên là khoảng bao nhiêu? (Gợi ý: log2(100,000) ≈ 16.6)

21 / 30

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

Tags: Bộ đề 01

Câu 21: Khi nào thì việc sắp xếp dữ liệu trước rồi áp dụng tìm kiếm nhị phân trở nên kém hiệu quả hơn so với chỉ dùng tìm kiếm tuần tự?

22 / 30

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

Tags: Bộ đề 01

Câu 22: Trong thuật toán tìm kiếm nhị phân, nếu danh sách đang xét rỗng (khoảng tìm kiếm `left > right`), điều đó có ý nghĩa gì?

23 / 30

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

Tags: Bộ đề 01

Câu 23: Giả sử bạn đọc dữ liệu từ tệp 'diem.txt' bằng `readlines()` và lưu vào biến `lines`. Bạn muốn xử lý từng dòng để lấy tên và điểm. Vòng lặp nào sau đây là cách thông thường để duyệt qua từng dòng trong danh sách `lines`?

24 / 30

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

Tags: Bộ đề 01

Câu 24: Bạn viết một hàm Python `tim_diem(ten_hs, danh_sach)` để tìm điểm của học sinh. Nếu học sinh không có trong danh sách, hàm nên trả về giá trị gì để chỉ rõ điều này một cách rõ ràng, tránh nhầm lẫn với điểm 0?

25 / 30

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

Tags: Bộ đề 01

Câu 25: Khi thực hiện tìm kiếm nhị phân, nếu danh sách có số lượng phần tử chẵn, vị trí 'giữa' thường được xác định bằng cách nào?

26 / 30

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

Tags: Bộ đề 01

Câu 26: Bạn đang debug một chương trình tìm kiếm nhị phân và nhận thấy nó đôi khi không tìm thấy giá trị lẽ ra phải có. Nguyên nhân phổ biến nhất của lỗi này khi làm việc với tìm kiếm nhị phân là gì?

27 / 30

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

Tags: Bộ đề 01

Câu 27: Khi sử dụng `print(data, file=f)`, tham số `file=f` có ý nghĩa gì?

28 / 30

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

Tags: Bộ đề 01

Câu 28: Bạn cần đọc dữ liệu từ một tệp 'diemso.csv' có định dạng 'Ten, Diem' và lưu trữ chúng vào hai danh sách Python riêng biệt: một danh sách tên (chuỗi) và một danh sách điểm (số thực). Hãy mô tả luồng xử lý cơ bản bạn sẽ thực hiện.

29 / 30

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

Tags: Bộ đề 01

Câu 29: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, trường hợp tốt nhất (best case) về số lần so sánh xảy ra khi nào?

30 / 30

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

Tags: Bộ đề 01

Câu 30: Bạn đã đọc dữ liệu học sinh (tên, điểm) từ tệp vào hai danh sách `ten_list` và `diem_list` (đảm bảo cùng chỉ số). Bạn muốn cho phép người dùng nhập tên để tra cứu điểm. Bạn sẽ sử dụng cấu trúc điều khiển nào để liên tục nhận tên từ người dùng cho đến khi họ nhập một từ khóa đặc biệt (ví dụ: 'thoat')?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Một lập trình viên cần đọc toàn bộ nội dung từ tệp văn bản "du_lieu.txt" để xử lý. Tệp này có thể chứa các ký tự tiếng Việt có dấu. Dòng lệnh Python nào sau đây là phù hợp nhất để mở tệp cho mục đích này?

  • A. f = open("du_lieu.txt", "w")
  • B. f = open("du_lieu.txt", "a", encoding="utf-8")
  • C. f = open("du_lieu.txt", "r", encoding="utf-8")
  • D. f = open("du_lieu.txt", "rb")

Câu 2: Xét đoạn chương trình Python sau:
```python
f = open("thongtin.txt", "w")
f.write("Nguyen Van An")
f.write("Le Thi Bn")
f.close()
```
Nếu sau đó chạy lại đoạn code này, nội dung của tệp "thongtin.txt" sẽ như thế nào?

  • A. Chứa cả "Nguyen Van A" và "Le Thi B" từ lần chạy đầu tiên, sau đó thêm "Nguyen Van A" và "Le Thi B" từ lần chạy thứ hai.
  • B. Chỉ chứa "Nguyen Van A" và "Le Thi B" từ lần chạy thứ hai, xóa bỏ nội dung từ lần chạy đầu tiên.
  • C. Báo lỗi vì tệp đã tồn tại.
  • D. Không có gì xảy ra với tệp vì nó đã được đóng ở lần chạy đầu tiên.

Câu 3: Một tệp văn bản "diemso.txt" có cấu trúc mỗi dòng là "Tên Điểm" (ví dụ: "Hoa 8.5"). Đoạn code sau đọc dữ liệu từ tệp này:
```python
f = open("diemso.txt", "r", encoding="utf-8")
data = f.readlines()
f.close()
for line in data:
parts = line.strip().split()
print(f"Hoc sinh: {parts[0]}, Diem: {parts[1]}")
```
Phương thức `line.strip().split()` có tác dụng gì trong ngữ cảnh này?

  • A. Loại bỏ ký tự xuống dòng và tách tên, điểm từ mỗi dòng.
  • B. Chỉ loại bỏ khoảng trắng ở đầu và cuối dòng.
  • C. Chỉ tách dòng thành danh sách các ký tự.
  • D. Gộp nhiều dòng thành một chuỗi duy nhất.

Câu 4: Giả sử bạn có danh sách `danh_sach_ten = ["An", "Binh", "Mai", "Tuan"]` và bạn muốn tìm xem tên "Mai" có tồn tại trong danh sách này hay không bằng thuật toán tìm kiếm tuần tự. Đoạn code kiểm tra nào sau đây thể hiện đúng logic tìm kiếm tuần tự?

  • A. if "Mai" in danh_sach_ten: print("Found")
  • B. if danh_sach_ten[len(danh_sach_ten)//2] == "Mai": print("Found")
  • C. found = False
    for ten in danh_sach_ten:
    if ten == "Mai":
    found = True
    break
    if found: print("Found")
  • D. if danh_sach_ten[-1] == "Mai": print("Found")

Câu 5: Thuật toán tìm kiếm nhị phân hoạt động hiệu quả nhất trên loại dữ liệu nào và dựa trên nguyên tắc chính nào?

  • A. Dữ liệu đã được sắp xếp; Chia đôi phạm vi tìm kiếm.
  • B. Dữ liệu bất kỳ; So sánh lần lượt từng phần tử.
  • C. Dữ liệu có kích thước nhỏ; Duyệt từ cuối danh sách.
  • D. Dữ liệu chỉ chứa số; Sử dụng hàm băm (hashing).

Câu 6: Bạn đang xây dựng chức năng tra cứu tên học sinh trong một danh sách điểm lớn được lưu trong tệp. Danh sách này có hàng nghìn học sinh và đã được sắp xếp theo tên (bảng chữ cái). Để tối ưu tốc độ tra cứu, bạn nên sử dụng thuật toán tìm kiếm nào?

  • A. Tìm kiếm tuần tự (Sequential Search).
  • B. Tìm kiếm nhị phân (Binary Search).
  • C. Cả hai thuật toán đều có tốc độ như nhau với dữ liệu đã sắp xếp.
  • D. Một thuật toán sắp xếp trước khi tìm kiếm.

Câu 7: Giả sử bạn có danh sách số nguyên đã sắp xếp `so_lieu = [10, 25, 30, 45, 50, 65, 70, 85]`. Bạn muốn tìm số 50 bằng thuật toán tìm kiếm nhị phân. Các phần tử nào sẽ được kiểm tra (so sánh với 50) trong quá trình tìm kiếm?

  • A. 10, 25, 30, 45, 50.
  • B. 85, 30, 50.
  • C. 45, 65, 50.
  • D. 50.

Câu 8: Trong thuật toán tìm kiếm nhị phân, nếu phần tử ở vị trí giữa lớn hơn giá trị cần tìm, thì phạm vi tìm kiếm tiếp theo sẽ là phần nào của danh sách hiện tại?

  • A. Nửa bên trái (từ đầu đến trước vị trí giữa).
  • B. Nửa bên phải (từ sau vị trí giữa đến cuối).
  • C. Toàn bộ danh sách ban đầu.
  • D. Vị trí giữa chính là phần tử cần tìm.

Câu 9: Bạn cần ghi thông tin về kết quả tìm kiếm (ví dụ: "Tìm thấy học sinh: Ten, Diem") vào một tệp log "ketqua.txt". Bạn muốn mỗi lần ghi sẽ thêm vào cuối tệp mà không xóa các kết quả tìm kiếm trước đó. Lệnh mở tệp nào sau đây là đúng?

  • A. f = open("ketqua.txt", "w")
  • B. f = open("ketqua.txt", "r")
  • C. f = open("ketqua.txt", "a")
  • D. f = open("ketqua.txt", "x")

Câu 10: Khi sử dụng lệnh `f = open("data.bin", "rb")`, chế độ "rb" có ý nghĩa gì?

  • A. Đọc tệp văn bản.
  • B. Đọc tệp nhị phân.
  • C. Ghi tệp văn bản.
  • D. Ghi tệp nhị phân.

Câu 11: Bạn đọc một dòng từ tệp bằng `line = f.readline()`. Giả sử dòng đó là "Du lieu 123n". Sau khi thực hiện `parts = line.split()`, biến `parts` sẽ chứa giá trị nào?

  • A. ["Du", "lieu", "123"]
  • B. ["Du lieu 123n"]
  • C. ["Du", "lieu", "123", "n"]
  • D. ["D", "u", " ", "l", "i", "e", "u", " ", "1", "2", "3", "n"]

Câu 12: Trong bài toán thực hành tìm kiếm học sinh theo tên, nếu danh sách học sinh được đọc từ tệp và chưa được sắp xếp, thì thuật toán tìm kiếm nhị phân có thể được áp dụng trực tiếp không? Vì sao?

  • A. Có, vì tìm kiếm nhị phân luôn nhanh hơn tìm kiếm tuần tự.
  • B. Không, vì tìm kiếm nhị phân yêu cầu dữ liệu phải được sắp xếp.
  • C. Có, nhưng kết quả có thể không chính xác.
  • D. Không, chỉ có thể áp dụng cho dữ liệu số.

Câu 13: Bạn đang viết chương trình tra cứu từ điển đơn giản. Dữ liệu từ điển được lưu trong tệp "tudien.txt", mỗi dòng chứa một từ và nghĩa, cách nhau bởi dấu ": " (ví dụ: "apple: quả táo"). Để tìm nghĩa của một từ nhập từ bàn phím, bạn cần đọc từng dòng, tách từ và nghĩa, sau đó so sánh từ nhập với từ trong dòng. Đây là ví dụ của thuật toán tìm kiếm nào?

  • A. Tìm kiếm tuần tự.
  • B. Tìm kiếm nhị phân.
  • C. Tìm kiếm theo chiều rộng.
  • D. Tìm kiếm theo chiều sâu.

Câu 14: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách: `ten_hoc_sinh = ["An", "Binh", "Hoa"]` và `diem_so = [8.0, 7.5, 9.0]`. Người dùng nhập tên "Hoa". Bạn tìm thấy "Hoa" tại chỉ số 2 trong `ten_hoc_sinh`. Làm thế nào để lấy điểm tương ứng của "Hoa"?

  • A. diem = diem_so[0]
  • B. diem = diem_so[-1]
  • C. diem = diem_so[1]
  • D. diem = diem_so[2]

Câu 15: Mục đích chính của việc sử dụng vòng lặp `while True` kết hợp với điều kiện `if keyword == "end": break` trong chương trình tra cứu là gì?

  • A. Để chương trình tự động tìm kiếm tất cả các tên trong danh sách.
  • B. Để chương trình liên tục yêu cầu người dùng nhập tên cho đến khi họ nhập "end".
  • C. Để sắp xếp danh sách tên trước khi tìm kiếm.
  • D. Để ghi kết quả tìm kiếm vào tệp.

Câu 16: Khi đóng tệp bằng lệnh `f.close()`, hành động này có ý nghĩa quan trọng nào trong quản lý tài nguyên hệ thống?

  • A. Giải phóng tài nguyên hệ thống đang được sử dụng bởi tệp và đảm bảo dữ liệu đã được ghi đầy đủ.
  • B. Xóa tệp khỏi hệ thống.
  • C. Mở tệp ở chế độ chỉ đọc.
  • D. Di chuyển tệp sang một thư mục khác.

Câu 17: Bạn đọc toàn bộ nội dung tệp "cauhoi.txt" bằng `f.read()`. Kết quả trả về của phương thức `read()` là kiểu dữ liệu nào trong Python?

  • A. Chuỗi (string).
  • B. Danh sách (list).
  • C. Tuple.
  • D. Số nguyên (integer).

Câu 18: Giả sử bạn có một danh sách 1000 phần tử đã được sắp xếp. Khi tìm kiếm một phần tử không tồn tại bằng thuật toán tìm kiếm nhị phân, số lần so sánh tối đa (trong trường hợp xấu nhất) sẽ khoảng bao nhiêu?

  • A. 1000 lần.
  • B. Khoảng 10 lần.
  • C. Khoảng 500 lần.
  • D. Chỉ 1 lần.

Câu 19: Bạn cần tạo một tệp mới "baocao.txt" để ghi kết quả. Nếu tệp này đã tồn tại, chương trình của bạn nên báo lỗi thay vì ghi đè hoặc thêm vào. Chế độ mở tệp nào sau đây phù hợp nhất?

  • A. "w"
  • B. "a"
  • C. "r"
  • D. "x"

Câu 20: Xét đoạn code đọc tệp sau:
```python
f = open("dulieu.txt", "r")
line1 = f.readline()
line2 = f.readline()
f.close()
```
Giả sử "dulieu.txt" có 3 dòng: "Dong 1nDong 2nDong 3". Biến `line2` sẽ chứa giá trị gì?

  • A. "Dong 1n"
  • B. "Dong 1nDong 2n"
  • C. "Dong 2n"
  • D. ["Dong 1n", "Dong 2n"]

Câu 21: Khi thực hiện tìm kiếm tuần tự trong một danh sách `[5, 2, 8, 1, 9]` để tìm số 8, thứ tự các phần tử được so sánh là gì?

  • A. 9, 1, 8.
  • B. 5, 2, 8.
  • C. 8.
  • D. 1, 2, 5, 8, 9.

Câu 22: So với tìm kiếm tuần tự, thuật toán tìm kiếm nhị phân có ưu điểm chính nào khi áp dụng trên dữ liệu phù hợp?

  • A. Tốc độ tìm kiếm nhanh hơn, đặc biệt với dữ liệu lớn.
  • B. Không yêu cầu dữ liệu phải sắp xếp.
  • C. Dễ lập trình hơn.
  • D. Có thể tìm kiếm nhiều phần tử cùng lúc.

Câu 23: Đoạn code Python sau dùng để làm gì?
```python
data = ["Mot 1", "Hai 2", "Ba 3"]
f = open("ketqua.txt", "w")
for item in data:
print(item, file=f)
f.close()
```

  • A. In nội dung của danh sách `data` ra màn hình console.
  • B. Đọc nội dung từ tệp "ketqua.txt" vào danh sách `data`.
  • C. Ghi từng phần tử của danh sách `data` vào tệp "ketqua.txt", mỗi phần tử trên một dòng mới.
  • D. Tìm kiếm các phần tử trong danh sách `data`.

Câu 24: Khi đọc một tệp văn bản bằng `f.readlines()`, mỗi chuỗi trong danh sách kết quả thường sẽ kết thúc bằng ký tự đặc biệt nào (trừ dòng cuối cùng của tệp có thể không có)?

  • A. "n"
  • B. "t"
  • C. " " (khoảng trắng)
  • D. "" (chuỗi rỗng)

Câu 25: Giả sử bạn có danh sách điểm thi `diem = [7.0, 8.5, 6.0, 9.0, 7.5]`. Bạn muốn tìm tất cả các học sinh có điểm từ 8.0 trở lên. Bạn duyệt qua danh sách và kiểm tra từng điểm. Đây là một ứng dụng của phương pháp tìm kiếm nào?

  • A. Tìm kiếm tuần tự (Sequential Search).
  • B. Tìm kiếm nhị phân (Binary Search).
  • C. Sắp xếp.
  • D. Phân tích dữ liệu.

Câu 26: Để chương trình tra cứu tên học sinh có thể xử lý được các tên có khoảng trắng (ví dụ: "Tran Van A"), khi đọc dữ liệu từ tệp "Tên Điểm", bạn cần điều chỉnh cách tách chuỗi như thế nào sau khi đọc mỗi dòng?

  • A. Vẫn dùng `line.split()` như cũ.
  • B. Dùng `line.split(",")` nếu tệp dùng dấu phẩy làm phân cách giữa tên và điểm.
  • C. Đọc toàn bộ tệp thành một chuỗi lớn rồi xử lý.
  • D. Câu 2 và Câu 3 đều là các phương án khả thi tùy thuộc vào định dạng tệp, nhưng Câu 2 là cách phổ biến nhất nếu tệp có phân cách rõ ràng khác khoảng trắng.

Câu 27: Trong một ứng dụng thực tế, lý do chính khiến chúng ta thường đọc dữ liệu từ tệp vào danh sách (hoặc cấu trúc dữ liệu khác) trong bộ nhớ trước khi thực hiện tìm kiếm, thay vì đọc tệp và tìm kiếm trực tiếp từng lần là gì?

  • A. Thao tác đọc/ghi tệp chậm hơn nhiều so với thao tác trong bộ nhớ RAM.
  • B. Dữ liệu trong tệp luôn bị thay đổi.
  • C. Bộ nhớ RAM có dung lượng lớn hơn tệp.
  • D. Chỉ có thể áp dụng thuật toán tìm kiếm nhị phân trên dữ liệu trong bộ nhớ.

Câu 28: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, trường hợp tốt nhất (best case) xảy ra khi nào?

  • A. Phần tử cần tìm không có trong danh sách.
  • B. Phần tử cần tìm nằm ở vị trí cuối cùng của danh sách.
  • C. Danh sách rỗng.
  • D. Phần tử cần tìm nằm ở vị trí đầu tiên của danh sách.

Câu 29: Bạn đang viết một chương trình đọc dữ liệu cấu trúc từ tệp nhị phân. Chế độ mở tệp nào bạn sẽ sử dụng để đọc dữ liệu này?

  • A. "r"
  • B. "w"
  • C. "rb"
  • D. "a"

Câu 30: Giả sử bạn đã đọc dữ liệu từ tệp vào danh sách `danh_sach_diem`. Bạn muốn tìm tất cả các học sinh có điểm dưới 5.0 để cảnh báo. Bạn sẽ sử dụng phương pháp tìm kiếm nào và cần kiểm tra điều kiện gì?

  • A. Tìm kiếm tuần tự; kiểm tra điểm của từng học sinh có nhỏ hơn 5.0 không.
  • B. Tìm kiếm nhị phân; danh sách điểm phải được sắp xếp tăng dần và tìm vị trí của 5.0.
  • C. Sắp xếp danh sách điểm trước, sau đó lấy các phần tử đầu tiên.
  • D. Chỉ cần đọc tệp mà không cần tìm kiếm.

1 / 30

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

Tags: Bộ đề 02

Câu 1: Một lập trình viên cần đọc toàn bộ nội dung từ tệp văn bản 'du_lieu.txt' để xử lý. Tệp này có thể chứa các ký tự tiếng Việt có dấu. Dòng lệnh Python nào sau đây là phù hợp nhất để mở tệp cho mục đích này?

2 / 30

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

Tags: Bộ đề 02

Câu 2: Xét đoạn chương trình Python sau:
```python
f = open('thongtin.txt', 'w')
f.write('Nguyen Van An')
f.write('Le Thi Bn')
f.close()
```
Nếu sau đó chạy lại đoạn code này, nội dung của tệp 'thongtin.txt' sẽ như thế nào?

3 / 30

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

Tags: Bộ đề 02

Câu 3: Một tệp văn bản 'diemso.txt' có cấu trúc mỗi dòng là 'Tên Điểm' (ví dụ: 'Hoa 8.5'). Đoạn code sau đọc dữ liệu từ tệp này:
```python
f = open('diemso.txt', 'r', encoding='utf-8')
data = f.readlines()
f.close()
for line in data:
parts = line.strip().split()
print(f'Hoc sinh: {parts[0]}, Diem: {parts[1]}')
```
Phương thức `line.strip().split()` có tác dụng gì trong ngữ cảnh này?

4 / 30

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

Tags: Bộ đề 02

Câu 4: Giả sử bạn có danh sách `danh_sach_ten = ['An', 'Binh', 'Mai', 'Tuan']` và bạn muốn tìm xem tên 'Mai' có tồn tại trong danh sách này hay không bằng thuật toán tìm kiếm tuần tự. Đoạn code kiểm tra nào sau đây thể hiện đúng logic tìm kiếm tuần tự?

5 / 30

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

Tags: Bộ đề 02

Câu 5: Thuật toán tìm kiếm nhị phân hoạt động hiệu quả nhất trên loại dữ liệu nào và dựa trên nguyên tắc chính nào?

6 / 30

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

Tags: Bộ đề 02

Câu 6: Bạn đang xây dựng chức năng tra cứu tên học sinh trong một danh sách điểm lớn được lưu trong tệp. Danh sách này có hàng nghìn học sinh và đã được sắp xếp theo tên (bảng chữ cái). Để tối ưu tốc độ tra cứu, bạn nên sử dụng thuật toán tìm kiếm nào?

7 / 30

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

Tags: Bộ đề 02

Câu 7: Giả sử bạn có danh sách số nguyên đã sắp xếp `so_lieu = [10, 25, 30, 45, 50, 65, 70, 85]`. Bạn muốn tìm số 50 bằng thuật toán tìm kiếm nhị phân. Các phần tử nào sẽ được kiểm tra (so sánh với 50) trong quá trình tìm kiếm?

8 / 30

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

Tags: Bộ đề 02

Câu 8: Trong thuật toán tìm kiếm nhị phân, nếu phần tử ở vị trí giữa lớn hơn giá trị cần tìm, thì phạm vi tìm kiếm tiếp theo sẽ là phần nào của danh sách hiện tại?

9 / 30

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

Tags: Bộ đề 02

Câu 9: Bạn cần ghi thông tin về kết quả tìm kiếm (ví dụ: 'Tìm thấy học sinh: Ten, Diem') vào một tệp log 'ketqua.txt'. Bạn muốn mỗi lần ghi sẽ thêm vào cuối tệp mà không xóa các kết quả tìm kiếm trước đó. Lệnh mở tệp nào sau đây là đúng?

10 / 30

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

Tags: Bộ đề 02

Câu 10: Khi sử dụng lệnh `f = open('data.bin', 'rb')`, chế độ 'rb' có ý nghĩa gì?

11 / 30

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

Tags: Bộ đề 02

Câu 11: Bạn đọc một dòng từ tệp bằng `line = f.readline()`. Giả sử dòng đó là 'Du lieu 123n'. Sau khi thực hiện `parts = line.split()`, biến `parts` sẽ chứa giá trị nào?

12 / 30

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

Tags: Bộ đề 02

Câu 12: Trong bài toán thực hành tìm kiếm học sinh theo tên, nếu danh sách học sinh được đọc từ tệp và chưa được sắp xếp, thì thuật toán tìm kiếm nhị phân có thể được áp dụng trực tiếp không? Vì sao?

13 / 30

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

Tags: Bộ đề 02

Câu 13: Bạn đang viết chương trình tra cứu từ điển đơn giản. Dữ liệu từ điển được lưu trong tệp 'tudien.txt', mỗi dòng chứa một từ và nghĩa, cách nhau bởi dấu ': ' (ví dụ: 'apple: quả táo'). Để tìm nghĩa của một từ nhập từ bàn phím, bạn cần đọc từng dòng, tách từ và nghĩa, sau đó so sánh từ nhập với từ trong dòng. Đây là ví dụ của thuật toán tìm kiếm nào?

14 / 30

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

Tags: Bộ đề 02

Câu 14: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách: `ten_hoc_sinh = ['An', 'Binh', 'Hoa']` và `diem_so = [8.0, 7.5, 9.0]`. Người dùng nhập tên 'Hoa'. Bạn tìm thấy 'Hoa' tại chỉ số 2 trong `ten_hoc_sinh`. Làm thế nào để lấy điểm tương ứng của 'Hoa'?

15 / 30

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

Tags: Bộ đề 02

Câu 15: Mục đích chính của việc sử dụng vòng lặp `while True` kết hợp với điều kiện `if keyword == 'end': break` trong chương trình tra cứu là gì?

16 / 30

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

Tags: Bộ đề 02

Câu 16: Khi đóng tệp bằng lệnh `f.close()`, hành động này có ý nghĩa quan trọng nào trong quản lý tài nguyên hệ thống?

17 / 30

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

Tags: Bộ đề 02

Câu 17: Bạn đọc toàn bộ nội dung tệp 'cauhoi.txt' bằng `f.read()`. Kết quả trả về của phương thức `read()` là kiểu dữ liệu nào trong Python?

18 / 30

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

Tags: Bộ đề 02

Câu 18: Giả sử bạn có một danh sách 1000 phần tử đã được sắp xếp. Khi tìm kiếm một phần tử không tồn tại bằng thuật toán tìm kiếm nhị phân, số lần so sánh tối đa (trong trường hợp xấu nhất) sẽ khoảng bao nhiêu?

19 / 30

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

Tags: Bộ đề 02

Câu 19: Bạn cần tạo một tệp mới 'baocao.txt' để ghi kết quả. Nếu tệp này đã tồn tại, chương trình của bạn nên báo lỗi thay vì ghi đè hoặc thêm vào. Chế độ mở tệp nào sau đây phù hợp nhất?

20 / 30

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

Tags: Bộ đề 02

Câu 20: Xét đoạn code đọc tệp sau:
```python
f = open('dulieu.txt', 'r')
line1 = f.readline()
line2 = f.readline()
f.close()
```
Giả sử 'dulieu.txt' có 3 dòng: 'Dong 1nDong 2nDong 3'. Biến `line2` sẽ chứa giá trị gì?

21 / 30

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

Tags: Bộ đề 02

Câu 21: Khi thực hiện tìm kiếm tuần tự trong một danh sách `[5, 2, 8, 1, 9]` để tìm số 8, thứ tự các phần tử được so sánh là gì?

22 / 30

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

Tags: Bộ đề 02

Câu 22: So với tìm kiếm tuần tự, thuật toán tìm kiếm nhị phân có ưu điểm chính nào khi áp dụng trên dữ liệu phù hợp?

23 / 30

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

Tags: Bộ đề 02

Câu 23: Đoạn code Python sau dùng để làm gì?
```python
data = ['Mot 1', 'Hai 2', 'Ba 3']
f = open('ketqua.txt', 'w')
for item in data:
print(item, file=f)
f.close()
```

24 / 30

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

Tags: Bộ đề 02

Câu 24: Khi đọc một tệp văn bản bằng `f.readlines()`, mỗi chuỗi trong danh sách kết quả thường sẽ kết thúc bằng ký tự đặc biệt nào (trừ dòng cuối cùng của tệp có thể không có)?

25 / 30

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

Tags: Bộ đề 02

Câu 25: Giả sử bạn có danh sách điểm thi `diem = [7.0, 8.5, 6.0, 9.0, 7.5]`. Bạn muốn tìm tất cả các học sinh có điểm từ 8.0 trở lên. Bạn duyệt qua danh sách và kiểm tra từng điểm. Đây là một ứng dụng của phương pháp tìm kiếm nào?

26 / 30

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

Tags: Bộ đề 02

Câu 26: Để chương trình tra cứu tên học sinh có thể xử lý được các tên có khoảng trắng (ví dụ: 'Tran Van A'), khi đọc dữ liệu từ tệp 'Tên Điểm', bạn cần điều chỉnh cách tách chuỗi như thế nào sau khi đọc mỗi dòng?

27 / 30

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

Tags: Bộ đề 02

Câu 27: Trong một ứng dụng thực tế, lý do chính khiến chúng ta thường đọc dữ liệu từ tệp vào danh sách (hoặc cấu trúc dữ liệu khác) trong bộ nhớ trước khi thực hiện tìm kiếm, thay vì đọc tệp và tìm kiếm trực tiếp từng lần là gì?

28 / 30

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

Tags: Bộ đề 02

Câu 28: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, trường hợp tốt nhất (best case) xảy ra khi nào?

29 / 30

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

Tags: Bộ đề 02

Câu 29: Bạn đang viết một chương trình đọc dữ liệu cấu trúc từ tệp nhị phân. Chế độ mở tệp nào bạn sẽ sử dụng để đọc dữ liệu này?

30 / 30

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

Tags: Bộ đề 02

Câu 30: Giả sử bạn đã đọc dữ liệu từ tệp vào danh sách `danh_sach_diem`. Bạn muốn tìm tất cả các học sinh có điểm dưới 5.0 để cảnh báo. Bạn sẽ sử dụng phương pháp tìm kiếm nào và cần kiểm tra điều kiện gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 03 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Bạn cần đọc dữ liệu từ một tệp văn bản có tên `hocsinh.txt` chứa danh sách tên học sinh, mỗi tên trên một dòng. Sau khi đọc xong, bạn muốn đảm bảo rằng tài nguyên hệ thống được giải phóng khỏi việc mở tệp. Đoạn code Python nào sau đây thực hiện đúng cả hai thao tác này?

  • A. f = open("hocsinh.txt", "w")
    data = f.readlines()
    f.close()
  • B. f = open("hocsinh.txt", "r")
    data = f.read()
    close(f)
  • C. with open("hocsinh.txt", "r", encoding="utf-8") as f:
    data = f.readlines()
  • D. f = open("hocsinh.txt", "a")
    data = f.read()
    f.end()

Câu 2: Một tệp `diemthi.txt` chứa dữ liệu điểm của học sinh theo định dạng: `Ten hoc sinh Diem`. Ví dụ: `Nguyen Van A 8.5`. Bạn đọc tệp này và muốn lưu tên vào danh sách `ten_hs` và điểm vào danh sách `diem_hs`. Với mỗi dòng đọc được, bạn cần xử lý chuỗi như thế nào để tách tên và điểm một cách chính xác?

  • A. Sử dụng `line.split()` và giả định tên luôn là một từ.
  • B. Sử dụng `line.split(" ")` và lấy phần tử đầu tiên làm tên, phần tử thứ hai làm điểm.
  • C. Sử dụng `line.split()` và lấy phần tử cuối cùng làm tên, phần còn lại làm điểm.
  • D. Sử dụng `line.rsplit(" ", 1)` để tách chuỗi từ phải sang trái chỉ một lần, lấy phần bên trái làm tên và phần bên phải làm điểm.

Câu 3: Bạn có một danh sách `danh_sach_so = [12, 5, 8, 25, 16, 30]`. Bạn thực hiện tìm kiếm tuần tự (sequential search) để tìm giá trị `16`. Thuật toán tìm kiếm tuần tự sẽ thực hiện bao nhiêu phép so sánh (giá trị cần tìm với phần tử trong danh sách) cho đến khi tìm thấy `16`?

  • A. 3
  • B. 5
  • C. 6
  • D. Không thể xác định nếu không biết vị trí của 16.

Câu 4: Thuật toán tìm kiếm nhị phân (binary search) yêu cầu dữ liệu đầu vào phải có một đặc điểm quan trọng. Đặc điểm đó là gì?

  • A. Dữ liệu phải được sắp xếp (theo thứ tự tăng dần hoặc giảm dần).
  • B. Dữ liệu phải là các số nguyên.
  • C. Kích thước danh sách phải là lũy thừa của 2.
  • D. Các phần tử trong danh sách phải là duy nhất (không trùng lặp).

Câu 5: Bạn có danh sách đã sắp xếp `danh_sach_sx = [10, 20, 30, 40, 50, 60, 70, 80, 90]`. Bạn sử dụng tìm kiếm nhị phân để tìm giá trị `60`. Hãy mô tả các bước tìm kiếm, tập trung vào giá trị tại vị trí giữa được xét trong mỗi lần lặp.

  • A. So sánh với 50, sau đó 30, sau đó 40.
  • B. So sánh với 50, sau đó 70, sau đó 60.
  • C. So sánh với 90, sau đó 10, sau đó 60.
  • D. So sánh với 40, sau đó 80, sau đó 60.

Câu 6: So sánh hiệu quả giữa tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có kích thước N rất lớn và đã được sắp xếp. Phát biểu nào sau đây là đúng?

  • A. Tìm kiếm tuần tự luôn nhanh hơn tìm kiếm nhị phân.
  • B. Tìm kiếm nhị phân chỉ hiệu quả hơn khi tìm kiếm phần tử đầu tiên.
  • C. Tìm kiếm nhị phân hiệu quả hơn đáng kể so với tìm kiếm tuần tự.
  • D. Hiệu quả của hai thuật toán là tương đương nhau trên danh sách lớn.

Câu 7: Bạn đang xây dựng một chương trình tra cứu thông tin học sinh từ một tệp dữ liệu. Chương trình cần liên tục hỏi người dùng tên học sinh cần tìm cho đến khi người dùng nhập một từ khóa đặc biệt để kết thúc. Cấu trúc điều khiển nào trong Python phù hợp nhất để thực hiện vòng lặp này?

  • A. Vòng lặp `while True` kết hợp câu lệnh `break`.
  • B. Vòng lặp `for` với số lần lặp xác định trước.
  • C. Sử dụng đệ quy.
  • D. Vòng lặp `if` kết hợp `goto` (không tồn tại trong Python).

Câu 8: Giả sử bạn đã đọc dữ liệu từ tệp `diemthi.txt` (như ở Câu 2) và lưu vào hai danh sách `ten_hs` và `diem_hs`. Để tìm điểm của một học sinh có tên `ten_can_tim`, bạn sử dụng tìm kiếm tuần tự. Đoạn code nào sau đây thể hiện đúng logic tìm kiếm và in kết quả?

  • A. for ten in ten_hs:
    if ten == ten_can_tim:
    print(diem_hs[ten_hs.index(ten)])
  • B. if ten_can_tim in ten_hs:
    index = ten_hs.index(ten_can_tim)
    print(diem_hs[index])
  • C. found = False
    for i in range(len(ten_hs)):
    if ten_hs[i] == ten_can_tim:
    print(f"Diem cua {ten_hs[i]} la {diem_hs[i]}")
    found = True
    break
    if not found:
    print("Khong tim thay hoc sinh.")
  • D. while ten_can_tim in ten_hs:
    index = ten_hs.index(ten_can_tim)
    print(diem_hs[index])

Câu 9: Bạn có một danh sách `so_lieu = [4, 1, 7, 3, 9, 2]` cần tìm kiếm. Danh sách này chưa được sắp xếp. Để tìm một giá trị trong danh sách này, thuật toán tìm kiếm nào là phương pháp trực tiếp có thể áp dụng mà không cần thay đổi cấu trúc dữ liệu ban đầu?

  • A. Tìm kiếm tuần tự (Sequential Search)
  • B. Tìm kiếm nhị phân (Binary Search)
  • C. Cả hai thuật toán đều áp dụng trực tiếp được.
  • D. Không có thuật toán tìm kiếm nào áp dụng được.

Câu 10: Khi sử dụng phương thức `readlines()` để đọc một tệp văn bản trong Python, mỗi phần tử trong danh sách kết quả thường chứa ký tự đặc biệt nào ở cuối, đại diện cho việc xuống dòng trong tệp gốc?

  • A. `t` (tab)
  • B. `r` (carriage return)
  • C. `f` (form feed)
  • D. `n` (newline)

Câu 11: Bạn cần ghi thêm dữ liệu vào cuối tệp `log.txt` mà không làm mất nội dung đã có. Lệnh `open()` với chế độ nào sẽ thực hiện điều này?

  • A. `"r"`
  • B. `"w"`
  • C. `"a"`
  • D. `"x"`

Câu 12: Trong tìm kiếm nhị phân, tại mỗi bước lặp, thuật toán sẽ so sánh giá trị cần tìm với phần tử nào trong danh sách con hiện tại?

  • A. Phần tử đầu tiên.
  • B. Phần tử ở vị trí giữa.
  • C. Phần tử cuối cùng.
  • D. Phần tử ngẫu nhiên.

Câu 13: Bạn đã đọc một tệp và có danh sách các dòng `lines`. Mỗi dòng là một chuỗi có chứa ký tự xuống dòng `n` ở cuối. Để loại bỏ ký tự xuống dòng này khỏi mỗi chuỗi, phương thức xử lý chuỗi nào là phù hợp nhất?

  • A. `line.strip()` hoặc `line.rstrip()`
  • B. `line.replace("n", "")`
  • C. `line.split("n")`
  • D. `line.remove("n")`

Câu 14: Khi tìm kiếm một phần tử trong danh sách đã sắp xếp bằng thuật toán tìm kiếm nhị phân, nếu giá trị tại vị trí giữa lớn hơn giá trị cần tìm, thì bước tiếp theo của thuật toán sẽ là gì?

  • A. Tiếp tục tìm kiếm ở nửa bên phải của danh sách con hiện tại.
  • B. Kết thúc tìm kiếm và thông báo không tìm thấy.
  • C. Tìm kiếm lại từ đầu danh sách.
  • D. Tiếp tục tìm kiếm ở nửa bên trái của danh sách con hiện tại.

Câu 15: Bạn có một tệp `data.txt` và muốn tạo một tệp mới `output.txt` để ghi kết quả xử lý vào đó. Nếu `output.txt` đã tồn tại, bạn muốn nội dung cũ bị xóa đi và ghi nội dung mới từ đầu. Lệnh `open()` với chế độ nào sẽ thực hiện điều này?

  • A. `"r"`
  • B. `"w"`
  • C. `"a"`
  • D. `"x"`

Câu 16: Khi thực hiện tìm kiếm nhị phân trên một danh sách có N phần tử, độ phức tạp thời gian (tức là thời gian thực thi tăng lên như thế nào khi kích thước N tăng) trong trường hợp xấu nhất là bao nhiêu?

  • A. O(log N)
  • B. O(N)
  • C. O(N^2)
  • D. O(1)

Câu 17: Điều gì xảy ra nếu bạn cố gắng sử dụng tìm kiếm nhị phân trên một danh sách không được sắp xếp?

  • A. Thuật toán sẽ vẫn hoạt động nhưng chậm hơn tìm kiếm tuần tự.
  • B. Chương trình sẽ báo lỗi (error).
  • C. Thuật toán sẽ cho kết quả không chính xác hoặc không tìm thấy phần tử ngay cả khi nó tồn tại.
  • D. Thuật toán tự động sắp xếp danh sách trước khi tìm kiếm.

Câu 18: Bạn đọc một tệp văn bản lớn bằng phương thức `read()`. Kết quả trả về sẽ là kiểu dữ liệu gì trong Python?

  • A. Một chuỗi (string) chứa toàn bộ nội dung tệp.
  • B. Một danh sách (list) các dòng.
  • C. Một danh sách (list) các ký tự.
  • D. Một đối tượng file.

Câu 19: Trong bài toán thực hành tìm kiếm học sinh theo tên từ tệp dữ liệu, tại sao việc lưu tên học sinh và điểm tương ứng vào hai danh sách riêng biệt (ví dụ: `ten_hs = [...]`, `diem_hs = [...]`) là một cách tiếp cận phổ biến và tiện lợi?

  • A. Giúp tệp dữ liệu gốc nhỏ hơn.
  • B. Bắt buộc phải làm vậy để sử dụng tìm kiếm nhị phân.
  • C. Khi tìm thấy tên học sinh trong danh sách tên, ta có thể dễ dàng truy cập điểm tương ứng bằng cách sử dụng cùng chỉ số.
  • D. Tiết kiệm bộ nhớ hơn so với lưu trữ trong một danh sách duy nhất.

Câu 20: Bạn cần ghi dữ liệu là `Hello World` vào một tệp mới có tên `chao.txt`. Nếu tệp này đã tồn tại, chương trình không được phép ghi đè mà phải báo lỗi. Lệnh `open()` với chế độ nào sẽ thực hiện yêu cầu này?

  • A. `"r"`
  • B. `"w"`
  • C. `"a"`
  • D. `"x"`

Câu 21: Trong tìm kiếm tuần tự trên một danh sách có N phần tử, trường hợp nào sau đây là trường hợp tốt nhất (best case) về số phép so sánh?

  • A. Phần tử cần tìm là phần tử đầu tiên của danh sách.
  • B. Phần tử cần tìm là phần tử cuối cùng của danh sách.
  • C. Phần tử cần tìm nằm ở vị trí giữa của danh sách.
  • D. Phần tử cần tìm không có trong danh sách.

Câu 22: Khi đọc tệp bằng `open("myfile.txt", "r", encoding="utf-8")`, việc chỉ định `encoding="utf-8"` quan trọng trong trường hợp nào?

  • A. Khi tệp chỉ chứa các ký tự tiếng Anh cơ bản.
  • B. Khi tệp chứa các ký tự đặc biệt hoặc ký tự của ngôn ngữ khác tiếng Anh (ví dụ: tiếng Việt có dấu).
  • C. Khi bạn muốn ghi dữ liệu vào tệp.
  • D. Tham số encoding không quan trọng khi chỉ đọc tệp.

Câu 23: Bạn thực hiện tìm kiếm nhị phân trên danh sách đã sắp xếp `[5, 10, 15, 20, 25, 30, 35]`. Bạn tìm giá trị `22`. Quá trình tìm kiếm sẽ diễn ra như thế nào?

  • A. Tìm thấy 22 ở vị trí 4.
  • B. So sánh với 20, sau đó 30, sau đó 25, và tìm thấy 22.
  • C. So sánh với 15, sau đó 25, sau đó 20, và tìm thấy 22.
  • D. So sánh với 20, sau đó 30, sau đó 25, và kết thúc tìm kiếm vì không tìm thấy 22.

Câu 24: Khi sử dụng lệnh `print(data, file=f)`, `f` là đối tượng tệp đã được mở. Lệnh này có tác dụng gì?

  • A. Ghi nội dung của biến `data` vào tệp được liên kết với đối tượng `f`.
  • B. Hiển thị nội dung của biến `data` trên màn hình.
  • C. Đọc dữ liệu từ tệp được liên kết với đối tượng `f` vào biến `data`.
  • D. Đóng tệp được liên kết với đối tượng `f`.

Câu 25: Giả sử bạn cần đọc một tệp cấu hình `config.ini`. Tệp này chỉ cần đọc một lần khi chương trình khởi động. Chế độ mở tệp nào là phù hợp nhất?

  • A. `"r"`
  • B. `"w"`
  • C. `"a"`
  • D. `"x"`

Câu 26: Bạn đã triển khai thuật toán tìm kiếm tuần tự để tìm một phần tử trong danh sách. Để cải thiện hiệu suất tìm kiếm trên danh sách lớn, bạn quyết định chuyển sang sử dụng tìm kiếm nhị phân. Bước đầu tiên và quan trọng nhất bạn cần thực hiện với danh sách dữ liệu là gì?

  • A. Sao chép danh sách sang một biến mới.
  • B. Kiểm tra xem danh sách có chứa các phần tử trùng lặp không.
  • C. Sắp xếp danh sách.
  • D. Xóa các phần tử không cần thiết khỏi danh sách.

Câu 27: Trong tìm kiếm nhị phân, nếu giá trị tại vị trí giữa nhỏ hơn giá trị cần tìm, thì bước tiếp theo của thuật toán sẽ là gì?

  • A. Tiếp tục tìm kiếm ở nửa bên phải của danh sách con hiện tại.
  • B. Kết thúc tìm kiếm và thông báo không tìm thấy.
  • C. Tìm kiếm lại từ đầu danh sách.
  • D. Tiếp tục tìm kiếm ở nửa bên trái của danh sách con hiện tại.

Câu 28: Bạn muốn viết một chương trình Python để đọc một tệp văn bản, tìm kiếm tất cả các dòng chứa từ khóa "error", và ghi các dòng đó vào một tệp nhật ký mới. Bạn sẽ cần sử dụng kết hợp những thao tác nào?

  • A. Chỉ cần đọc tệp và in ra màn hình.
  • B. Mở tệp gốc để đọc, lặp qua từng dòng, kiểm tra từ khóa, mở tệp nhật ký để ghi, và ghi các dòng phù hợp vào đó.
  • C. Mở tệp gốc để ghi, tìm kiếm từ khóa, sau đó mở tệp nhật ký để đọc.
  • D. Sử dụng tìm kiếm nhị phân trực tiếp trên nội dung tệp.

Câu 29: Cho danh sách `lst = [1, 2, 3, 4, 5]`. Bạn cần tìm chỉ số (index) của giá trị `3` bằng tìm kiếm tuần tự. Chương trình sẽ thực hiện bao nhiêu phép so sánh và trả về chỉ số nào?

  • A. 2 phép so sánh, chỉ số 2.
  • B. 4 phép so sánh, chỉ số 2.
  • C. 3 phép so sánh, chỉ số 2.
  • D. 5 phép so sánh, chỉ số 3.

Câu 30: Trong bài toán thực hành, sau khi tìm kiếm thông tin của một học sinh theo tên, chương trình thường hiển thị kết quả (điểm) hoặc thông báo không tìm thấy. Việc này thuộc bước nào trong quy trình giải quyết bài toán bằng máy tính?

  • A. Phân tích bài toán.
  • B. Thiết kế thuật toán.
  • C. Viết chương trình (Coding).
  • D. Xuất dữ liệu (Output).

1 / 30

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

Tags: Bộ đề 03

Câu 1: Bạn cần đọc dữ liệu từ một tệp văn bản có tên `hocsinh.txt` chứa danh sách tên học sinh, mỗi tên trên một dòng. Sau khi đọc xong, bạn muốn đảm bảo rằng tài nguyên hệ thống được giải phóng khỏi việc mở tệp. Đoạn code Python nào sau đây thực hiện đúng cả hai thao tác này?

2 / 30

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

Tags: Bộ đề 03

Câu 2: Một tệp `diemthi.txt` chứa dữ liệu điểm của học sinh theo định dạng: `Ten hoc sinh Diem`. Ví dụ: `Nguyen Van A 8.5`. Bạn đọc tệp này và muốn lưu tên vào danh sách `ten_hs` và điểm vào danh sách `diem_hs`. Với mỗi dòng đọc được, bạn cần xử lý chuỗi như thế nào để tách tên và điểm một cách chính xác?

3 / 30

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

Tags: Bộ đề 03

Câu 3: Bạn có một danh sách `danh_sach_so = [12, 5, 8, 25, 16, 30]`. Bạn thực hiện tìm kiếm tuần tự (sequential search) để tìm giá trị `16`. Thuật toán tìm kiếm tuần tự sẽ thực hiện bao nhiêu phép so sánh (giá trị cần tìm với phần tử trong danh sách) cho đến khi tìm thấy `16`?

4 / 30

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

Tags: Bộ đề 03

Câu 4: Thuật toán tìm kiếm nhị phân (binary search) yêu cầu dữ liệu đầu vào phải có một đặc điểm quan trọng. Đặc điểm đó là gì?

5 / 30

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

Tags: Bộ đề 03

Câu 5: Bạn có danh sách đã sắp xếp `danh_sach_sx = [10, 20, 30, 40, 50, 60, 70, 80, 90]`. Bạn sử dụng tìm kiếm nhị phân để tìm giá trị `60`. Hãy mô tả các bước tìm kiếm, tập trung vào giá trị tại vị trí giữa được xét trong mỗi lần lặp.

6 / 30

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

Tags: Bộ đề 03

Câu 6: So sánh hiệu quả giữa tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có kích thước N rất lớn và đã được sắp xếp. Phát biểu nào sau đây là đúng?

7 / 30

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

Tags: Bộ đề 03

Câu 7: Bạn đang xây dựng một chương trình tra cứu thông tin học sinh từ một tệp dữ liệu. Chương trình cần liên tục hỏi người dùng tên học sinh cần tìm cho đến khi người dùng nhập một từ khóa đặc biệt để kết thúc. Cấu trúc điều khiển nào trong Python phù hợp nhất để thực hiện vòng lặp này?

8 / 30

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

Tags: Bộ đề 03

Câu 8: Giả sử bạn đã đọc dữ liệu từ tệp `diemthi.txt` (như ở Câu 2) và lưu vào hai danh sách `ten_hs` và `diem_hs`. Để tìm điểm của một học sinh có tên `ten_can_tim`, bạn sử dụng tìm kiếm tuần tự. Đoạn code nào sau đây thể hiện đúng logic tìm kiếm và in kết quả?

9 / 30

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

Tags: Bộ đề 03

Câu 9: Bạn có một danh sách `so_lieu = [4, 1, 7, 3, 9, 2]` cần tìm kiếm. Danh sách này chưa được sắp xếp. Để tìm một giá trị trong danh sách này, thuật toán tìm kiếm nào là phương pháp *trực tiếp* có thể áp dụng mà không cần thay đổi cấu trúc dữ liệu ban đầu?

10 / 30

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

Tags: Bộ đề 03

Câu 10: Khi sử dụng phương thức `readlines()` để đọc một tệp văn bản trong Python, mỗi phần tử trong danh sách kết quả thường chứa ký tự đặc biệt nào ở cuối, đại diện cho việc xuống dòng trong tệp gốc?

11 / 30

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

Tags: Bộ đề 03

Câu 11: Bạn cần ghi thêm dữ liệu vào cuối tệp `log.txt` mà không làm mất nội dung đã có. Lệnh `open()` với chế độ nào sẽ thực hiện điều này?

12 / 30

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

Tags: Bộ đề 03

Câu 12: Trong tìm kiếm nhị phân, tại mỗi bước lặp, thuật toán sẽ so sánh giá trị cần tìm với phần tử nào trong danh sách con hiện tại?

13 / 30

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

Tags: Bộ đề 03

Câu 13: Bạn đã đọc một tệp và có danh sách các dòng `lines`. Mỗi dòng là một chuỗi có chứa ký tự xuống dòng `n` ở cuối. Để loại bỏ ký tự xuống dòng này khỏi mỗi chuỗi, phương thức xử lý chuỗi nào là phù hợp nhất?

14 / 30

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

Tags: Bộ đề 03

Câu 14: Khi tìm kiếm một phần tử trong danh sách đã sắp xếp bằng thuật toán tìm kiếm nhị phân, nếu giá trị tại vị trí giữa *lớn hơn* giá trị cần tìm, thì bước tiếp theo của thuật toán sẽ là gì?

15 / 30

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

Tags: Bộ đề 03

Câu 15: Bạn có một tệp `data.txt` và muốn tạo một tệp mới `output.txt` để ghi kết quả xử lý vào đó. Nếu `output.txt` đã tồn tại, bạn muốn nội dung cũ bị xóa đi và ghi nội dung mới từ đầu. Lệnh `open()` với chế độ nào sẽ thực hiện điều này?

16 / 30

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

Tags: Bộ đề 03

Câu 16: Khi thực hiện tìm kiếm nhị phân trên một danh sách có N phần tử, độ phức tạp thời gian (tức là thời gian thực thi tăng lên như thế nào khi kích thước N tăng) trong trường hợp xấu nhất là bao nhiêu?

17 / 30

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

Tags: Bộ đề 03

Câu 17: Điều gì xảy ra nếu bạn cố gắng sử dụng tìm kiếm nhị phân trên một danh sách *không* được sắp xếp?

18 / 30

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

Tags: Bộ đề 03

Câu 18: Bạn đọc một tệp văn bản lớn bằng phương thức `read()`. Kết quả trả về sẽ là kiểu dữ liệu gì trong Python?

19 / 30

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

Tags: Bộ đề 03

Câu 19: Trong bài toán thực hành tìm kiếm học sinh theo tên từ tệp dữ liệu, tại sao việc lưu tên học sinh và điểm tương ứng vào hai danh sách riêng biệt (ví dụ: `ten_hs = [...]`, `diem_hs = [...]`) là một cách tiếp cận phổ biến và tiện lợi?

20 / 30

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

Tags: Bộ đề 03

Câu 20: Bạn cần ghi dữ liệu là `Hello World` vào một tệp mới có tên `chao.txt`. Nếu tệp này đã tồn tại, chương trình không được phép ghi đè mà phải báo lỗi. Lệnh `open()` với chế độ nào sẽ thực hiện yêu cầu này?

21 / 30

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

Tags: Bộ đề 03

Câu 21: Trong tìm kiếm tuần tự trên một danh sách có N phần tử, trường hợp nào sau đây là trường hợp *tốt nhất* (best case) về số phép so sánh?

22 / 30

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

Tags: Bộ đề 03

Câu 22: Khi đọc tệp bằng `open('myfile.txt', 'r', encoding='utf-8')`, việc chỉ định `encoding='utf-8'` quan trọng trong trường hợp nào?

23 / 30

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

Tags: Bộ đề 03

Câu 23: Bạn thực hiện tìm kiếm nhị phân trên danh sách đã sắp xếp `[5, 10, 15, 20, 25, 30, 35]`. Bạn tìm giá trị `22`. Quá trình tìm kiếm sẽ diễn ra như thế nào?

24 / 30

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

Tags: Bộ đề 03

Câu 24: Khi sử dụng lệnh `print(data, file=f)`, `f` là đối tượng tệp đã được mở. Lệnh này có tác dụng gì?

25 / 30

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

Tags: Bộ đề 03

Câu 25: Giả sử bạn cần đọc một tệp cấu hình `config.ini`. Tệp này chỉ cần đọc một lần khi chương trình khởi động. Chế độ mở tệp nào là phù hợp nhất?

26 / 30

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

Tags: Bộ đề 03

Câu 26: Bạn đã triển khai thuật toán tìm kiếm tuần tự để tìm một phần tử trong danh sách. Để cải thiện hiệu suất tìm kiếm trên danh sách lớn, bạn quyết định chuyển sang sử dụng tìm kiếm nhị phân. Bước đầu tiên và quan trọng nhất bạn cần thực hiện với danh sách dữ liệu là gì?

27 / 30

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

Tags: Bộ đề 03

Câu 27: Trong tìm kiếm nhị phân, nếu giá trị tại vị trí giữa *nhỏ hơn* giá trị cần tìm, thì bước tiếp theo của thuật toán sẽ là gì?

28 / 30

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

Tags: Bộ đề 03

Câu 28: Bạn muốn viết một chương trình Python để đọc một tệp văn bản, tìm kiếm tất cả các dòng chứa từ khóa 'error', và ghi các dòng đó vào một tệp nhật ký mới. Bạn sẽ cần sử dụng kết hợp những thao tác nào?

29 / 30

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

Tags: Bộ đề 03

Câu 29: Cho danh sách `lst = [1, 2, 3, 4, 5]`. Bạn cần tìm chỉ số (index) của giá trị `3` bằng tìm kiếm tuần tự. Chương trình sẽ thực hiện bao nhiêu phép so sánh và trả về chỉ số nào?

30 / 30

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

Tags: Bộ đề 03

Câu 30: Trong bài toán thực hành, sau khi tìm kiếm thông tin của một học sinh theo tên, chương trình thường hiển thị kết quả (điểm) hoặc thông báo không tìm thấy. Việc này thuộc bước nào trong quy trình giải quyết bài toán bằng máy tính?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Bạn cần đọc thông tin về điểm của học sinh từ một tệp văn bản có tên `diemthi.txt`. Mỗi dòng của tệp chứa tên học sinh và điểm của họ, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A, 8.5`). Để mở tệp này chỉ với mục đích đọc trong Python, bạn sử dụng lệnh nào sau đây?

  • A. f = open("diemthi.txt", "w")
  • B. f = open("diemthi.txt", "a")
  • C. f = open("diemthi.txt", "r")
  • D. f = open("diemthi.txt", "x")

Câu 2: Sau khi mở tệp `diemthi.txt` thành công bằng lệnh `f = open("diemthi.txt", "r")`, bạn muốn đọc toàn bộ nội dung của tệp, mỗi dòng là một phần tử trong một danh sách. Phương thức nào của đối tượng tệp `f` sẽ thực hiện điều này?

  • A. f.read()
  • B. f.readlines()
  • C. f.readline()
  • D. f.readall()

Câu 3: Bạn đã đọc một dòng từ tệp `diemthi.txt` (có định dạng `TenHS, DiemHS`) vào một biến chuỗi `line`. Để tách chuỗi này thành hai phần: tên học sinh và điểm số, bạn nên sử dụng phương thức xử lý chuỗi nào của Python?

  • A. line.split(",")
  • B. line.replace(",", " ")
  • C. line.strip()
  • D. line.join(",")

Câu 4: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi dòng thường kết thúc bằng ký tự xuống dòng ("n"). Để loại bỏ ký tự xuống dòng và các khoảng trắng thừa ở đầu/cuối mỗi phần tử trong danh sách sau khi tách chuỗi, bạn nên sử dụng phương thức xử lý chuỗi nào?

  • A. split()
  • B. replace("n", "")
  • C. join()
  • D. strip()

Câu 5: Sau khi hoàn thành việc đọc hoặc ghi dữ liệu vào tệp, việc gọi phương thức `close()` trên đối tượng tệp là cần thiết vì lý do chính nào?

  • A. Giải phóng tài nguyên hệ thống và đảm bảo dữ liệu được ghi hoàn tất.
  • B. Xóa nội dung hiện tại của tệp.
  • C. Mở lại tệp ở chế độ mặc định.
  • D. Đánh dấu tệp là chỉ đọc.

Câu 6: Bạn có một danh sách tên học sinh `ten_hs = ["An", "Binh", "Hoa", "Minh", "Viet"]` và một danh sách điểm tương ứng `diem_hs = [8.0, 7.5, 9.0, 8.5, 7.0]`. Bạn muốn tìm điểm của học sinh tên "Hoa" bằng thuật toán tìm kiếm tuần tự. Sau bao nhiêu lần so sánh (tên cần tìm với phần tử trong danh sách) thì bạn tìm thấy kết quả?

  • A. 1
  • B. 2
  • C. 3
  • D. 5

Câu 7: Thuật toán tìm kiếm nhị phân hoạt động hiệu quả nhất khi áp dụng cho loại cấu trúc dữ liệu nào?

  • A. Danh sách (hoặc mảng) đã được sắp xếp.
  • B. Danh sách (hoặc mảng) chưa được sắp xếp.
  • C. Cây nhị phân tìm kiếm.
  • D. Đồ thị.

Câu 8: Bạn có một danh sách số nguyên đã được sắp xếp tăng dần: `lst = [10, 25, 30, 45, 50, 65, 70, 85]`. Bạn cần tìm số 65 bằng thuật toán tìm kiếm nhị phân. Vị trí (chỉ số) của phần tử trung tâm được kiểm tra trong bước đầu tiên là bao nhiêu? (Giả sử chỉ số bắt đầu từ 0 và phần tử trung tâm được lấy bằng cách làm tròn xuống).

  • A. 2
  • B. 3
  • C. 4
  • D. 5

Câu 9: Tiếp tục với danh sách `lst = [10, 25, 30, 45, 50, 65, 70, 85]` và tìm số 65 bằng tìm kiếm nhị phân. Ở bước đầu tiên, bạn so sánh 65 với phần tử tại chỉ số 3 (là 45). Vì 65 > 45, bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách?

  • A. Nửa bên phải (các phần tử có chỉ số lớn hơn chỉ số trung tâm).
  • B. Nửa bên trái (các phần tử có chỉ số nhỏ hơn chỉ số trung tâm).
  • C. Toàn bộ danh sách ban đầu.
  • D. Không thể xác định mà không biết giá trị cuối cùng.

Câu 10: So sánh thuật toán tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có N phần tử. Phát biểu nào sau đây là ĐÚNG về hiệu quả tìm kiếm?

  • A. Tìm kiếm tuần tự luôn nhanh hơn tìm kiếm nhị phân.
  • B. Tìm kiếm nhị phân có thể áp dụng cho cả danh sách đã sắp xếp và chưa sắp xếp.
  • C. Trong trường hợp xấu nhất, tìm kiếm tuần tự và nhị phân có cùng số lần so sánh.
  • D. Trên danh sách đã sắp xếp có kích thước lớn, tìm kiếm nhị phân thường nhanh hơn đáng kể so với tìm kiếm tuần tự.

Câu 11: Giả sử bạn đã đọc dữ liệu từ tệp `diemthi.txt` vào hai danh sách: `ten_hs` và `diem_hs`. Bạn cần viết mã Python để cho phép người dùng nhập tên học sinh và hiển thị điểm của họ. Nếu không tìm thấy tên trong danh sách, chương trình sẽ thông báo. Cấu trúc điều khiển nào là phù hợp nhất để lặp qua danh sách tên học sinh và kiểm tra xem tên nhập vào có tồn tại không?

  • A. Vòng lặp `for` duyệt qua từng phần tử trong danh sách `ten_hs`.
  • B. Sử dụng trực tiếp thuật toán tìm kiếm nhị phân trên danh sách `ten_hs`.
  • C. Sử dụng câu lệnh `if/else` duy nhất mà không cần lặp.
  • D. Chỉ cần in toàn bộ danh sách `diem_hs`.

Câu 12: Khi đọc một số từ tệp văn bản, ví dụ điểm số "8.5", dữ liệu này ban đầu được đọc dưới dạng chuỗi. Để thực hiện các phép tính toán với điểm số này, bạn cần chuyển đổi nó sang kiểu dữ liệu số (ví dụ: số thực). Hàm nào trong Python dùng để chuyển đổi một chuỗi biểu diễn số thực sang kiểu `float`?

  • A. int()
  • B. str()
  • C. float()
  • D. list()

Câu 13: Bạn đang thực hiện tìm kiếm tuần tự trên danh sách `ten_hs`. Khi tìm thấy tên học sinh cần tìm tại chỉ số `i`, làm thế nào để truy cập điểm số tương ứng của học sinh đó từ danh sách `diem_hs`?

  • A. diem_hs[0]
  • B. diem_hs[i]
  • C. diem_hs[-1]
  • D. diem_hs.find(ten_hs[i])

Câu 14: Trong bài toán tìm kiếm nhị phân, nếu danh sách không được sắp xếp, điều gì có thể xảy ra khi bạn áp dụng thuật toán này?

  • A. Thuật toán vẫn hoạt động bình thường nhưng chậm hơn.
  • B. Thuật toán sẽ gây ra lỗi chương trình ngay lập tức.
  • C. Thuật toán sẽ luôn tìm thấy phần tử, dù nó có tồn tại hay không.
  • D. Thuật toán có thể đưa ra kết quả sai (không tìm thấy phần tử dù nó tồn tại hoặc ngược lại).

Câu 15: Bạn cần ghi thông tin mới của một học sinh vào cuối tệp `diemthi.txt` mà không làm mất dữ liệu cũ. Lệnh mở tệp nào sau đây là đúng?

  • A. f = open("diemthi.txt", "r")
  • B. f = open("diemthi.txt", "w")
  • C. f = open("diemthi.txt", "a")
  • D. f = open("diemthi.txt", "x")

Câu 16: Khi sử dụng chế độ mở tệp "w" (write), nếu tệp đã tồn tại, điều gì sẽ xảy ra với nội dung cũ của tệp?

  • A. Nội dung cũ của tệp sẽ bị xóa sạch.
  • B. Dữ liệu mới sẽ được ghi thêm vào cuối tệp.
  • C. Chương trình sẽ báo lỗi vì tệp đã tồn tại.
  • D. Dữ liệu mới sẽ ghi đè lên dữ liệu cũ từ đầu tệp nhưng không xóa phần còn lại.

Câu 17: Trong Python, để ghi một chuỗi `data_string` vào một tệp đã được mở với đối tượng tệp là `f`, phương thức nào sau đây được sử dụng?

  • A. f.read(data_string)
  • B. f.write(data_string)
  • C. f.append(data_string)
  • D. f.print(data_string)

Câu 18: Bạn cần đọc một tệp cấu hình chỉ có một dòng duy nhất chứa một số nguyên. Sau khi mở tệp bằng `f = open("config.txt", "r")`, phương thức đọc tệp nào là hiệu quả nhất để chỉ lấy đúng dòng đầu tiên đó?

  • A. f.readline()
  • B. f.read()
  • C. f.readlines()
  • D. Sử dụng vòng lặp for để duyệt qua tệp.

Câu 19: Đoạn mã sau đọc dữ liệu từ tệp `numbers.txt` (mỗi dòng một số nguyên):
`f = open("numbers.txt", "r")`
`data = f.readlines()`
`f.close()`
`numbers = [int(line.strip()) for line in data]`
Giả sử `numbers.txt` chứa:
`15`
`8`
`22`
`5`
Giá trị của biến `numbers` sau khi thực thi đoạn mã là gì?

  • A. ["15n", "8n", "22n", "5n"]
  • B. ["15", "8", "22", "5"]
  • C. [15.0, 8.0, 22.0, 5.0]
  • D. [15, 8, 22, 5]

Câu 20: Bạn đang triển khai thuật toán tìm kiếm nhị phân để tìm một giá trị `target` trong danh sách đã sắp xếp `sorted_list`. Biến `low` và `high` lần lượt là chỉ số đầu và cuối của phạm vi tìm kiếm hiện tại. Vị trí trung tâm `mid` thường được tính như thế nào?

  • A. mid = (low + high) // 2
  • B. mid = (low + high) / 2
  • C. mid = high - low // 2
  • D. mid = low + high / 2

Câu 21: Trong thuật toán tìm kiếm nhị phân, nếu phần tử tại vị trí trung tâm `mid` bằng với giá trị cần tìm `target`, bạn sẽ thực hiện hành động gì tiếp theo?

  • A. Tiếp tục tìm kiếm ở nửa bên trái.
  • B. Tiếp tục tìm kiếm ở nửa bên phải.
  • C. Trả về vị trí `mid` và kết thúc thuật toán.
  • D. Báo lỗi vì tìm thấy phần tử quá sớm.

Câu 22: Khi thực hiện tìm kiếm nhị phân trên một danh sách đã sắp xếp, nếu giá trị cần tìm `target` nhỏ hơn phần tử tại vị trí trung tâm `mid`, phạm vi tìm kiếm mới sẽ được điều chỉnh như thế nào?

  • A. low = mid + 1
  • B. high = mid + 1
  • C. low = mid
  • D. high = mid - 1

Câu 23: Khi nào thì thuật toán tìm kiếm nhị phân kết thúc mà không tìm thấy giá trị cần tìm?

  • A. Khi giá trị cần tìm nhỏ hơn phần tử đầu tiên.
  • B. Khi chỉ số `low` lớn hơn chỉ số `high`.
  • C. Khi chỉ số `low` bằng chỉ số `high`.
  • D. Khi số lần lặp vượt quá một ngưỡng nhất định.

Câu 24: Bạn có một tệp `log.txt` rất lớn, mỗi dòng là một bản ghi. Bạn cần tìm xem một chuỗi ký tự cụ thể có xuất hiện trong bất kỳ dòng nào của tệp hay không. Cách tiếp cận nào sau đây là phù hợp và hiệu quả để tránh đọc toàn bộ tệp vào bộ nhớ cùng lúc?

  • A. Đọc toàn bộ nội dung tệp vào một chuỗi lớn rồi tìm kiếm trên chuỗi đó.
  • B. Đọc toàn bộ tệp vào một danh sách các dòng bằng `readlines()` rồi tìm kiếm trên danh sách.
  • C. Mở tệp và duyệt qua từng dòng một (ví dụ, dùng `for line in f:`) để kiểm tra chuỗi cần tìm.
  • D. Chỉ đọc dòng đầu tiên và dòng cuối cùng của tệp để kiểm tra.

Câu 25: Đoạn mã Python sau thực hiện chức năng gì?
`def tim_tuan_tu(lst, target):`
` for i in range(len(lst)):`
` if lst[i] == target:`
` return i`
` return -1`

  • A. Tìm kiếm tuần tự một phần tử trong danh sách và trả về chỉ số của nó hoặc -1 nếu không tìm thấy.
  • B. Tìm kiếm nhị phân một phần tử trong danh sách và trả về chỉ số của nó hoặc -1 nếu không tìm thấy.
  • C. Sắp xếp danh sách theo thứ tự tăng dần.
  • D. Đếm số lần xuất hiện của một phần tử trong danh sách.

Câu 26: Để sử dụng hiệu quả thuật toán tìm kiếm nhị phân trong chương trình, bước chuẩn bị dữ liệu nào là BẮT BUỘC?

  • A. Chuyển đổi tất cả dữ liệu sang kiểu chuỗi.
  • B. Sắp xếp danh sách dữ liệu theo thứ tự tăng dần hoặc giảm dần.
  • C. Loại bỏ tất cả các phần tử trùng lặp.
  • D. Chia danh sách thành nhiều danh sách con nhỏ hơn.

Câu 27: Giả sử tệp `students.txt` chứa dữ liệu như sau:
`An, 8.5`
`Binh, 7.0`
`Hoa, 9.0`
Bạn đọc tệp này và lưu vào hai danh sách `names = ["An", "Binh", "Hoa"]` và `scores = ["8.5", "7.0", "9.0"]`. Để tìm điểm của "Binh", bạn thực hiện tìm kiếm tuần tự trong danh sách `names`. Tên "Binh" được tìm thấy tại chỉ số nào?

  • A. 0
  • B. 1
  • C. 2
  • D. -1

Câu 28: Sau khi tìm thấy "Binh" tại chỉ số 1 trong danh sách `names` (ở Câu 27), điểm số tương ứng của "Binh" trong danh sách `scores` là gì (dưới dạng chuỗi)?

  • A. "8.5"
  • B. "7.0"
  • C. "9.0"
  • D. Không tìm thấy

Câu 29: Trong một chương trình tra cứu thông tin học sinh từ tệp, người dùng nhập tên cần tìm. Nếu tên đó không tồn tại trong danh sách đã đọc từ tệp, bạn nên xử lý như thế nào để thông báo cho người dùng?

  • A. Hiển thị thông báo cho biết không tìm thấy học sinh có tên đó.
  • B. Tự động thêm tên học sinh đó vào danh sách và yêu cầu nhập điểm.
  • C. Thoát chương trình ngay lập tức.
  • D. In ra toàn bộ danh sách học sinh.

Câu 30: Bạn có một danh sách lớn gồm 1 triệu số nguyên đã được sắp xếp. Bạn cần tìm xem một số cụ thể có tồn tại trong danh sách này hay không. Lựa chọn thuật toán tìm kiếm nào sau đây sẽ cho hiệu quả (tốc độ) tốt nhất trong trường hợp này?

  • A. Tìm kiếm tuần tự (Sequential Search).
  • B. Tìm kiếm nhị phân (Binary Search).
  • C. Cả hai thuật toán đều có hiệu quả tương đương.
  • D. Không có đủ thông tin để kết luận.

1 / 30

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

Tags: Bộ đề 04

Câu 1: Bạn cần đọc thông tin về điểm của học sinh từ một tệp văn bản có tên `diemthi.txt`. Mỗi dòng của tệp chứa tên học sinh và điểm của họ, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A, 8.5`). Để mở tệp này chỉ với mục đích đọc trong Python, bạn sử dụng lệnh nào sau đây?

2 / 30

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

Tags: Bộ đề 04

Câu 2: Sau khi mở tệp `diemthi.txt` thành công bằng lệnh `f = open('diemthi.txt', 'r')`, bạn muốn đọc toàn bộ nội dung của tệp, mỗi dòng là một phần tử trong một danh sách. Phương thức nào của đối tượng tệp `f` sẽ thực hiện điều này?

3 / 30

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

Tags: Bộ đề 04

Câu 3: Bạn đã đọc một dòng từ tệp `diemthi.txt` (có định dạng `TenHS, DiemHS`) vào một biến chuỗi `line`. Để tách chuỗi này thành hai phần: tên học sinh và điểm số, bạn nên sử dụng phương thức xử lý chuỗi nào của Python?

4 / 30

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

Tags: Bộ đề 04

Câu 4: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi dòng thường kết thúc bằng ký tự xuống dòng ('n'). Để loại bỏ ký tự xuống dòng và các khoảng trắng thừa ở đầu/cuối mỗi phần tử trong danh sách sau khi tách chuỗi, bạn nên sử dụng phương thức xử lý chuỗi nào?

5 / 30

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

Tags: Bộ đề 04

Câu 5: Sau khi hoàn thành việc đọc hoặc ghi dữ liệu vào tệp, việc gọi phương thức `close()` trên đối tượng tệp là cần thiết vì lý do chính nào?

6 / 30

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

Tags: Bộ đề 04

Câu 6: Bạn có một danh sách tên học sinh `ten_hs = ['An', 'Binh', 'Hoa', 'Minh', 'Viet']` và một danh sách điểm tương ứng `diem_hs = [8.0, 7.5, 9.0, 8.5, 7.0]`. Bạn muốn tìm điểm của học sinh tên 'Hoa' bằng thuật toán tìm kiếm tuần tự. Sau bao nhiêu lần so sánh (tên cần tìm với phần tử trong danh sách) thì bạn tìm thấy kết quả?

7 / 30

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

Tags: Bộ đề 04

Câu 7: Thuật toán tìm kiếm nhị phân hoạt động hiệu quả nhất khi áp dụng cho loại cấu trúc dữ liệu nào?

8 / 30

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

Tags: Bộ đề 04

Câu 8: Bạn có một danh sách số nguyên đã được sắp xếp tăng dần: `lst = [10, 25, 30, 45, 50, 65, 70, 85]`. Bạn cần tìm số 65 bằng thuật toán tìm kiếm nhị phân. Vị trí (chỉ số) của phần tử trung tâm được kiểm tra trong bước đầu tiên là bao nhiêu? (Giả sử chỉ số bắt đầu từ 0 và phần tử trung tâm được lấy bằng cách làm tròn xuống).

9 / 30

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

Tags: Bộ đề 04

Câu 9: Tiếp tục với danh sách `lst = [10, 25, 30, 45, 50, 65, 70, 85]` và tìm số 65 bằng tìm kiếm nhị phân. Ở bước đầu tiên, bạn so sánh 65 với phần tử tại chỉ số 3 (là 45). Vì 65 > 45, bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách?

10 / 30

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

Tags: Bộ đề 04

Câu 10: So sánh thuật toán tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có N phần tử. Phát biểu nào sau đây là ĐÚNG về hiệu quả tìm kiếm?

11 / 30

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

Tags: Bộ đề 04

Câu 11: Giả sử bạn đã đọc dữ liệu từ tệp `diemthi.txt` vào hai danh sách: `ten_hs` và `diem_hs`. Bạn cần viết mã Python để cho phép người dùng nhập tên học sinh và hiển thị điểm của họ. Nếu không tìm thấy tên trong danh sách, chương trình sẽ thông báo. Cấu trúc điều khiển nào là phù hợp nhất để lặp qua danh sách tên học sinh và kiểm tra xem tên nhập vào có tồn tại không?

12 / 30

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

Tags: Bộ đề 04

Câu 12: Khi đọc một số từ tệp văn bản, ví dụ điểm số '8.5', dữ liệu này ban đầu được đọc dưới dạng chuỗi. Để thực hiện các phép tính toán với điểm số này, bạn cần chuyển đổi nó sang kiểu dữ liệu số (ví dụ: số thực). Hàm nào trong Python dùng để chuyển đổi một chuỗi biểu diễn số thực sang kiểu `float`?

13 / 30

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

Tags: Bộ đề 04

Câu 13: Bạn đang thực hiện tìm kiếm tuần tự trên danh sách `ten_hs`. Khi tìm thấy tên học sinh cần tìm tại chỉ số `i`, làm thế nào để truy cập điểm số tương ứng của học sinh đó từ danh sách `diem_hs`?

14 / 30

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

Tags: Bộ đề 04

Câu 14: Trong bài toán tìm kiếm nhị phân, nếu danh sách không được sắp xếp, điều gì có thể xảy ra khi bạn áp dụng thuật toán này?

15 / 30

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

Tags: Bộ đề 04

Câu 15: Bạn cần ghi thông tin mới của một học sinh vào cuối tệp `diemthi.txt` mà không làm mất dữ liệu cũ. Lệnh mở tệp nào sau đây là đúng?

16 / 30

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

Tags: Bộ đề 04

Câu 16: Khi sử dụng chế độ mở tệp 'w' (write), nếu tệp đã tồn tại, điều gì sẽ xảy ra với nội dung cũ của tệp?

17 / 30

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

Tags: Bộ đề 04

Câu 17: Trong Python, để ghi một chuỗi `data_string` vào một tệp đã được mở với đối tượng tệp là `f`, phương thức nào sau đây được sử dụng?

18 / 30

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

Tags: Bộ đề 04

Câu 18: Bạn cần đọc một tệp cấu hình chỉ có một dòng duy nhất chứa một số nguyên. Sau khi mở tệp bằng `f = open('config.txt', 'r')`, phương thức đọc tệp nào là hiệu quả nhất để chỉ lấy đúng dòng đầu tiên đó?

19 / 30

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

Tags: Bộ đề 04

Câu 19: Đoạn mã sau đọc dữ liệu từ tệp `numbers.txt` (mỗi dòng một số nguyên):
`f = open('numbers.txt', 'r')`
`data = f.readlines()`
`f.close()`
`numbers = [int(line.strip()) for line in data]`
Giả sử `numbers.txt` chứa:
`15`
`8`
`22`
`5`
Giá trị của biến `numbers` sau khi thực thi đoạn mã là gì?

20 / 30

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

Tags: Bộ đề 04

Câu 20: Bạn đang triển khai thuật toán tìm kiếm nhị phân để tìm một giá trị `target` trong danh sách đã sắp xếp `sorted_list`. Biến `low` và `high` lần lượt là chỉ số đầu và cuối của phạm vi tìm kiếm hiện tại. Vị trí trung tâm `mid` thường được tính như thế nào?

21 / 30

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

Tags: Bộ đề 04

Câu 21: Trong thuật toán tìm kiếm nhị phân, nếu phần tử tại vị trí trung tâm `mid` bằng với giá trị cần tìm `target`, bạn sẽ thực hiện hành động gì tiếp theo?

22 / 30

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

Tags: Bộ đề 04

Câu 22: Khi thực hiện tìm kiếm nhị phân trên một danh sách đã sắp xếp, nếu giá trị cần tìm `target` nhỏ hơn phần tử tại vị trí trung tâm `mid`, phạm vi tìm kiếm mới sẽ được điều chỉnh như thế nào?

23 / 30

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

Tags: Bộ đề 04

Câu 23: Khi nào thì thuật toán tìm kiếm nhị phân kết thúc mà không tìm thấy giá trị cần tìm?

24 / 30

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

Tags: Bộ đề 04

Câu 24: Bạn có một tệp `log.txt` rất lớn, mỗi dòng là một bản ghi. Bạn cần tìm xem một chuỗi ký tự cụ thể có xuất hiện trong bất kỳ dòng nào của tệp hay không. Cách tiếp cận nào sau đây là phù hợp và hiệu quả để tránh đọc toàn bộ tệp vào bộ nhớ cùng lúc?

25 / 30

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

Tags: Bộ đề 04

Câu 25: Đoạn mã Python sau thực hiện chức năng gì?
`def tim_tuan_tu(lst, target):`
` for i in range(len(lst)):`
` if lst[i] == target:`
` return i`
` return -1`

26 / 30

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

Tags: Bộ đề 04

Câu 26: Để sử dụng hiệu quả thuật toán tìm kiếm nhị phân trong chương trình, bước chuẩn bị dữ liệu nào là BẮT BUỘC?

27 / 30

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

Tags: Bộ đề 04

Câu 27: Giả sử tệp `students.txt` chứa dữ liệu như sau:
`An, 8.5`
`Binh, 7.0`
`Hoa, 9.0`
Bạn đọc tệp này và lưu vào hai danh sách `names = ['An', 'Binh', 'Hoa']` và `scores = ['8.5', '7.0', '9.0']`. Để tìm điểm của 'Binh', bạn thực hiện tìm kiếm tuần tự trong danh sách `names`. Tên 'Binh' được tìm thấy tại chỉ số nào?

28 / 30

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

Tags: Bộ đề 04

Câu 28: Sau khi tìm thấy 'Binh' tại chỉ số 1 trong danh sách `names` (ở Câu 27), điểm số tương ứng của 'Binh' trong danh sách `scores` là gì (dưới dạng chuỗi)?

29 / 30

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

Tags: Bộ đề 04

Câu 29: Trong một chương trình tra cứu thông tin học sinh từ tệp, người dùng nhập tên cần tìm. Nếu tên đó không tồn tại trong danh sách đã đọc từ tệp, bạn nên xử lý như thế nào để thông báo cho người dùng?

30 / 30

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

Tags: Bộ đề 04

Câu 30: Bạn có một danh sách lớn gồm 1 triệu số nguyên đã được sắp xếp. Bạn cần tìm xem một số cụ thể có tồn tại trong danh sách này hay không. Lựa chọn thuật toán tìm kiếm nào sau đây sẽ cho hiệu quả (tốc độ) tốt nhất trong trường hợp này?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 05 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có một tệp `danhsach.txt` chứa tên học sinh trên mỗi dòng. Bạn muốn đọc toàn bộ nội dung tệp này vào một danh sách các chuỗi, mỗi chuỗi là một dòng. Đoạn mã Python nào sau đây thực hiện đúng yêu cầu đó?

  • A. ```python
    f = open("danhsach.txt", "w")
    lines = f.read()
    f.close()
    ```
  • B. ```python
    f = open("danhsach.txt", "r")
    lines = f.readline()
    f.close()
    ```
  • C. ```python
    f = open("danhsach.txt", "r", encoding="utf-8")
    lines = f.readlines()
    f.close()
    ```
  • D. ```python
    f = open("danhsach.txt", "a")
    lines = f.read()
    f.close()
    ```

Câu 2: Trong Python, khi mở một tệp bằng lệnh `open("du_lieu.txt", "r")`, nếu tệp `du_lieu.txt` không tồn tại, điều gì sẽ xảy ra?

  • A. Tệp `du_lieu.txt` sẽ được tạo mới.
  • B. Chương trình sẽ ghi thêm dữ liệu vào tệp.
  • C. Nội dung của tệp `du_lieu.txt` (nếu có) sẽ bị xóa.
  • D. Python sẽ báo lỗi `FileNotFoundError`.

Câu 3: Bạn có một danh sách tên học sinh `ten_hs = ["An", "Binh", "Hoa", "Minh", "Thu"]` và một danh sách điểm tương ứng `diem_hs = [8, 7, 9, 6, 10]`. Để tìm điểm của học sinh tên "Hoa" bằng phương pháp tìm kiếm tuần tự, bạn sẽ thực hiện các bước nào?

  • A. Duyệt qua danh sách `ten_hs` từ đầu, so sánh từng tên với "Hoa". Khi tìm thấy "Hoa" ở vị trí `i`, lấy điểm tại vị trí `i` trong danh sách `diem_hs`.
  • B. Duyệt qua danh sách `diem_hs` từ đầu, so sánh từng điểm với tên "Hoa".
  • C. Vì danh sách đã sắp xếp, áp dụng tìm kiếm nhị phân để tìm "Hoa".
  • D. So sánh "Hoa" với phần tử ở giữa danh sách `ten_hs`.

Câu 4: Phương thức `split()` khi áp dụng cho một chuỗi (ví dụ: `line.split()`) trong Python có tác dụng gì? (Giả sử không có đối số được truyền vào `split()`)

  • A. Xóa các ký tự trắng thừa ở đầu và cuối chuỗi.
  • B. Tách chuỗi thành một danh sách các chuỗi con, sử dụng khoảng trắng (bao gồm cả tab, xuống dòng) làm dấu phân cách.
  • C. Nối chuỗi hiện tại với một chuỗi khác.
  • D. Chuyển đổi tất cả các ký tự trong chuỗi thành chữ hoa.

Câu 5: Thuật toán tìm kiếm nào yêu cầu dữ liệu đầu vào phải được sắp xếp trước khi thực hiện tìm kiếm để đạt hiệu quả tối ưu?

  • A. Tìm kiếm tuần tự (Sequential Search)
  • B. Tìm kiếm tuyến tính (Linear Search) - Lưu ý: Tên khác của Tìm kiếm tuần tự
  • C. Tìm kiếm nhị phân (Binary Search)
  • D. Tất cả các thuật toán tìm kiếm.

Câu 6: Giả sử bạn cần tìm kiếm một từ khóa trong một tệp văn bản rất lớn, không biết trước tệp có được sắp xếp theo từ vựng hay không. Thuật toán tìm kiếm nào là lựa chọn phù hợp nhất trong trường hợp này?

  • A. Tìm kiếm tuần tự, vì nó không yêu cầu dữ liệu phải sắp xếp.
  • B. Tìm kiếm nhị phân, vì nó luôn nhanh hơn.
  • C. Chỉ có thể tìm kiếm nếu tệp được sắp xếp.
  • D. Sử dụng phương pháp băm (hashing).

Câu 7: Khi thực hiện tìm kiếm nhị phân trên một danh sách đã sắp xếp `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]`, bạn đang tìm giá trị 23. Bước so sánh đầu tiên sẽ diễn ra với phần tử nào?

  • A. 2 (phần tử đầu tiên)
  • B. 16 (phần tử ở giữa)
  • C. 91 (phần tử cuối cùng)
  • D. 8 (phần tử thứ ba)

Câu 8: Vẫn với danh sách `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]` và tìm giá trị 23. Sau bước so sánh đầu tiên (với 16), bạn nhận thấy 23 > 16. Khoảng tìm kiếm tiếp theo sẽ là phần nào của danh sách ban đầu?

  • A. `[2, 5, 8, 12, 16]`
  • B. `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]` (toàn bộ danh sách)
  • C. `[23, 38, 56, 72, 91]`
  • D. `[2, 5, 8, 12]`

Câu 9: Khi sử dụng lệnh `print(..., file=f)` trong Python, mục đích chính của tham số `file=f` là gì?

  • A. Chuyển hướng đầu ra của lệnh `print` từ màn hình console sang đối tượng tệp `f`.
  • B. Mở tệp `f` để ghi dữ liệu.
  • C. Đọc dữ liệu từ tệp `f`.
  • D. Đóng tệp `f` sau khi ghi xong.

Câu 10: Giả sử bạn đọc một dòng từ tệp bằng `line = f.readline()` và nội dung dòng đó là `"Nguyen Van A 8.5"`. Bạn muốn tách chuỗi này thành danh sách `["Nguyen Van A", "8.5"]`. Lệnh nào sau đây thực hiện được điều đó?

  • A. `parts = line.split(" ")`
  • B. `parts = line.rsplit(maxsplit=1)` (hoặc `line.rsplit(" ", maxsplit=1)`)
  • C. `parts = line.splitlines()`
  • D. `parts = list(line)`

Câu 11: Trong bài toán tìm kiếm thông tin học sinh từ tệp, mỗi dòng chứa "Tên Điểm". Ví dụ: "Nguyen Van A 8.5". Sau khi đọc một dòng và tách thành danh sách `["Nguyen Van A", "8.5"]`, bạn muốn lưu "Nguyen Van A" vào danh sách tên và "8.5" vào danh sách điểm. Mã Python nào sau đây đúng?

  • A. `ten.append(parts[0])
    diem.append(parts[1])`
  • B. `ten = parts[0]
    diem = parts[1]`
  • C. `ten.append(" ".join(parts[:-1]))
    diem.append(float(parts[-1]))`
  • D. `ten.insert(0, parts[0])
    diem.insert(0, parts[1])`

Câu 12: Xét thuật toán tìm kiếm tuần tự trên danh sách có N phần tử. Trong trường hợp xấu nhất (worst-case scenario), thuật toán cần thực hiện bao nhiêu phép so sánh để tìm thấy phần tử cần tìm?

  • A. 1
  • B. N/2 (trung bình)
  • C. log₂(N)
  • D. N

Câu 13: Xét thuật toán tìm kiếm nhị phân trên danh sách có N phần tử đã sắp xếp. Trong trường hợp xấu nhất, thuật toán cần thực hiện khoảng bao nhiêu phép so sánh để tìm thấy phần tử cần tìm?

  • A. N
  • B. log₂(N)
  • C. 1
  • D. N/2

Câu 14: Tại sao việc đóng tệp bằng lệnh `f.close()` sau khi hoàn thành thao tác đọc/ghi là quan trọng?

  • A. Giải phóng tài nguyên hệ thống đã được cấp phát cho tệp và đảm bảo dữ liệu đã ghi được lưu hoàn toàn vào đĩa.
  • B. Xóa nội dung của tệp để chuẩn bị cho lần sử dụng tiếp theo.
  • C. Ngăn chặn người dùng khác truy cập tệp.
  • D. Tự động sắp xếp lại dữ liệu trong tệp.

Câu 15: Bạn đang viết chương trình đọc dữ liệu từ tệp và tìm kiếm. Để đảm bảo tệp được đóng tự động ngay cả khi có lỗi xảy ra trong quá trình xử lý, cấu trúc nào trong Python nên được sử dụng?

  • A. `try...except`
  • B. `if...else`
  • C. `with open(...) as f:`
  • D. `while True:`

Câu 16: Cho danh sách `so = [10, 25, 30, 45, 50]` và bạn cần tìm số 30 bằng tìm kiếm nhị phân. Các chỉ số (index) của phần tử giữa được so sánh lần lượt là gì? (Chỉ số bắt đầu từ 0)

  • A. 0 -> 2
  • B. 2 -> 2
  • C. 4 -> 2
  • D. 2 -> 3

Câu 17: Khi nào thì thuật toán tìm kiếm tuần tự có thể hiệu quả hơn (hoặc ít nhất là không kém hiệu quả đáng kể) so với tìm kiếm nhị phân?

  • A. Khi danh sách rất lớn.
  • B. Khi phần tử cần tìm nằm ở cuối danh sách.
  • C. Khi phần tử cần tìm nằm ở giữa danh sách.
  • D. Khi danh sách rất nhỏ hoặc dữ liệu không được sắp xếp.

Câu 18: Bạn đọc một tệp `data.txt` có cấu trúc mỗi dòng là "ID,Tên,Điểm". Ví dụ: "101,Nguyen Van A,8.5". Để lấy ra ID, Tên, và Điểm riêng biệt từ một dòng, bạn sẽ sử dụng phương thức `split()` với đối số nào?

  • A. `,` (dấu phẩy)
  • B. ` ` (khoảng trắng)
  • C. `.` (dấu chấm)
  • D. `-` (dấu gạch ngang)

Câu 19: Trong quá trình tìm kiếm nhị phân, nếu giá trị tại vị trí giữa (mid) lớn hơn giá trị cần tìm (target), bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách hiện tại?

  • A. Nửa bên phải của vị trí giữa.
  • B. Nửa bên trái của vị trí giữa.
  • C. Toàn bộ danh sách.
  • D. Dừng tìm kiếm và báo lỗi.

Câu 20: Chức năng của tham số `encoding="utf-8"` khi mở tệp trong Python là gì?

  • A. Xác định chế độ mở tệp (đọc, ghi, ...).
  • B. Xác định kích thước tối đa của tệp.
  • C. Xác định vị trí con trỏ tệp ban đầu.
  • D. Chỉ định bảng mã ký tự được sử dụng để đọc/ghi tệp, giúp xử lý đúng các ký tự đặc biệt (ví dụ: tiếng Việt có dấu).

Câu 21: Bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten = [...]` và `diem = [...]`. Bạn muốn viết một hàm `tim_diem(ten_can_tim, danh_sach_ten, danh_sach_diem)` sử dụng tìm kiếm tuần tự. Nếu tìm thấy tên, hàm trả về điểm tương ứng; nếu không, trả về -1. Cấu trúc chính bên trong hàm sẽ là gì?

  • A. Dùng vòng lặp `for i in range(len(danh_sach_ten)):` và kiểm tra `if danh_sach_ten[i] == ten_can_tim: return danh_sach_diem[i]`. Sau vòng lặp, `return -1`.
  • B. Dùng vòng lặp `while` và chia đôi danh sách `danh_sach_ten`.
  • C. Sử dụng `if ten_can_tim in danh_sach_ten:` sau đó tìm chỉ mục bằng `index()`.
  • D. Sử dụng đệ quy để tìm kiếm.

Câu 22: Để áp dụng hiệu quả thuật toán tìm kiếm nhị phân cho dữ liệu học sinh (tên và điểm), điều kiện tiên quyết quan trọng nhất đối với danh sách tên học sinh là gì?

  • A. Danh sách tên phải có độ dài chẵn.
  • B. Danh sách tên phải được sắp xếp theo thứ tự (ví dụ: bảng chữ cái).
  • C. Mỗi tên trong danh sách phải là duy nhất.
  • D. Danh sách tên phải được lưu trữ trong tệp nhị phân.

Câu 23: Trong Python, phương thức `f.readline()` khác với `f.readlines()` như thế nào?

  • A. `f.readline()` đọc một dòng duy nhất từ vị trí con trỏ hiện tại, còn `f.readlines()` đọc tất cả các dòng còn lại và trả về một danh sách các chuỗi.
  • B. `f.readline()` đọc toàn bộ tệp thành một chuỗi, còn `f.readlines()` đọc từng ký tự.
  • C. `f.readline()` trả về danh sách, còn `f.readlines()` trả về chuỗi.
  • D. `f.readline()` chỉ dùng cho tệp nhị phân, còn `f.readlines()` dùng cho tệp văn bản.

Câu 24: Khi tìm kiếm một phần tử X trong danh sách đã sắp xếp bằng thuật toán tìm kiếm nhị phân, nếu tại bước hiện tại, phần tử ở giữa danh sách bằng X, điều gì sẽ xảy ra?

  • A. Thuật toán tiếp tục tìm kiếm ở nửa bên trái.
  • B. Thuật toán tiếp tục tìm kiếm ở nửa bên phải.
  • C. Tìm kiếm kết thúc thành công và trả về vị trí của phần tử.
  • D. Thuật toán báo lỗi vì tìm thấy phần tử trùng lặp.

Câu 25: Giả sử bạn có một tệp `ketqua.txt` và muốn ghi kết quả tìm kiếm vào cuối tệp mà không làm mất dữ liệu cũ. Chế độ mở tệp nào sau đây là phù hợp?

  • A. `"r"` (đọc)
  • B. `"a"` (ghi thêm/append)
  • C. `"w"` (ghi/write)
  • D. `"x"` (tạo mới độc quyền)

Câu 26: Trong bài toán tìm kiếm nhị phân, biến `low` và `high` thường được sử dụng để làm gì?

  • A. Lưu trữ giá trị nhỏ nhất và lớn nhất trong danh sách.
  • B. Đếm số lần lặp của thuật toán.
  • C. Lưu trữ giá trị của phần tử đầu tiên và cuối cùng.
  • D. Xác định phạm vi (chỉ số đầu và cuối) của phần danh sách hiện tại đang được xem xét.

Câu 27: Nếu bạn sử dụng tìm kiếm tuần tự để tìm kiếm một phần tử không có trong danh sách có N phần tử, thuật toán sẽ thực hiện bao nhiêu phép so sánh trong trường hợp xấu nhất?

  • A. 1
  • B. N/2
  • C. N
  • D. log₂(N)

Câu 28: Khi triển khai tìm kiếm nhị phân, điều kiện dừng của vòng lặp (ví dụ: `while low <= high:`) có ý nghĩa gì?

  • A. Vòng lặp tiếp tục khi phạm vi tìm kiếm còn hợp lệ (chỉ số đầu không vượt quá chỉ số cuối).
  • B. Vòng lặp dừng khi tìm thấy phần tử.
  • C. Vòng lặp dừng khi chỉ số đầu và cuối bằng nhau.
  • D. Vòng lặp tiếp tục khi số lần lặp chưa đạt giới hạn.

Câu 29: Bạn có một tệp `diemthichon.txt` chứa điểm của các thí sinh trên nhiều dòng, mỗi dòng là một số thực. Bạn muốn đọc tất cả điểm này vào một danh sách các số thực. Đoạn mã nào sau đây thực hiện đúng?

  • A. ```python
    diem = []
    with open("diemthichon.txt", "r") as f:
    for line in f:
    diem.append(line.strip())
    ```
  • B. ```python
    diem = []
    with open("diemthichon.txt", "r") as f:
    for line in f.readlines():
    diem.append(int(line.strip()))
    ```
  • C. ```python
    diem = []
    with open("diemthichon.txt", "r") as f:
    data = f.read()
    diem = data.splitlines()
    ```
  • D. ```python
    diem = []
    with open("diemthichon.txt", "r", encoding="utf-8") as f:
    for line in f:
    diem.append(float(line.strip()))
    ```

Câu 30: So với tìm kiếm tuần tự, lợi thế chính của tìm kiếm nhị phân là gì?

  • A. Hiệu quả hơn đáng kể về thời gian thực hiện trên các danh sách lớn đã được sắp xếp.
  • B. Có thể áp dụng cho cả danh sách đã sắp xếp và chưa sắp xếp.
  • C. Cần ít bộ nhớ hơn để thực hiện.
  • D. Dễ dàng triển khai hơn trong mã nguồn.

1 / 30

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

Tags: Bộ đề 05

Câu 1: Giả sử bạn có một tệp `danhsach.txt` chứa tên học sinh trên mỗi dòng. Bạn muốn đọc toàn bộ nội dung tệp này vào một danh sách các chuỗi, mỗi chuỗi là một dòng. Đoạn mã Python nào sau đây thực hiện đúng yêu cầu đó?

2 / 30

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

Tags: Bộ đề 05

Câu 2: Trong Python, khi mở một tệp bằng lệnh `open('du_lieu.txt', 'r')`, nếu tệp `du_lieu.txt` không tồn tại, điều gì sẽ xảy ra?

3 / 30

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

Tags: Bộ đề 05

Câu 3: Bạn có một danh sách tên học sinh `ten_hs = ['An', 'Binh', 'Hoa', 'Minh', 'Thu']` và một danh sách điểm tương ứng `diem_hs = [8, 7, 9, 6, 10]`. Để tìm điểm của học sinh tên 'Hoa' bằng phương pháp tìm kiếm tuần tự, bạn sẽ thực hiện các bước nào?

4 / 30

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

Tags: Bộ đề 05

Câu 4: Phương thức `split()` khi áp dụng cho một chuỗi (ví dụ: `line.split()`) trong Python có tác dụng gì? (Giả sử không có đối số được truyền vào `split()`)

5 / 30

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

Tags: Bộ đề 05

Câu 5: Thuật toán tìm kiếm nào yêu cầu dữ liệu đầu vào phải được sắp xếp trước khi thực hiện tìm kiếm để đạt hiệu quả tối ưu?

6 / 30

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

Tags: Bộ đề 05

Câu 6: Giả sử bạn cần tìm kiếm một từ khóa trong một tệp văn bản rất lớn, không biết trước tệp có được sắp xếp theo từ vựng hay không. Thuật toán tìm kiếm nào là lựa chọn phù hợp nhất trong trường hợp này?

7 / 30

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

Tags: Bộ đề 05

Câu 7: Khi thực hiện tìm kiếm nhị phân trên một danh sách đã sắp xếp `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]`, bạn đang tìm giá trị 23. Bước so sánh đầu tiên sẽ diễn ra với phần tử nào?

8 / 30

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

Tags: Bộ đề 05

Câu 8: Vẫn với danh sách `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]` và tìm giá trị 23. Sau bước so sánh đầu tiên (với 16), bạn nhận thấy 23 > 16. Khoảng tìm kiếm tiếp theo sẽ là phần nào của danh sách ban đầu?

9 / 30

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

Tags: Bộ đề 05

Câu 9: Khi sử dụng lệnh `print(..., file=f)` trong Python, mục đích chính của tham số `file=f` là gì?

10 / 30

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

Tags: Bộ đề 05

Câu 10: Giả sử bạn đọc một dòng từ tệp bằng `line = f.readline()` và nội dung dòng đó là `'Nguyen Van A 8.5'`. Bạn muốn tách chuỗi này thành danh sách `['Nguyen Van A', '8.5']`. Lệnh nào sau đây thực hiện được điều đó?

11 / 30

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

Tags: Bộ đề 05

Câu 11: Trong bài toán tìm kiếm thông tin học sinh từ tệp, mỗi dòng chứa 'Tên Điểm'. Ví dụ: 'Nguyen Van A 8.5'. Sau khi đọc một dòng và tách thành danh sách `['Nguyen Van A', '8.5']`, bạn muốn lưu 'Nguyen Van A' vào danh sách tên và '8.5' vào danh sách điểm. Mã Python nào sau đây đúng?

12 / 30

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

Tags: Bộ đề 05

Câu 12: Xét thuật toán tìm kiếm tuần tự trên danh sách có N phần tử. Trong trường hợp xấu nhất (worst-case scenario), thuật toán cần thực hiện bao nhiêu phép so sánh để tìm thấy phần tử cần tìm?

13 / 30

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

Tags: Bộ đề 05

Câu 13: Xét thuật toán tìm kiếm nhị phân trên danh sách có N phần tử đã sắp xếp. Trong trường hợp xấu nhất, thuật toán cần thực hiện khoảng bao nhiêu phép so sánh để tìm thấy phần tử cần tìm?

14 / 30

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

Tags: Bộ đề 05

Câu 14: Tại sao việc đóng tệp bằng lệnh `f.close()` sau khi hoàn thành thao tác đọc/ghi là quan trọng?

15 / 30

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

Tags: Bộ đề 05

Câu 15: Bạn đang viết chương trình đọc dữ liệu từ tệp và tìm kiếm. Để đảm bảo tệp được đóng tự động ngay cả khi có lỗi xảy ra trong quá trình xử lý, cấu trúc nào trong Python nên được sử dụng?

16 / 30

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

Tags: Bộ đề 05

Câu 16: Cho danh sách `so = [10, 25, 30, 45, 50]` và bạn cần tìm số 30 bằng tìm kiếm nhị phân. Các chỉ số (index) của phần tử giữa được so sánh lần lượt là gì? (Chỉ số bắt đầu từ 0)

17 / 30

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

Tags: Bộ đề 05

Câu 17: Khi nào thì thuật toán tìm kiếm tuần tự có thể hiệu quả hơn (hoặc ít nhất là không kém hiệu quả đáng kể) so với tìm kiếm nhị phân?

18 / 30

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

Tags: Bộ đề 05

Câu 18: Bạn đọc một tệp `data.txt` có cấu trúc mỗi dòng là 'ID,Tên,Điểm'. Ví dụ: '101,Nguyen Van A,8.5'. Để lấy ra ID, Tên, và Điểm riêng biệt từ một dòng, bạn sẽ sử dụng phương thức `split()` với đối số nào?

19 / 30

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

Tags: Bộ đề 05

Câu 19: Trong quá trình tìm kiếm nhị phân, nếu giá trị tại vị trí giữa (mid) lớn hơn giá trị cần tìm (target), bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách hiện tại?

20 / 30

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

Tags: Bộ đề 05

Câu 20: Chức năng của tham số `encoding='utf-8'` khi mở tệp trong Python là gì?

21 / 30

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

Tags: Bộ đề 05

Câu 21: Bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten = [...]` và `diem = [...]`. Bạn muốn viết một hàm `tim_diem(ten_can_tim, danh_sach_ten, danh_sach_diem)` sử dụng tìm kiếm tuần tự. Nếu tìm thấy tên, hàm trả về điểm tương ứng; nếu không, trả về -1. Cấu trúc chính bên trong hàm sẽ là gì?

22 / 30

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

Tags: Bộ đề 05

Câu 22: Để áp dụng hiệu quả thuật toán tìm kiếm nhị phân cho dữ liệu học sinh (tên và điểm), điều kiện tiên quyết quan trọng nhất đối với danh sách tên học sinh là gì?

23 / 30

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

Tags: Bộ đề 05

Câu 23: Trong Python, phương thức `f.readline()` khác với `f.readlines()` như thế nào?

24 / 30

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

Tags: Bộ đề 05

Câu 24: Khi tìm kiếm một phần tử X trong danh sách đã sắp xếp bằng thuật toán tìm kiếm nhị phân, nếu tại bước hiện tại, phần tử ở giữa danh sách bằng X, điều gì sẽ xảy ra?

25 / 30

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

Tags: Bộ đề 05

Câu 25: Giả sử bạn có một tệp `ketqua.txt` và muốn ghi kết quả tìm kiếm vào cuối tệp mà không làm mất dữ liệu cũ. Chế độ mở tệp nào sau đây là phù hợp?

26 / 30

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

Tags: Bộ đề 05

Câu 26: Trong bài toán tìm kiếm nhị phân, biến `low` và `high` thường được sử dụng để làm gì?

27 / 30

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

Tags: Bộ đề 05

Câu 27: Nếu bạn sử dụng tìm kiếm tuần tự để tìm kiếm một phần tử không có trong danh sách có N phần tử, thuật toán sẽ thực hiện bao nhiêu phép so sánh trong trường hợp xấu nhất?

28 / 30

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

Tags: Bộ đề 05

Câu 28: Khi triển khai tìm kiếm nhị phân, điều kiện dừng của vòng lặp (ví dụ: `while low <= high:`) có ý nghĩa gì?

29 / 30

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

Tags: Bộ đề 05

Câu 29: Bạn có một tệp `diemthichon.txt` chứa điểm của các thí sinh trên nhiều dòng, mỗi dòng là một số thực. Bạn muốn đọc tất cả điểm này vào một danh sách các số thực. Đoạn mã nào sau đây thực hiện đúng?

30 / 30

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

Tags: Bộ đề 05

Câu 30: So với tìm kiếm tuần tự, lợi thế chính của tìm kiếm nhị phân là gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 06 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, khi bạn cần mở một tệp văn bản để đọc dữ liệu mà đảm bảo tệp đó phải tồn tại, nếu không sẽ báo lỗi, bạn nên sử dụng tham số chế độ mở tệp nào trong hàm `open()`?

  • A.
  • B.
  • C.
  • D.

Câu 2: Giả sử bạn có một tệp `diem_thi.txt` chứa dữ liệu của học sinh, mỗi dòng có định dạng `Tên: Điểm`. Đoạn mã Python nào sau đây đọc tất cả các dòng từ tệp này vào một danh sách?

  • A. f = open("diem_thi.txt", "r"); data = f.read(); f.close()
  • B. f = open("diem_thi.txt", "r"); data = f.readline(); f.close()
  • C. f = open("diem_thi.txt", "r"); data = f.read().splitlines(); f.close()
  • D. f = open("diem_thi.txt", "r"); data = f.readlines(); f.close()

Câu 3: Sau khi đọc một dòng từ tệp văn bản bằng phương thức `readline()` hoặc nhận một phần tử từ danh sách trả về bởi `readlines()`, bạn nhận được một chuỗi (string). Nếu dòng đó là `

  • A. line.split()
  • B. line.strip().split(",")
  • C. line.split(":")
  • D. line.split("n")

Câu 4: Bạn muốn ghi thêm dữ liệu của một học sinh mới vào cuối tệp `diem_thi.txt` mà không làm mất dữ liệu cũ. Chế độ mở tệp nào là phù hợp nhất?

  • A.
  • B.
  • C.
  • D.

Câu 5: Khi sử dụng hàm `print()` trong Python để ghi dữ liệu vào tệp thay vì in ra màn hình console, bạn cần sử dụng tham số bổ sung nào?

  • A. `file`
  • B. `output`
  • C. `dest`
  • D. `target`

Câu 6: Tại sao việc gọi phương thức `close()` trên đối tượng tệp sau khi hoàn thành thao tác đọc/ghi là quan trọng?

  • A. Để xóa nội dung của tệp.
  • B. Để đảm bảo dữ liệu được ghi vào tệp ngay lập tức (flush buffer).
  • C. Để khóa tệp lại, ngăn các chương trình khác truy cập.
  • D. Để giải phóng tài nguyên hệ thống được cấp phát cho tệp và đảm bảo dữ liệu trong bộ đệm (buffer) được ghi hoàn toàn vào tệp.

Câu 7: Bạn có một danh sách `ten_hs = ["An", "Binh", "Hoa", "Minh"]` và một danh sách `diem_hs = [8.5, 7.0, 9.0, 7.5]`. Để tìm điểm của "Hoa" bằng cách duyệt qua danh sách `ten_hs`, bạn sẽ sử dụng thuật toán tìm kiếm nào một cách tự nhiên nhất?

  • 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 theo chiều rộng (Breadth-First Search)

Câu 8: Thuật toán tìm kiếm nào yêu cầu danh sách dữ liệu phải được sắp xếp trước khi áp dụng để đạt hiệu quả tối ưu?

  • A. Tìm kiếm tuần tự
  • B. Tìm kiếm nhị phân
  • C. Cả tìm kiếm tuần tự và tìm kiếm nhị phân
  • D. Không có thuật toán tìm kiếm nào yêu cầu dữ liệu phải sắp xếp.

Câu 9: So sánh về hiệu quả (độ phức tạp thời gian) khi tìm kiếm trên một danh sách đã được sắp xếp gồm N phần tử, thuật toán Tìm kiếm nhị phân có ưu điểm vượt trội so với Tìm kiếm tuần tự khi:

  • A. N rất nhỏ (ví dụ N < 10).
  • B. Phần tử cần tìm nằm ở đầu danh sách.
  • C. N rất lớn.
  • D. Phần tử cần tìm không tồn tại trong danh sách.

Câu 10: Bạn đang thực hiện tìm kiếm nhị phân trên danh sách đã sắp xếp `[10, 20, 30, 40, 50, 60, 70]` để tìm giá trị `40`. Trong bước đầu tiên, phần tử nào sẽ được so sánh với `40`?

  • A. 10
  • B. 20
  • C. 40
  • D. 50

Câu 11: Tiếp tục câu 10, sau khi so sánh ở bước đầu tiên, quá trình tìm kiếm nhị phân sẽ tiếp tục trên phần danh sách nào?

  • A. `[10, 20, 30]`
  • B. `[50, 60, 70]`
  • C. Toàn bộ danh sách ban đầu
  • D. Tìm thấy, kết thúc.

Câu 12: Khi thực hiện tìm kiếm một phần tử trong danh sách bằng bất kỳ thuật toán nào, điều quan trọng là phải xử lý tình huống phần tử cần tìm:

  • A. Chỉ tồn tại ở cuối danh sách.
  • B. Chỉ tồn tại ở đầu danh sách.
  • C. Không tồn tại trong danh sách.
  • D. Tồn tại nhiều lần trong danh sách.

Câu 13: Trong bài toán thực hành tìm kiếm điểm học sinh từ tệp, nếu người dùng nhập một tên không có trong danh sách, chương trình nên làm gì?

  • A. Tự động thêm tên và điểm ảo vào danh sách.
  • B. Thông báo cho người dùng biết không tìm thấy thông tin.
  • C. Thoát chương trình ngay lập tức.
  • D. Chỉ hiển thị danh sách học sinh hiện có.

Câu 14: Giả sử tệp `data.txt` chứa dữ liệu rất lớn, hàng triệu dòng. Bạn chỉ cần tìm kiếm một vài thông tin một lần duy nhất. Phương pháp nào sau đây có thể hiệu quả hơn so với việc đọc toàn bộ tệp vào bộ nhớ rồi mới tìm kiếm?

  • A. Đọc tệp từng dòng một và áp dụng tìm kiếm tuần tự trên mỗi dòng.
  • B. Đọc toàn bộ tệp vào bộ nhớ, sắp xếp dữ liệu rồi áp dụng tìm kiếm nhị phân.
  • C. Chỉ đọc dòng đầu tiên và tìm kiếm trên đó.
  • D. Chia tệp thành nhiều tệp nhỏ hơn rồi tìm kiếm trên từng tệp.

Câu 15: Bạn đang xây dựng một chương trình tra cứu từ điển đơn giản. Dữ liệu từ điển được lưu trong một tệp văn bản, mỗi dòng là một từ và nghĩa của nó. Để tra cứu nhanh nghĩa của một từ bất kỳ, bạn nên lưu trữ dữ liệu từ điển trong cấu trúc nào sau khi đọc từ tệp?

  • A. Một danh sách (list) các chuỗi (string) không sắp xếp.
  • B. Một danh sách (list) các chuỗi đã sắp xếp.
  • C. Một từ điển (dictionary) Python với từ là khóa (key) và nghĩa là giá trị (value).
  • D. Chỉ lưu trữ từ cần tra cứu vào một biến duy nhất.

Câu 16: Khi làm việc với tệp văn bản có chứa ký tự tiếng Việt trong Python, việc chỉ định tham số `encoding="UTF-8"` trong hàm `open()` là cần thiết để:

  • A. Tăng tốc độ đọc/ghi tệp.
  • B. Đảm bảo các ký tự tiếng Việt được đọc và ghi đúng cách, tránh lỗi hiển thị.
  • C. Giảm dung lượng tệp sau khi ghi.
  • D. Tự động sắp xếp dữ liệu trong tệp.

Câu 17: Chế độ mở tệp `

  • A. `
  • B. `
  • C. Cả hai đều xóa sạch nội dung cũ.
  • D. Cả hai đều ghi thêm vào cuối.

Câu 18: Bạn đọc dữ liệu từ tệp vào một danh sách các chuỗi. Mỗi chuỗi là một dòng. Bạn muốn đếm số dòng trong tệp. Phương thức nào của đối tượng tệp (sau khi mở) hoặc phương thức nào của danh sách (sau khi đọc `readlines()`) sẽ giúp bạn làm điều này?

  • A. Sử dụng `f.count_lines()`
  • B. Sử dụng `len(f.read())`
  • C. Sử dụng `f.size()`
  • D. Sử dụng `len(data)` sau khi `data = f.readlines()`

Câu 19: Khi thực hiện tìm kiếm tuần tự trên một danh sách N phần tử không sắp xếp, trong trường hợp xấu nhất (worst-case), bạn sẽ cần thực hiện bao nhiêu phép so sánh để tìm thấy (hoặc xác định không tìm thấy) một phần tử?

  • A. 1
  • B. log(N)
  • C. N
  • D. N/2

Câu 20: Khi thực hiện tìm kiếm nhị phân trên một danh sách N phần tử đã sắp xếp, trong trường hợp xấu nhất, bạn sẽ cần thực hiện bao nhiêu phép so sánh để tìm thấy (hoặc xác định không tìm thấy) một phần tử?

  • A. 1
  • B. log₂(N)
  • C. N
  • D. N/2

Câu 21: Chế độ mở tệp `

  • A. Mở tệp để thực thi.
  • B. Mở tệp ở chế độ chỉ đọc nhị phân.
  • C. Mở tệp để ghi và xóa nội dung nếu tệp tồn tại.
  • D. Tạo một tệp mới để ghi, nếu tệp đã tồn tại thì báo lỗi.

Câu 22: Bạn đọc dữ liệu điểm thi từ tệp vào hai danh sách `ten_hs` và `diem_hs` tương ứng. Để tìm điểm của một học sinh bằng tìm kiếm tuần tự, bạn cần lặp qua danh sách `ten_hs`. Khi tìm thấy tên học sinh cần tìm ở chỉ số `i`, làm thế nào để lấy được điểm tương ứng của học sinh đó?

  • A. Lấy phần tử tại chỉ số `i` từ danh sách `diem_hs`, tức là `diem_hs[i]`.
  • B. Lấy phần tử tại chỉ số `i` từ danh sách `ten_hs`, tức là `ten_hs[i]`.
  • C. Tìm kiếm lại trong danh sách `diem_hs` với tên học sinh.
  • D. Không thể lấy được điểm nếu chỉ có chỉ số `i`.

Câu 23: Trong bài toán tra cứu, người dùng nhập tên học sinh. Nếu bạn sử dụng vòng lặp `while True:` để liên tục nhận tên từ người dùng cho đến khi họ nhập từ khóa `

  • A. `if ten ==
  • B. `if ten ==
  • C. `while ten !=
  • D. `if ten !=

Câu 24: Bạn có một tệp `hocsinh.txt` với cấu trúc mỗi dòng là `Mã_số Tên`. Ví dụ: `101 Nguyen_Van_A`. Để đọc tệp này và lưu vào một danh sách các danh sách con, mỗi danh sách con chứa `[Mã_số, Tên]`, bạn sẽ xử lý mỗi dòng như thế nào sau khi đọc?

  • A. Sử dụng `line.split(",")`
  • B. Sử dụng `line.strip().split(":")`
  • C. Sử dụng `line.strip().split()` (mặc định tách theo khoảng trắng)
  • D. Sử dụng `line.strip().split(" ")`

Câu 25: Khi nào thì thuật toán tìm kiếm tuần tự (Sequential Search) được ưu tiên sử dụng hơn thuật toán tìm kiếm nhị phân (Binary Search) trong thực tế?

  • A. Khi danh sách dữ liệu rất nhỏ hoặc không được sắp xếp.
  • B. Khi danh sách dữ liệu rất lớn và đã được sắp xếp.
  • C. Khi cần tìm kiếm nhiều lần trên cùng một danh sách.
  • D. Khi độ phức tạp thời gian là yếu tố quan trọng nhất.

Câu 26: Giả sử bạn có một danh sách đã sắp xếp và muốn tìm kiếm một phần tử bằng tìm kiếm nhị phân. Nếu phần tử cần tìm nhỏ hơn phần tử ở vị trí giữa, bước tiếp theo của thuật toán sẽ là:

  • A. Tìm kiếm trong nửa danh sách bên phải (sau vị trí giữa).
  • B. Tìm kiếm trong nửa danh sách bên trái (trước vị trí giữa).
  • C. Tiếp tục tìm kiếm trong toàn bộ danh sách ban đầu.
  • D. Xác định ngay là không tìm thấy.

Câu 27: Trong Python, cách phổ biến và an toàn để làm việc với tệp, đảm bảo tệp luôn được đóng ngay cả khi có lỗi xảy ra, là sử dụng cấu trúc nào?

  • A. Mở tệp, thực hiện thao tác, gọi `close()`.
  • B. Mở tệp, sử dụng `try...except` để bắt lỗi, gọi `close()` trong `finally`.
  • C. Sử dụng câu lệnh `with open(...) as f: ...`.
  • D. Chỉ cần mở tệp, Python sẽ tự động đóng khi chương trình kết thúc.

Câu 28: Bạn đọc một tệp chứa danh sách các số nguyên, mỗi số trên một dòng. Để chuyển đổi mỗi dòng (ban đầu là chuỗi) thành số nguyên trước khi lưu vào danh sách để dễ dàng xử lý toán học hoặc tìm kiếm nhị phân, bạn sẽ sử dụng hàm built-in nào của Python?

  • A. `int()`
  • B. `str()`
  • C. `float()`
  • D. `list()`

Câu 29: Giả sử bạn có một danh sách các cặp `[tên, điểm]` đã được đọc từ tệp. Để sử dụng tìm kiếm nhị phân theo tên, danh sách này cần phải được sắp xếp dựa trên tiêu chí nào?

  • A. Sắp xếp theo điểm (tăng dần hoặc giảm dần).
  • B. Sắp xếp theo tên (theo thứ tự bảng chữ cái).
  • C. Sắp xếp ngẫu nhiên.
  • D. Không cần sắp xếp nếu sử dụng tìm kiếm nhị phân.

Câu 30: Trong bài toán tìm kiếm điểm học sinh, việc sử dụng tìm kiếm nhị phân trên danh sách tên và điểm đã sắp xếp theo tên sẽ hiệu quả hơn tìm kiếm tuần tự khi:

  • A. Chỉ cần tìm kiếm một hoặc hai lần.
  • B. Danh sách học sinh rất ít (ví dụ dưới 50).
  • C. Tệp dữ liệu gốc không được sắp xếp.
  • D. Số lượng học sinh rất lớn và cần tra cứu nhiều lần.

1 / 30

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

Tags: Bộ đề 06

Câu 1: Trong Python, khi bạn cần mở một tệp văn bản để đọc dữ liệu mà đảm bảo tệp đó phải tồn tại, nếu không sẽ báo lỗi, bạn nên sử dụng tham số chế độ mở tệp nào trong hàm `open()`?

2 / 30

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

Tags: Bộ đề 06

Câu 2: Giả sử bạn có một tệp `diem_thi.txt` chứa dữ liệu của học sinh, mỗi dòng có định dạng `Tên: Điểm`. Đoạn mã Python nào sau đây đọc *tất cả* các dòng từ tệp này vào một danh sách?

3 / 30

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

Tags: Bộ đề 06

Câu 3: Sau khi đọc một dòng từ tệp văn bản bằng phương thức `readline()` hoặc nhận một phần tử từ danh sách trả về bởi `readlines()`, bạn nhận được một chuỗi (string). Nếu dòng đó là `"Nguyen Van A,8.5n"`, lệnh nào sau đây sẽ giúp bạn tách tên và điểm thành hai phần tử riêng biệt?

4 / 30

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

Tags: Bộ đề 06

Câu 4: Bạn muốn ghi thêm dữ liệu của một học sinh mới vào cuối tệp `diem_thi.txt` mà không làm mất dữ liệu cũ. Chế độ mở tệp nào là phù hợp nhất?

5 / 30

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

Tags: Bộ đề 06

Câu 5: Khi sử dụng hàm `print()` trong Python để ghi dữ liệu vào tệp thay vì in ra màn hình console, bạn cần sử dụng tham số bổ sung nào?

6 / 30

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

Tags: Bộ đề 06

Câu 6: Tại sao việc gọi phương thức `close()` trên đối tượng tệp sau khi hoàn thành thao tác đọc/ghi là quan trọng?

7 / 30

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

Tags: Bộ đề 06

Câu 7: Bạn có một danh sách `ten_hs = ['An', 'Binh', 'Hoa', 'Minh']` và một danh sách `diem_hs = [8.5, 7.0, 9.0, 7.5]`. Để tìm điểm của 'Hoa' bằng cách duyệt qua danh sách `ten_hs`, bạn sẽ sử dụng thuật toán tìm kiếm nào một cách tự nhiên nhất?

8 / 30

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

Tags: Bộ đề 06

Câu 8: Thuật toán tìm kiếm nào *yêu cầu* danh sách dữ liệu phải được sắp xếp trước khi áp dụng để đạt hiệu quả tối ưu?

9 / 30

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

Tags: Bộ đề 06

Câu 9: So sánh về hiệu quả (độ phức tạp thời gian) khi tìm kiếm trên một danh sách *đã được sắp xếp* gồm N phần tử, thuật toán Tìm kiếm nhị phân có ưu điểm vượt trội so với Tìm kiếm tuần tự khi:

10 / 30

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

Tags: Bộ đề 06

Câu 10: Bạn đang thực hiện tìm kiếm nhị phân trên danh sách đã sắp xếp `[10, 20, 30, 40, 50, 60, 70]` để tìm giá trị `40`. Trong bước đầu tiên, phần tử nào sẽ được so sánh với `40`?

11 / 30

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

Tags: Bộ đề 06

Câu 11: Tiếp tục câu 10, sau khi so sánh ở bước đầu tiên, quá trình tìm kiếm nhị phân sẽ tiếp tục trên phần danh sách nào?

12 / 30

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

Tags: Bộ đề 06

Câu 12: Khi thực hiện tìm kiếm một phần tử trong danh sách bằng bất kỳ thuật toán nào, điều quan trọng là phải xử lý tình huống phần tử cần tìm:

13 / 30

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

Tags: Bộ đề 06

Câu 13: Trong bài toán thực hành tìm kiếm điểm học sinh từ tệp, nếu người dùng nhập một tên không có trong danh sách, chương trình nên làm gì?

14 / 30

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

Tags: Bộ đề 06

Câu 14: Giả sử tệp `data.txt` chứa dữ liệu rất lớn, hàng triệu dòng. Bạn chỉ cần tìm kiếm một vài thông tin *một lần duy nhất*. Phương pháp nào sau đây có thể hiệu quả hơn so với việc đọc toàn bộ tệp vào bộ nhớ rồi mới tìm kiếm?

15 / 30

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

Tags: Bộ đề 06

Câu 15: Bạn đang xây dựng một chương trình tra cứu từ điển đơn giản. Dữ liệu từ điển được lưu trong một tệp văn bản, mỗi dòng là một từ và nghĩa của nó. Để tra cứu *nhanh* nghĩa của một từ bất kỳ, bạn nên lưu trữ dữ liệu từ điển trong cấu trúc nào sau khi đọc từ tệp?

16 / 30

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

Tags: Bộ đề 06

Câu 16: Khi làm việc với tệp văn bản có chứa ký tự tiếng Việt trong Python, việc chỉ định tham số `encoding='UTF-8'` trong hàm `open()` là cần thiết để:

17 / 30

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

Tags: Bộ đề 06

Câu 17: Chế độ mở tệp `"w"` khác với chế độ `"a"` như thế nào khi tệp đã tồn tại?

18 / 30

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

Tags: Bộ đề 06

Câu 18: Bạn đọc dữ liệu từ tệp vào một danh sách các chuỗi. Mỗi chuỗi là một dòng. Bạn muốn đếm số dòng trong tệp. Phương thức nào của đối tượng tệp (sau khi mở) hoặc phương thức nào của danh sách (sau khi đọc `readlines()`) sẽ giúp bạn làm điều này?

19 / 30

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

Tags: Bộ đề 06

Câu 19: Khi thực hiện tìm kiếm tuần tự trên một danh sách N phần tử không sắp xếp, trong trường hợp xấu nhất (worst-case), bạn sẽ cần thực hiện bao nhiêu phép so sánh để tìm thấy (hoặc xác định không tìm thấy) một phần tử?

20 / 30

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

Tags: Bộ đề 06

Câu 20: Khi thực hiện tìm kiếm nhị phân trên một danh sách N phần tử đã sắp xếp, trong trường hợp xấu nhất, bạn sẽ cần thực hiện bao nhiêu phép so sánh để tìm thấy (hoặc xác định không tìm thấy) một phần tử?

21 / 30

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

Tags: Bộ đề 06

Câu 21: Chế độ mở tệp `"x"` trong hàm `open()` của Python có chức năng gì đặc biệt?

22 / 30

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

Tags: Bộ đề 06

Câu 22: Bạn đọc dữ liệu điểm thi từ tệp vào hai danh sách `ten_hs` và `diem_hs` tương ứng. Để tìm điểm của một học sinh bằng tìm kiếm tuần tự, bạn cần lặp qua danh sách `ten_hs`. Khi tìm thấy tên học sinh cần tìm ở chỉ số `i`, làm thế nào để lấy được điểm tương ứng của học sinh đó?

23 / 30

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

Tags: Bộ đề 06

Câu 23: Trong bài toán tra cứu, người dùng nhập tên học sinh. Nếu bạn sử dụng vòng lặp `while True:` để liên tục nhận tên từ người dùng cho đến khi họ nhập từ khóa `"end"`, cấu trúc điều kiện nào sau đây được sử dụng để kiểm tra và thoát vòng lặp?

24 / 30

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

Tags: Bộ đề 06

Câu 24: Bạn có một tệp `hocsinh.txt` với cấu trúc mỗi dòng là `Mã_số Tên`. Ví dụ: `101 Nguyen_Van_A`. Để đọc tệp này và lưu vào một danh sách các danh sách con, mỗi danh sách con chứa `[Mã_số, Tên]`, bạn sẽ xử lý mỗi dòng như thế nào sau khi đọc?

25 / 30

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

Tags: Bộ đề 06

Câu 25: Khi nào thì thuật toán tìm kiếm tuần tự (Sequential Search) được ưu tiên sử dụng hơn thuật toán tìm kiếm nhị phân (Binary Search) trong thực tế?

26 / 30

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

Tags: Bộ đề 06

Câu 26: Giả sử bạn có một danh sách đã sắp xếp và muốn tìm kiếm một phần tử bằng tìm kiếm nhị phân. Nếu phần tử cần tìm *nhỏ hơn* phần tử ở vị trí giữa, bước tiếp theo của thuật toán sẽ là:

27 / 30

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

Tags: Bộ đề 06

Câu 27: Trong Python, cách phổ biến và an toàn để làm việc với tệp, đảm bảo tệp luôn được đóng ngay cả khi có lỗi xảy ra, là sử dụng cấu trúc nào?

28 / 30

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

Tags: Bộ đề 06

Câu 28: Bạn đọc một tệp chứa danh sách các số nguyên, mỗi số trên một dòng. Để chuyển đổi mỗi dòng (ban đầu là chuỗi) thành số nguyên trước khi lưu vào danh sách để dễ dàng xử lý toán học hoặc tìm kiếm nhị phân, bạn sẽ sử dụng hàm built-in nào của Python?

29 / 30

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

Tags: Bộ đề 06

Câu 29: Giả sử bạn có một danh sách các cặp `[tên, điểm]` đã được đọc từ tệp. Để sử dụng tìm kiếm nhị phân theo *tên*, danh sách này cần phải được sắp xếp d???a trên tiêu chí nào?

30 / 30

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

Tags: Bộ đề 06

Câu 30: Trong bài toán tìm kiếm điểm học sinh, việc sử dụng tìm kiếm nhị phân trên danh sách tên và điểm đã sắp xếp theo tên sẽ hiệu quả hơn tìm kiếm tuần tự khi:

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 07 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi làm việc với tệp văn bản trong Python, việc sử dụng cấu trúc `with open(...) as f:` được khuyến khích hơn so với `f = open(...); ...; f.close()`. Tại sao?

  • A. Giúp chương trình chạy nhanh hơn đáng kể.
  • B. Bắt buộc phải sử dụng khi đọc tệp lớn.
  • C. Đảm bảo tệp luôn được đóng, ngay cả khi có lỗi.
  • D. Chỉ dùng được cho tệp nhị phân.

Câu 2: Bạn có một tệp `du_lieu.txt` chứa mỗi dòng là tên và điểm của một học sinh, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A,8.5`). Đoạn mã Python nào sau đây đọc từng dòng từ tệp này và tách tên và điểm thành hai biến riêng biệt?

  • A. ```python
    with open("du_lieu.txt", "w") as f:
    for line in f:
    ten, diem_str = line.strip().split(",")
    diem = float(diem_str)
    ```
  • B. ```python
    with open("du_lieu.txt", "r") as f:
    data = f.read().split("n")
    for line in data:
    ten, diem_str = line.split(" ")
    ```
  • C. ```python
    with open("du_lieu.txt", "r") as f:
    for line in f:
    ten, diem_str = line.strip().split(",")
    diem = float(diem_str)
    print(f"Ten: {ten}, Diem: {diem}")
    ```
  • D. ```python
    with open("du_lieu.txt", "a") as f:
    for line in f.readlines():
    ten, diem = line.split(",")
    ```

Câu 3: Trong bài toán tìm kiếm thông tin học sinh từ tệp, nếu tệp dữ liệu chứa hàng nghìn hoặc hàng vạn dòng dữ liệu đã được sắp xếp theo tên học sinh (theo thứ tự bảng chữ cái), thuật toán tìm kiếm nào sau đây hiệu quả nhất để tìm kiếm một học sinh cụ thể?

  • 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 mở rộng (Extended Search)
  • D. Tìm kiếm theo chiều sâu (Depth-First Search)

Câu 4: Thuật toán tìm kiếm nhị phân hoạt động dựa trên nguyên tắc chia đôi tập dữ liệu tại mỗi bước. Điều kiện tiên quyết để áp dụng thành công thuật toán này là gì?

  • A. Tập dữ liệu phải chỉ chứa các số nguyên.
  • B. Tập dữ liệu phải có số lượng phần tử là số chẵn.
  • C. Tập dữ liệu phải được lưu trữ trong tệp văn bản.
  • D. Tập dữ liệu phải được sắp xếp theo một thứ tự nhất định.

Câu 5: Bạn cần ghi thêm điểm của một học sinh mới vào cuối tệp `du_lieu.txt` mà không làm mất dữ liệu cũ. Lệnh `open()` với tham số chế độ (mode) nào sau đây là phù hợp nhất?

  • A. `"w"`
  • B. `"r"`
  • C. `"a"`
  • D. `"x"`

Câu 6: Giả sử bạn đã đọc toàn bộ tệp `du_lieu.txt` (mỗi dòng "Tên,Điểm") vào hai danh sách riêng biệt: `danh_sach_ten` và `danh_sach_diem` (điểm dưới dạng số thực). Làm thế nào để tìm điểm của học sinh "Tran Thi B"?

  • A. Tìm chỉ mục của "Tran Thi B" trong `danh_sach_ten` và lấy phần tử tại chỉ mục đó trong `danh_sach_diem`.
  • B. Duyệt qua `danh_sach_diem` và so sánh từng điểm với "Tran Thi B".
  • C. Sử dụng tìm kiếm nhị phân trên `danh_sach_diem`.
  • D. Sử dụng hàm `search("Tran Thi B", danh_sach_diem)`.

Câu 7: Bạn đọc một dòng từ tệp là `" Le Van C , 7.0 n"`. Khi áp dụng `line.strip().split(",")`, kết quả trả về là gì?

  • A. `["Le Van C", "7.0"]`
  • B. `[" Le Van C ", " 7.0"]`
  • C. `[" Le Van C , 7.0"]`
  • D. `"Le Van C", "7.0"` (là tuple, không phải list)

Câu 8: Để cải thiện kết quả ở Câu 7, làm thế nào để loại bỏ khoảng trắng thừa xung quanh tên và điểm sau khi đã tách chuỗi bằng `split(",")`?

  • A. Áp dụng phương thức `strip()` cho từng phần tử trong danh sách kết quả của `split()`.
  • B. Sử dụng `split(",").strip()`.
  • C. Thay đổi dấu phân cách trong `split()` thành `" , "`.
  • D. Sử dụng `split(",").join()`.

Câu 9: Khi thực hiện tìm kiếm tuần tự trên một danh sách có `n` phần tử, trong trường hợp xấu nhất (ví dụ: phần tử cần tìm nằm ở cuối danh sách hoặc không có trong danh sách), chương trình sẽ cần thực hiện bao nhiêu phép so sánh?

  • A. 1
  • B. log(n)
  • C. n/2
  • D. n

Câu 10: Đoạn mã Python sau đọc một danh sách các số từ tệp `numbers.txt` (mỗi số trên một dòng) và tìm số lớn nhất. Tuy nhiên, có một lỗi. Hãy xác định lỗi đó:
```python
max_num = 0
with open("numbers.txt", "r") as f:
for line in f:
num_str = line.strip()
if num_str > max_num:
max_num = num_str
print(max_num)
```

  • A. So sánh kiểu dữ liệu không tương thích (chuỗi với số).
  • B. Không đóng tệp sau khi đọc.
  • C. Biến `max_num` được khởi tạo sai giá trị.
  • D. Vòng lặp `for line in f:` không đọc hết các dòng.

Câu 11: Bạn đang triển khai tìm kiếm nhị phân để tìm một giá trị trong một danh sách số nguyên đã sắp xếp. Trong quá trình tìm kiếm, bạn tính được chỉ mục giữa là `mid`. Nếu giá trị tại `danh_sach[mid]` lớn hơn giá trị cần tìm, bạn nên điều chỉnh phạm vi tìm kiếm tiếp theo như thế nào?

  • A. Cập nhật điểm đầu (low) thành `mid + 1`.
  • B. Cập nhật điểm cuối (high) thành `mid - 1`.
  • C. Cập nhật cả điểm đầu và điểm cuối.
  • D. Kết thúc tìm kiếm và thông báo không tìm thấy.

Câu 12: Đoạn mã sau nhằm mục đích đọc các số từ tệp `data.txt` (mỗi dòng một số) và lưu vào một danh sách. Hãy chọn đoạn mã đúng:

  • A. ```python
    numbers = []
    f = open("data.txt", "w")
    for line in f:
    numbers.append(line)
    f.close()
    ```
  • B. ```python
    numbers = []
    with open("data.txt", "r") as f:
    for line in f:
    numbers.append(int(line.strip()))
    ```
  • C. ```python
    numbers = []
    with open("data.txt", "r") as f:
    data = f.read()
    numbers.append(data)
    ```
  • D. ```python
    numbers = []
    with open("data.txt", "a") as f:
    for line in f.readlines():
    numbers.append(float(line))
    ```

Câu 13: Khi thực hiện tìm kiếm một phần tử trong danh sách bằng thuật toán tìm kiếm tuần tự, nếu phần tử cần tìm có tồn tại trong danh sách, trường hợp tốt nhất xảy ra khi nào?

  • A. Phần tử cần tìm nằm ở vị trí đầu tiên của danh sách.
  • B. Phần tử cần tìm nằm ở vị trí cuối cùng của danh sách.
  • C. Danh sách chỉ có một phần tử.
  • D. Tất cả các phần tử trong danh sách đều giống nhau.

Câu 14: Bạn cần lưu một danh sách các chuỗi vào tệp `output.txt`, mỗi chuỗi trên một dòng riêng biệt. Đoạn mã nào sau đây thực hiện đúng yêu cầu này?

  • A. ```python
    data = ["chuoi1", "chuoi2", "chuoi3"]
    with open("output.txt", "r") as f:
    f.write(data)
    ```
  • B. ```python
    data = ["chuoi1", "chuoi2", "chuoi3"]
    with open("output.txt", "a") as f:
    f.writelines(data)
    ```
  • C. ```python
    data = ["chuoi1", "chuoi2", "chuoi3"]
    with open("output.txt", "w") as f:
    for item in data:
    f.write(item + "n")
    ```
  • D. ```python
    data = ["chuoi1", "chuoi2", "chuoi3"]
    with open("output.txt", "w") as f:
    f.print(data)
    ```

Câu 15: Trong bài toán tra cứu điểm học sinh từ tệp, giả sử tệp dữ liệu rất lớn và không được sắp xếp. Thuật toán tìm kiếm nào là lựa chọn khả thi duy nhất để tìm kiếm theo tên học sinh?

  • A. Tìm kiếm tuần tự.
  • B. Tìm kiếm nhị phân.
  • C. Cả tìm kiếm tuần tự và tìm kiếm nhị phân đều không khả thi.
  • D. Cần sắp xếp lại dữ liệu trước khi tìm kiếm.

Câu 16: Bạn đang viết chương trình đọc dữ liệu từ tệp `config.ini`. Nếu tệp này không tồn tại, chương trình sẽ gặp lỗi. Để xử lý tình huống này một cách "an toàn", bạn nên sử dụng cấu trúc nào trong Python?

  • A. `if...else`
  • B. `while...else`
  • C. `for...else`
  • D. `try...except`

Câu 17: Khi đọc một dòng từ tệp bằng `f.readline()`, kết quả trả về luôn bao gồm ký tự xuống dòng `n` ở cuối dòng (trừ dòng cuối cùng nếu tệp không kết thúc bằng `n`). Phương thức chuỗi nào hữu ích nhất để loại bỏ ký tự `n` này?

  • A. `strip()`
  • B. `replace("n", "")`
  • C. `split("n")`
  • D. `rstrip()`

Câu 18: Bạn đã đọc dữ liệu từ tệp vào một danh sách các chuỗi. Mỗi chuỗi có định dạng `"Tên: Điểm"` (ví dụ: `"An: 8.5"`). Làm thế nào để chuyển đổi danh sách này thành một từ điển (dictionary) trong đó khóa là tên học sinh và giá trị là điểm (số thực)?

  • A. ```python
    data_list = ["An: 8.5", "Binh: 9.0"]
    data_dict = dict(data_list)
    ```
  • B. ```python
    data_list = ["An: 8.5", "Binh: 9.0"]
    data_dict = {}
    for item in data_list:
    key, value = item.split(":")
    data_dict[key.strip()] = value.strip()
    ```
  • C. ```python
    data_list = ["An: 8.5", "Binh: 9.0"]
    data_dict = {}
    for item in data_list:
    key, value = item.split(": ")
    data_dict[key] = float(value)
    ```
  • D. ```python
    data_list = ["An: 8.5", "Binh: 9.0"]
    data_dict = {}
    for item in data_list:
    key, value_str = item.split(": ")
    data_dict[key] = float(value_str)
    ```

Câu 19: So với tìm kiếm tuần tự, tìm kiếm nhị phân có ưu điểm chính nào khi áp dụng trên tập dữ liệu lớn và đã được sắp xếp?

  • A. Không yêu cầu dữ liệu phải được sắp xếp.
  • B. Tốc độ tìm kiếm nhanh hơn đáng kể.
  • C. Dễ cài đặt hơn.
  • D. Sử dụng ít bộ nhớ hơn.

Câu 20: Khi đọc một tệp văn bản bằng `f.read()`, kết quả trả về là gì?

  • A. Một chuỗi chứa toàn bộ nội dung tệp.
  • B. Một danh sách các dòng trong tệp.
  • C. Dòng đầu tiên của tệp.
  • D. Một danh sách các ký tự trong tệp.

Câu 21: Bạn muốn viết một chương trình cho phép người dùng nhập tên học sinh và chương trình sẽ tìm kiếm tên đó trong danh sách đã đọc từ tệp. Nếu tìm thấy, in ra điểm; nếu không, thông báo "Không tìm thấy". Cấu trúc điều khiển nào là cần thiết để lặp lại việc tìm kiếm cho đến khi người dùng nhập một từ khóa đặc biệt để thoát (ví dụ: "quit")?

  • A. Vòng lặp `for`.
  • B. Vòng lặp `while`.
  • C. Cấu trúc `if...elif...else`.
  • D. Hàm đệ quy.

Câu 22: Cho danh sách số nguyên đã sắp xếp: `[5, 12, 23, 38, 45, 60, 71, 89, 95]`. Khi tìm kiếm số 45 bằng thuật toán tìm kiếm nhị phân, các chỉ mục nào sẽ được kiểm tra (theo thứ tự) trong quá trình tìm kiếm?

  • A. 4, 2, 3
  • B. 0, 8, 4
  • C. 4
  • D. 4, 6, 5

Câu 23: Vẫn với danh sách `[5, 12, 23, 38, 45, 60, 71, 89, 95]`. Khi tìm kiếm số 50 bằng thuật toán tìm kiếm nhị phân, quá trình tìm kiếm sẽ diễn ra như thế nào?

  • A. Kiểm tra 45, sau đó 71, rồi 60, và tìm thấy.
  • B. Kiểm tra 45, sau đó 38, rồi không tìm thấy.
  • C. Kiểm tra 45, sau đó 60, rồi 71, và không tìm thấy.
  • D. Kiểm tra 45, sau đó 71, rồi 60, và không tìm thấy.

Câu 24: Bạn đã đọc dữ liệu từ tệp vào hai danh sách: `ten_hoc_sinh = ["An", "Binh", "Hoa"]` và `diem_hoc_sinh = [8.5, 9.0, 7.8]`. Người dùng nhập tên "Hoa". Để tìm điểm của "Hoa", bạn sử dụng tìm kiếm tuần tự. Chỉ mục của "Hoa" trong danh sách `ten_hoc_sinh` là bao nhiêu?

  • A. 0
  • B. 1
  • C. 2
  • D. 3

Câu 25: Sau khi tìm thấy chỉ mục của "Hoa" ở Câu 24 là 2, làm thế nào để lấy điểm tương ứng của "Hoa" từ danh sách `diem_hoc_sinh`?

  • A. Truy cập `diem_hoc_sinh[2]`.
  • B. Tìm kiếm "Hoa" trong `diem_hoc_sinh`.
  • C. Truy cập `diem_hoc_sinh[ten_hoc_sinh.index("Hoa")]`.
  • D. Lấy phần tử cuối cùng của `diem_hoc_sinh`.

Câu 26: Chế độ mở tệp `"x"` trong Python có ý nghĩa gì?

  • A. Mở tệp để đọc và ghi.
  • B. Mở tệp để ghi (xóa nội dung cũ nếu có).
  • C. Mở tệp để ghi thêm dữ liệu vào cuối.
  • D. Tạo tệp mới, báo lỗi nếu tệp đã tồn tại.

Câu 27: Bạn cần đọc dòng đầu tiên từ tệp `header.txt`. Phương thức nào sau đây là hiệu quả nhất?

  • A. `f.read()`
  • B. `f.readline()`
  • C. `f.readlines()[0]`
  • D. `for line in f: ... break`

Câu 28: Giả sử bạn có một tệp `log.txt` và muốn ghi lại thời gian và một thông báo mỗi khi chương trình chạy. Bạn cần đảm bảo các thông báo mới được thêm vào cuối tệp mà không xóa các thông báo cũ. Đoạn mã nào sau đây thực hiện đúng điều này?

  • A. ```python
    import datetime
    now = datetime.datetime.now()
    with open("log.txt", "a") as f:
    f.write(f"{now}: Chuong trinh da chayn")
    ```
  • B. ```python
    import datetime
    now = datetime.datetime.now()
    with open("log.txt", "w") as f:
    f.write(f"{now}: Chuong trinh da chayn")
    ```
  • C. ```python
    import datetime
    now = datetime.datetime.now()
    with open("log.txt", "r") as f:
    f.write(f"{now}: Chuong trinh da chayn")
    ```
  • D. ```python
    import datetime
    now = datetime.datetime.now()
    with open("log.txt", "x") as f:
    f.write(f"{now}: Chuong trinh da chayn")
    ```

Câu 29: Khi áp dụng tìm kiếm nhị phân trên một danh sách có `n` phần tử, độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n²)

Câu 30: Bạn đang xây dựng một hệ thống tra cứu thông tin sản phẩm từ tệp dữ liệu. Tệp này chứa ID sản phẩm và tên sản phẩm trên mỗi dòng, cách nhau bởi dấu tab (`t`). Bạn cần đọc tệp này và cho phép người dùng tìm kiếm sản phẩm theo ID. Cấu trúc dữ liệu nào trong Python là phù hợp nhất để lưu trữ dữ liệu từ tệp nhằm hỗ trợ việc tìm kiếm nhanh theo ID?

  • A. Danh sách (list).
  • B. Tuple.
  • C. Set.
  • D. Từ điển (dictionary).

1 / 30

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

Tags: Bộ đề 07

Câu 1: Khi làm việc với tệp văn bản trong Python, việc sử dụng cấu trúc `with open(...) as f:` được khuyến khích hơn so với `f = open(...); ...; f.close()`. Tại sao?

2 / 30

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

Tags: Bộ đề 07

Câu 2: Bạn có một tệp `du_lieu.txt` chứa mỗi dòng là tên và điểm của một học sinh, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A,8.5`). Đoạn mã Python nào sau đây đọc từng dòng từ tệp này và tách tên và điểm thành hai biến riêng biệt?

3 / 30

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

Tags: Bộ đề 07

Câu 3: Trong bài toán tìm kiếm thông tin học sinh từ tệp, nếu tệp dữ liệu chứa hàng nghìn hoặc hàng vạn dòng dữ liệu đã được sắp xếp theo tên học sinh (theo thứ tự bảng chữ cái), thuật toán tìm kiếm nào sau đây *hiệu quả nhất* để tìm kiếm một học sinh cụ thể?

4 / 30

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

Tags: Bộ đề 07

Câu 4: Thuật toán tìm kiếm nhị phân hoạt động dựa trên nguyên tắc chia đôi tập dữ liệu tại mỗi bước. Điều kiện *tiên quyết* để áp dụng thành công thuật toán này là gì?

5 / 30

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

Tags: Bộ đề 07

Câu 5: Bạn cần ghi thêm điểm của một học sinh mới vào cuối tệp `du_lieu.txt` mà không làm mất dữ liệu cũ. Lệnh `open()` với tham số chế độ (mode) nào sau đây là phù hợp nhất?

6 / 30

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

Tags: Bộ đề 07

Câu 6: Giả sử bạn đã đọc toàn bộ tệp `du_lieu.txt` (mỗi dòng 'Tên,Điểm') vào hai danh sách riêng biệt: `danh_sach_ten` và `danh_sach_diem` (điểm dưới dạng số thực). Làm thế nào để tìm điểm của học sinh 'Tran Thi B'?

7 / 30

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

Tags: Bộ đề 07

Câu 7: Bạn đọc một dòng từ tệp là `' Le Van C , 7.0 n'`. Khi áp dụng `line.strip().split(',')`, kết quả trả về là gì?

8 / 30

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

Tags: Bộ đề 07

Câu 8: Để cải thiện kết quả ở Câu 7, làm thế nào để loại bỏ khoảng trắng thừa xung quanh tên và điểm sau khi đã tách chuỗi bằng `split(',')`?

9 / 30

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

Tags: Bộ đề 07

Câu 9: Khi thực hiện tìm kiếm tuần tự trên một danh sách có `n` phần tử, trong trường hợp xấu nhất (ví dụ: phần tử cần tìm nằm ở cuối danh sách hoặc không có trong danh sách), chương trình sẽ cần thực hiện bao nhiêu phép so sánh?

10 / 30

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

Tags: Bộ đề 07

Câu 10: Đoạn mã Python sau đọc một danh sách các số từ tệp `numbers.txt` (mỗi số trên một dòng) và tìm số lớn nhất. Tuy nhiên, có một lỗi. Hãy xác định lỗi đó:
```python
max_num = 0
with open('numbers.txt', 'r') as f:
for line in f:
num_str = line.strip()
if num_str > max_num:
max_num = num_str
print(max_num)
```

11 / 30

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

Tags: Bộ đề 07

Câu 11: Bạn đang triển khai tìm kiếm nhị phân để tìm một giá trị trong một danh sách số nguyên đã sắp xếp. Trong quá trình tìm kiếm, bạn tính được chỉ mục giữa là `mid`. Nếu giá trị tại `danh_sach[mid]` *lớn hơn* giá trị cần tìm, bạn nên điều chỉnh phạm vi tìm kiếm tiếp theo như thế nào?

12 / 30

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

Tags: Bộ đề 07

Câu 12: Đoạn mã sau nhằm mục đích đọc các số từ tệp `data.txt` (mỗi dòng một số) và lưu vào một danh sách. Hãy chọn đoạn mã đúng:

13 / 30

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

Tags: Bộ đề 07

Câu 13: Khi thực hiện tìm kiếm một phần tử trong danh sách bằng thuật toán tìm kiếm tuần tự, nếu phần tử cần tìm *có tồn tại* trong danh sách, trường hợp tốt nhất xảy ra khi nào?

14 / 30

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

Tags: Bộ đề 07

Câu 14: Bạn cần lưu một danh sách các chuỗi vào tệp `output.txt`, mỗi chuỗi trên một dòng riêng biệt. Đoạn mã nào sau đây thực hiện đúng yêu cầu này?

15 / 30

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

Tags: Bộ đề 07

Câu 15: Trong bài toán tra cứu điểm học sinh từ tệp, giả sử tệp dữ liệu rất lớn và không được sắp xếp. Thuật toán tìm kiếm nào là lựa chọn khả thi duy nhất để tìm kiếm theo tên học sinh?

16 / 30

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

Tags: Bộ đề 07

Câu 16: Bạn đang viết chương trình đọc dữ liệu từ tệp `config.ini`. Nếu tệp này không tồn tại, chương trình sẽ gặp lỗi. Để xử lý tình huống này một cách 'an toàn', bạn nên sử dụng cấu trúc nào trong Python?

17 / 30

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

Tags: Bộ đề 07

Câu 17: Khi đọc một dòng từ tệp bằng `f.readline()`, kết quả trả về luôn bao gồm ký tự xuống dòng `n` ở cuối dòng (trừ dòng cuối cùng nếu tệp không kết thúc bằng `n`). Phương thức chuỗi nào hữu ích nhất để loại bỏ ký tự `n` này?

18 / 30

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

Tags: Bộ đề 07

Câu 18: Bạn đã đọc dữ liệu từ tệp vào một danh sách các chuỗi. Mỗi chuỗi có định dạng `'Tên: Điểm'` (ví dụ: `'An: 8.5'`). Làm thế nào để chuyển đổi danh sách này thành một từ điển (dictionary) trong đó khóa là tên học sinh và giá trị là điểm (số thực)?

19 / 30

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

Tags: Bộ đề 07

Câu 19: So với tìm kiếm tuần tự, tìm kiếm nhị phân có ưu điểm chính nào khi áp dụng trên tập dữ liệu lớn và đã được sắp xếp?

20 / 30

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

Tags: Bộ đề 07

Câu 20: Khi đọc một tệp văn bản bằng `f.read()`, kết quả trả về là gì?

21 / 30

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

Tags: Bộ đề 07

Câu 21: Bạn muốn viết một chương trình cho phép người dùng nhập tên học sinh và chương trình sẽ tìm kiếm tên đó trong danh sách đã đọc từ tệp. Nếu tìm thấy, in ra điểm; nếu không, thông báo 'Không tìm thấy'. Cấu trúc điều khiển nào là cần thiết để lặp lại việc tìm kiếm cho đến khi người dùng nhập một từ khóa đặc biệt để thoát (ví dụ: 'quit')?

22 / 30

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

Tags: Bộ đề 07

Câu 22: Cho danh sách số nguyên đã sắp xếp: `[5, 12, 23, 38, 45, 60, 71, 89, 95]`. Khi tìm kiếm số 45 bằng thuật toán tìm kiếm nhị phân, các chỉ mục nào sẽ được kiểm tra (theo thứ tự) trong quá trình tìm kiếm?

23 / 30

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

Tags: Bộ đề 07

Câu 23: Vẫn với danh sách `[5, 12, 23, 38, 45, 60, 71, 89, 95]`. Khi tìm kiếm số 50 bằng thuật toán tìm kiếm nhị phân, quá trình tìm kiếm sẽ diễn ra như thế nào?

24 / 30

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

Tags: Bộ đề 07

Câu 24: Bạn đã đọc dữ liệu từ tệp vào hai danh sách: `ten_hoc_sinh = ['An', 'Binh', 'Hoa']` và `diem_hoc_sinh = [8.5, 9.0, 7.8]`. Người dùng nhập tên 'Hoa'. Để tìm điểm của 'Hoa', bạn sử dụng tìm kiếm tuần tự. Chỉ mục của 'Hoa' trong danh sách `ten_hoc_sinh` là bao nhiêu?

25 / 30

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

Tags: Bộ đề 07

Câu 25: Sau khi tìm thấy chỉ mục của 'Hoa' ở Câu 24 là 2, làm thế nào để lấy điểm tương ứng của 'Hoa' từ danh sách `diem_hoc_sinh`?

26 / 30

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

Tags: Bộ đề 07

Câu 26: Chế độ mở tệp `'x'` trong Python có ý nghĩa gì?

27 / 30

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

Tags: Bộ đề 07

Câu 27: Bạn cần đọc dòng đầu tiên từ tệp `header.txt`. Phương thức nào sau đây là hiệu quả nhất?

28 / 30

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

Tags: Bộ đề 07

Câu 28: Giả sử bạn có một tệp `log.txt` và muốn ghi lại thời gian và một thông báo mỗi khi chương trình chạy. Bạn cần đảm bảo các thông báo mới được thêm vào cuối tệp mà không xóa các thông báo cũ. Đoạn mã nào sau đây thực hiện đúng điều này?

29 / 30

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

Tags: Bộ đề 07

Câu 29: Khi áp dụng tìm kiếm nhị phân trên một danh sách có `n` phần tử, độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?

30 / 30

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

Tags: Bộ đề 07

Câu 30: Bạn đang xây dựng một hệ thống tra cứu thông tin sản phẩm từ tệp dữ liệu. Tệp này chứa ID sản phẩm và tên sản phẩm trên mỗi dòng, cách nhau bởi dấu tab (`t`). Bạn cần đọc tệp này và cho phép người dùng tìm kiếm sản phẩm theo ID. Cấu trúc dữ liệu nào trong Python là phù hợp nhất để lưu trữ dữ liệu từ tệp nhằm hỗ trợ việc tìm kiếm nhanh theo ID?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 08 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Một tệp văn bản `data.txt` chứa danh sách tên học sinh, mỗi tên trên một dòng. Đoạn mã Python nào sau đây đọc tất cả các tên từ tệp này vào một danh sách có tên `danh_sach_ten`?

  • A. f = open("data.txt", "w")
    danh_sach_ten = f.readlines()
    f.close()
  • B. with open("data.txt", "r") as f:
    danh_sach_ten = f.read()
  • C. f = open("data.txt", "a")
    danh_sach_ten = f.readline()
    f.close()
  • D. with open("data.txt", "r") as f:
    danh_sach_ten = [line.strip() for line in f.readlines()]

Câu 2: Giả sử tệp `diem_thi.txt` có cấu trúc mỗi dòng là "Tên_Hoc_Sinh Điểm", ví dụ: "An 8.5". Để đọc dữ liệu này và lưu vào hai danh sách riêng biệt `ten_hs` và `diem_hs`, đoạn mã nào sau đây là phù hợp nhất?

  • A. ten_hs = []; diem_hs = []
    with open("diem_thi.txt", "r") as f:
    for line in f:
    data = line.split()
    ten_hs.append(data[0])
    diem_hs.append(data[1])
  • B. ten_hs = []; diem_hs = []
    with open("diem_thi.txt", "r") as f:
    for line in f.readlines():
    ten_hs.append(line[:3])
    diem_hs.append(line[4:])
  • C. ten_hs = []; diem_hs = []
    with open("diem_thi.txt", "r") as f:
    for line in f:
    data = line.strip().split()
    if len(data) == 2:
    ten_hs.append(data[0])
    diem_hs.append(float(data[1]))
  • D. ten_hs = []; diem_hs = []
    f = open("diem_thi.txt", "r")
    lines = f.read().split("n")
    for line in lines:
    data = line.split(" ")
    ten_hs.append(data[0])
    diem_hs.append(data[1])
    f.close()

Câu 3: Khi sử dụng thuật toán tìm kiếm tuần tự để tìm một phần tử trong danh sách gồm N phần tử, trường hợp nào sau đây thuật toán cần số lần so sánh ÍT NHẤT?

  • A. Phần tử cần tìm là phần tử đầu tiên của danh sách.
  • B. Phần tử cần tìm là phần tử cuối cùng của danh sách.
  • C. Phần tử cần tìm nằm ở vị trí chính giữa danh sách.
  • D. Phần tử cần tìm không có trong danh sách.

Câu 4: Thuật toán tìm kiếm nhị phân KHÔNG thể áp dụng trực tiếp trên loại dữ liệu nào sau đây?

  • A. Một danh sách các số nguyên đã được sắp xếp tăng dần.
  • B. Một danh sách các chuỗi ký tự chưa được sắp xếp theo thứ tự bảng chữ cái.
  • C. Một danh sách các đối tượng đã được sắp xếp dựa trên một thuộc tính nhất định.
  • D. Một mảng các giá trị boolean đã được sắp xếp.

Câu 5: Giả sử bạn có một tệp `sanpham.txt` chứa thông tin sản phẩm, mỗi dòng có cấu trúc `MaSP TenSP Gia`. Bạn muốn tìm kiếm thông tin của một sản phẩm dựa vào `MaSP` nhập từ bàn phím. Thuật toán tìm kiếm tuần tự sẽ hoạt động như thế nào trong trường hợp này?

  • A. Đọc từng dòng từ tệp, tách dữ liệu và so sánh `MaSP` ở đầu dòng với `MaSP` cần tìm cho đến khi tìm thấy hoặc hết tệp.
  • B. Đọc toàn bộ tệp vào bộ nhớ, sắp xếp danh sách theo `MaSP`, sau đó áp dụng tìm kiếm nhị phân.
  • C. Đọc dòng đầu tiên, dòng cuối cùng và dòng giữa tệp để xác định vị trí gần đúng của `MaSP` cần tìm.
  • D. Chỉ đọc các dòng có `MaSP` bắt đầu bằng ký tự giống với `MaSP` cần tìm.

Câu 6: Cho danh sách đã sắp xếp tăng dần: `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]`. Khi áp dụng tìm kiếm nhị phân để tìm giá trị 23, phần tử nào sẽ được kiểm tra ở bước so sánh ĐẦU TIÊN?

  • A. 2
  • B. 91
  • C. 16
  • D. 23

Câu 7: Tiếp theo Câu 6, sau khi so sánh với phần tử ở bước đầu tiên (giá trị 16), thuật toán tìm kiếm nhị phân sẽ tiếp tục tìm kiếm ở nửa danh sách nào để tìm giá trị 23?

  • A. Nửa bên trái (các phần tử nhỏ hơn 16).
  • B. Nửa bên phải (các phần tử lớn hơn 16).
  • C. Toàn bộ danh sách ban đầu.
  • D. Kết thúc tìm kiếm vì 16 không phải 23.

Câu 8: Đoạn mã Python sau dùng để làm gì?
```python
with open("output.txt", "w", encoding="utf-8") as f:
f.write("Kết quả tìm kiếm:n")
```

  • A. Đọc dòng đầu tiên từ tệp `output.txt`.
  • B. Mở tệp `output.txt` để ghi, xóa nội dung cũ nếu có, và ghi chuỗi "Kết quả tìm kiếm:n" vào đó.
  • C. Mở tệp `output.txt` để ghi thêm vào cuối tệp.
  • D. Kiểm tra xem tệp `output.txt` có tồn tại hay không.

Câu 9: Lợi ích chính của việc sử dụng câu lệnh `with open(...) as f:` để làm việc với tệp trong Python là gì?

  • A. Tăng tốc độ đọc/ghi dữ liệu.
  • B. Tự động chuyển đổi kiểu dữ liệu khi đọc từ tệp.
  • C. Ngăn chặn việc ghi đè lên nội dung tệp cũ.
  • D. Đảm bảo tệp được tự động đóng ngay cả khi có lỗi xảy ra trong quá trình xử lý.

Câu 10: Trong bài toán thực hành tìm kiếm điểm thi, tại sao việc đọc toàn bộ dữ liệu từ tệp vào bộ nhớ (danh sách) trước khi tìm kiếm lại tiện lợi hơn so với việc đọc từng dòng và tìm kiếm trực tiếp trên tệp?

  • A. Cho phép áp dụng các thuật toán tìm kiếm hiệu quả hơn như tìm kiếm nhị phân (sau khi sắp xếp) và truy cập dữ liệu linh hoạt bằng chỉ số.
  • B. Giúp giảm dung lượng bộ nhớ cần thiết.
  • C. Đảm bảo dữ liệu trong tệp luôn được cập nhật.
  • D. Ngăn chặn lỗi khi tệp bị khóa bởi chương trình khác.

Câu 11: Bạn cần tìm kiếm thông tin của một học sinh trong tệp `hocsinh.txt` chứa hàng nghìn dòng dữ liệu, mỗi dòng là thông tin của một học sinh và đã được sắp xếp TĂNG DẦN theo tên. Thuật toán nào sau đây là lựa chọn TỐI ƯU nhất để tìm kiếm theo tên?

  • A. Tìm kiếm tuần tự trên tệp.
  • B. Đọc dữ liệu vào danh sách, sau đó áp dụng tìm kiếm nhị phân.
  • C. Tìm kiếm tuần tự trên danh sách sau khi đọc tệp.
  • D. Chỉ đọc 100 dòng đầu tiên và áp dụng tìm kiếm tuần tự.

Câu 12: Khi thực hiện tìm kiếm nhị phân trên một danh sách có 1000 phần tử, số lần so sánh TỐI ĐA cần thiết để tìm kiếm (hoặc xác định không tìm thấy) là khoảng bao nhiêu?

  • A. 1000
  • B. 500
  • C. 10 (log₂1000 ≈ 9.96)
  • D. 1

Câu 13: Giả sử bạn đọc một dòng từ tệp bằng `line = f.readline()`. Nếu dòng đó là " Nguyen Van A ", kết quả của `line.strip()` sẽ là gì?

  • A. "Nguyen Van A"
  • B. " Nguyen Van A"
  • C. "Nguyen Van A "
  • D. "NguyenVanA"

Câu 14: Trong bài toán tra cứu điểm thi, sau khi đọc dữ liệu tên và điểm vào hai danh sách `ten_hs` và `diem_hs`, làm thế nào để tìm điểm của học sinh "Binh" bằng tìm kiếm tuần tự?

  • A. Sử dụng tìm kiếm nhị phân trên danh sách `ten_hs`.
  • B. Duyệt qua danh sách `diem_hs` và tìm giá trị "Binh".
  • C. Gọi hàm `find("Binh", ten_hs)`.
  • D. Duyệt qua danh sách `ten_hs`, nếu tìm thấy "Binh" tại chỉ số `i`, in ra `diem_hs[i]`.

Câu 15: Đoạn mã sau đang cố gắng ghi dữ liệu vào tệp. Lỗi có thể xảy ra ở dòng nào?
```python
1. ten = ["An", "Binh"]
2. diem = [8.5, 7.0]
3. with open("ketqua.txt", "r") as f:
4. for i in range(len(ten)):
5. f.write(f"{ten[i]} {diem[i]}n")
```

  • A. Dòng 1
  • B. Dòng 2
  • C. Dòng 3 (chế độ mở tệp)
  • D. Dòng 5 (lệnh ghi tệp)

Câu 16: Để cải thiện hiệu suất tìm kiếm trên một tập dữ liệu lớn được lưu trong tệp, nếu dữ liệu không được sắp xếp, bước xử lý dữ liệu nào là cần thiết TRƯỚC KHI áp dụng tìm kiếm nhị phân?

  • A. Đọc dữ liệu vào bộ nhớ và sắp xếp nó theo tiêu chí tìm kiếm.
  • B. Chia tệp thành nhiều tệp nhỏ hơn.
  • C. Nén tệp dữ liệu.
  • D. Chuyển đổi dữ liệu sang định dạng nhị phân.

Câu 17: Khi tìm kiếm một giá trị X trong danh sách đã sắp xếp bằng tìm kiếm nhị phân, nếu giá trị tại vị trí giữa nhỏ hơn X, thì bạn biết chắc chắn rằng X (nếu tồn tại) sẽ nằm ở đâu?

  • A. Ở nửa đầu của danh sách (bao gồm cả vị trí giữa).
  • B. Ở nửa đầu của danh sách (không bao gồm vị trí giữa).
  • C. Ở nửa sau của danh sách (không bao gồm vị trí giữa).
  • D. Ở nửa sau của danh sách (bao gồm cả vị trí giữa).

Câu 18: Trong Python, phương thức `f.read()` khác gì so với `f.readline()` khi đọc từ tệp?

  • A. `f.read()` đọc toàn bộ nội dung tệp thành một chuỗi duy nhất; `f.readline()` đọc một dòng tại một thời điểm.
  • B. `f.read()` đọc một dòng; `f.readline()` đọc toàn bộ tệp.
  • C. `f.read()` trả về danh sách các dòng; `f.readline()` trả về một chuỗi.
  • D. `f.read()` chỉ dùng cho tệp nhị phân; `f.readline()` dùng cho tệp văn bản.

Câu 19: Giả sử tệp `du_lieu.txt` có nội dung:
```
Apple
Banana
Cherry
Date
```
Đoạn mã sau in ra gì?
```python
with open("du_lieu.txt", "r") as f:
lines = f.readlines()
print(lines[1])
```

  • A. Apple
  • B. Bananan
  • C. Cherry
  • D. [Applen, Bananan, Cherryn, Daten]

Câu 20: Khi thực hiện tìm kiếm tuần tự trên danh sách N phần tử, độ phức tạp thời gian (số phép so sánh trung bình) là bao nhiêu trong trường hợp TỐT NHẤT và TỆ NHẤT?

  • A. Tốt nhất: O(N), Tệ nhất: O(1)
  • B. Tốt nhất: O(log N), Tệ nhất: O(N)
  • C. Tốt nhất: O(1), Tệ nhất: O(N)
  • D. Tốt nhất: O(log N), Tệ nhất: O(log N)

Câu 21: Khi thực hiện tìm kiếm nhị phân trên danh sách N phần tử đã sắp xếp, độ phức tạp thời gian (số phép so sánh) là bao nhiêu trong trường hợp TỐT NHẤT và TỆ NHẤT?

  • A. Tốt nhất: O(1), Tệ nhất: O(log N)
  • B. Tốt nhất: O(log N), Tệ nhất: O(N)
  • C. Tốt nhất: O(1), Tệ nhất: O(N)
  • D. Tốt nhất: O(log N), Tệ nhất: O(log N)

Câu 22: Bạn đang xây dựng một chương trình tra cứu từ điển từ một tệp văn bản rất lớn. Tệp này chứa các từ và nghĩa của chúng, đã được sắp xếp theo thứ tự bảng chữ cái của từ. Phương pháp nào sau đây là hiệu quả nhất để tra cứu nghĩa của một từ cụ thể?

  • A. Đọc toàn bộ tệp và sử dụng tìm kiếm tuần tự.
  • B. Đọc toàn bộ tệp vào danh sách các cặp (từ, nghĩa), sau đó sử dụng tìm kiếm nhị phân trên danh sách này dựa vào từ.
  • C. Đọc từng dòng từ tệp và sử dụng tìm kiếm tuần tự.
  • D. Chỉ đọc 100 dòng đầu tiên và tìm kiếm.

Câu 23: Trong Python, khi mở tệp bằng `open("data.txt", "w")`, điều gì xảy ra nếu tệp `data.txt` đã tồn tại và có nội dung?

  • A. Chương trình báo lỗi.
  • B. Nội dung mới sẽ được ghi thêm vào cuối tệp.
  • C. Nội dung cũ của tệp sẽ bị xóa và con trỏ ghi sẽ ở đầu tệp.
  • D. Tệp sẽ được mở chỉ để đọc.

Câu 24: Để tìm kiếm một giá trị trong danh sách CHƯA được sắp xếp, thuật toán tìm kiếm nhị phân có thể áp dụng trực tiếp không? Tại sao?

  • A. Có, vì tìm kiếm nhị phân chỉ cần truy cập ngẫu nhiên.
  • B. Có, nhưng hiệu quả sẽ tương đương tìm kiếm tuần tự.
  • C. Không, vì tìm kiếm nhị phân yêu cầu dữ liệu phải là số nguyên.
  • D. Không, vì tìm kiếm nhị phân dựa vào tính chất đã sắp xếp để loại bỏ một nửa danh sách sau mỗi lần so sánh.

Câu 25: Đoạn mã sau dùng để làm gì?
```python
keyword = input("Nhập tên cần tìm: ")
found = False
for name in danh_sach_ten:
if name == keyword:
print("Tìm thấy tên trong danh sách.")
found = True
break
if not found:
print("Không tìm thấy tên trong danh sách.")
```

  • A. Thực hiện tìm kiếm tuần tự một từ khóa trong danh sách `danh_sach_ten`.
  • B. Thực hiện tìm kiếm nhị phân một từ khóa trong danh sách `danh_sach_ten`.
  • C. Đọc dữ liệu từ tệp vào danh sách `danh_sach_ten`.
  • D. Ghi kết quả tìm kiếm vào tệp.

Câu 26: Trong bài toán tra cứu điểm thi, nếu tệp dữ liệu `diem_thi.txt` rất lớn và bạn cần thực hiện nhiều lần tra cứu tên học sinh, phương pháp nào sau đây sẽ cho tốc độ tra cứu nhanh nhất (giả sử dữ liệu đã được đọc vào bộ nhớ)?

  • A. Sử dụng tìm kiếm tuần tự trên danh sách tên.
  • B. Sử dụng tìm kiếm tuần tự trên tệp.
  • C. Sắp xếp danh sách tên và điểm tương ứng, sau đó sử dụng tìm kiếm nhị phân.
  • D. Chỉ lưu trữ 100 tên và điểm đầu tiên và tìm kiếm trên đó.

Câu 27: Giả sử bạn có danh sách `["A", "B", "C", "D", "E", "F"]`. Khi tìm kiếm nhị phân giá trị "G", thuật toán sẽ thực hiện các bước so sánh với các phần tử nào trước khi kết luận không tìm thấy?

  • A. "A", "B", "C", "D", "E", "F"
  • B. "A", "F", "C"
  • C. "C", "F", "E"
  • D. "C", "E", "F"

Câu 28: Chế độ mở tệp "a" trong hàm `open()` của Python có ý nghĩa gì?

  • A. Mở tệp để ghi thêm dữ liệu vào cuối tệp. Nếu tệp không tồn tại, tệp mới sẽ được tạo.
  • B. Mở tệp để đọc và ghi từ đầu tệp.
  • C. Mở tệp chỉ để đọc.
  • D. Mở tệp để ghi và xóa nội dung cũ nếu có.

Câu 29: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi phần tử trong danh sách trả về thường chứa ký tự đặc biệt nào ở cuối (trừ dòng cuối cùng của tệp)?

  • A. `t` (ký tự tab)
  • B. `n` (ký tự xuống dòng)
  • C. `r` (ký tự quay lại đầu dòng)
  • D. Khoảng trắng

Câu 30: Giả sử bạn có danh sách `["cam", "quyt", "buoi", "chanh"]`. Để áp dụng tìm kiếm nhị phân trên danh sách này, bước chuẩn bị cần thiết đầu tiên là gì?

  • A. Sắp xếp danh sách theo thứ tự bảng chữ cái.
  • B. Chuyển đổi các phần tử sang chữ in hoa.
  • C. Đếm số lượng phần tử trong danh sách.
  • D. Loại bỏ các phần tử trùng lặp.

1 / 30

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

Tags: Bộ đề 08

Câu 1: Một tệp văn bản `data.txt` chứa danh sách tên học sinh, mỗi tên trên một dòng. Đoạn mã Python nào sau đây đọc tất cả các tên từ tệp này vào một danh sách có tên `danh_sach_ten`?

2 / 30

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

Tags: Bộ đề 08

Câu 2: Giả sử tệp `diem_thi.txt` có cấu trúc mỗi dòng là 'Tên_Hoc_Sinh Điểm', ví dụ: 'An 8.5'. Để đọc dữ liệu này và lưu vào hai danh sách riêng biệt `ten_hs` và `diem_hs`, đoạn mã nào sau đây là phù hợp nhất?

3 / 30

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

Tags: Bộ đề 08

Câu 3: Khi sử dụng thuật toán tìm kiếm tuần tự để tìm một phần tử trong danh sách gồm N phần tử, trường hợp nào sau đây thuật toán cần số lần so sánh ÍT NHẤT?

4 / 30

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

Tags: Bộ đề 08

Câu 4: Thuật toán tìm kiếm nhị phân KHÔNG thể áp dụng trực tiếp trên loại dữ liệu nào sau đây?

5 / 30

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

Tags: Bộ đề 08

Câu 5: Giả sử bạn có một tệp `sanpham.txt` chứa thông tin sản phẩm, mỗi dòng có cấu trúc `MaSP TenSP Gia`. Bạn muốn tìm kiếm thông tin của một sản phẩm dựa vào `MaSP` nhập từ bàn phím. Thuật toán tìm kiếm tuần tự sẽ hoạt động như thế nào trong trường hợp này?

6 / 30

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

Tags: Bộ đề 08

Câu 6: Cho danh sách đã sắp xếp tăng dần: `[2, 5, 8, 12, 16, 23, 38, 56, 72, 91]`. Khi áp dụng tìm kiếm nhị phân để tìm giá trị 23, phần tử nào sẽ được kiểm tra ở bước so sánh ĐẦU TIÊN?

7 / 30

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

Tags: Bộ đề 08

Câu 7: Tiếp theo Câu 6, sau khi so sánh với phần tử ở bước đầu tiên (giá trị 16), thuật toán tìm kiếm nhị phân sẽ tiếp tục tìm kiếm ở nửa danh sách nào để tìm giá trị 23?

8 / 30

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

Tags: Bộ đề 08

Câu 8: Đoạn mã Python sau dùng để làm gì?
```python
with open('output.txt', 'w', encoding='utf-8') as f:
f.write('Kết quả tìm kiếm:n')
```

9 / 30

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

Tags: Bộ đề 08

Câu 9: Lợi ích chính của việc sử dụng câu lệnh `with open(...) as f:` để làm việc với tệp trong Python là gì?

10 / 30

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

Tags: Bộ đề 08

Câu 10: Trong bài toán thực hành tìm kiếm điểm thi, tại sao việc đọc toàn bộ dữ liệu từ tệp vào bộ nhớ (danh sách) trước khi tìm kiếm lại tiện lợi hơn so với việc đọc từng dòng và tìm kiếm trực tiếp trên tệp?

11 / 30

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

Tags: Bộ đề 08

Câu 11: Bạn cần tìm kiếm thông tin của một học sinh trong tệp `hocsinh.txt` chứa hàng nghìn dòng dữ liệu, mỗi dòng là thông tin của một học sinh và đã được sắp xếp TĂNG DẦN theo tên. Thuật toán nào sau đây là lựa chọn TỐI ƯU nhất để tìm kiếm theo tên?

12 / 30

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

Tags: Bộ đề 08

Câu 12: Khi thực hiện tìm kiếm nhị phân trên một danh sách có 1000 phần tử, số lần so sánh TỐI ĐA cần thiết để tìm kiếm (hoặc xác định không tìm thấy) là khoảng bao nhiêu?

13 / 30

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

Tags: Bộ đề 08

Câu 13: Giả sử bạn đọc một dòng từ tệp bằng `line = f.readline()`. Nếu dòng đó là ' Nguyen Van A ', kết quả của `line.strip()` sẽ là gì?

14 / 30

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

Tags: Bộ đề 08

Câu 14: Trong bài toán tra cứu điểm thi, sau khi đọc dữ liệu tên và điểm vào hai danh sách `ten_hs` và `diem_hs`, làm thế nào để tìm điểm của học sinh 'Binh' bằng tìm kiếm tuần tự?

15 / 30

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

Tags: Bộ đề 08

Câu 15: Đoạn mã sau đang cố gắng ghi dữ liệu vào tệp. Lỗi có thể xảy ra ở dòng nào?
```python
1. ten = ['An', 'Binh']
2. diem = [8.5, 7.0]
3. with open('ketqua.txt', 'r') as f:
4. for i in range(len(ten)):
5. f.write(f'{ten[i]} {diem[i]}n')
```

16 / 30

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

Tags: Bộ đề 08

Câu 16: Để cải thiện hiệu suất tìm kiếm trên một tập dữ liệu lớn được lưu trong tệp, nếu dữ liệu không được sắp xếp, bước xử lý dữ liệu nào là cần thiết TRƯỚC KHI áp dụng tìm kiếm nhị phân?

17 / 30

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

Tags: Bộ đề 08

Câu 17: Khi tìm kiếm một giá trị X trong danh sách đã sắp xếp bằng tìm kiếm nhị phân, nếu giá trị tại vị trí giữa nhỏ hơn X, thì bạn biết chắc chắn rằng X (nếu tồn tại) sẽ nằm ở đâu?

18 / 30

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

Tags: Bộ đề 08

Câu 18: Trong Python, phương thức `f.read()` khác gì so với `f.readline()` khi đọc từ tệp?

19 / 30

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

Tags: Bộ đề 08

Câu 19: Giả sử tệp `du_lieu.txt` có nội dung:
```
Apple
Banana
Cherry
Date
```
Đoạn mã sau in ra gì?
```python
with open('du_lieu.txt', 'r') as f:
lines = f.readlines()
print(lines[1])
```

20 / 30

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

Tags: Bộ đề 08

Câu 20: Khi thực hiện tìm kiếm tuần tự trên danh sách N phần tử, độ phức tạp thời gian (số phép so sánh trung bình) là bao nhiêu trong trường hợp TỐT NHẤT và TỆ NHẤT?

21 / 30

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

Tags: Bộ đề 08

Câu 21: Khi thực hiện tìm kiếm nhị phân trên danh sách N phần tử đã sắp xếp, độ phức tạp thời gian (số phép so sánh) là bao nhiêu trong trường hợp TỐT NHẤT và TỆ NHẤT?

22 / 30

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

Tags: Bộ đề 08

Câu 22: Bạn đang xây dựng một chương trình tra cứu từ điển từ một tệp văn bản rất lớn. Tệp này chứa các từ và nghĩa của chúng, đã được sắp xếp theo thứ tự bảng chữ cái của từ. Phương pháp nào sau đây là hiệu quả nhất để tra cứu nghĩa của một từ cụ thể?

23 / 30

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

Tags: Bộ đề 08

Câu 23: Trong Python, khi mở tệp bằng `open('data.txt', 'w')`, điều gì xảy ra nếu tệp `data.txt` đã tồn tại và có nội dung?

24 / 30

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

Tags: Bộ đề 08

Câu 24: Để tìm kiếm một giá trị trong danh sách CHƯA được sắp xếp, thuật toán tìm kiếm nhị phân có thể áp dụng trực tiếp không? Tại sao?

25 / 30

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

Tags: Bộ đề 08

Câu 25: Đoạn mã sau dùng để làm gì?
```python
keyword = input('Nhập tên cần tìm: ')
found = False
for name in danh_sach_ten:
if name == keyword:
print('Tìm thấy tên trong danh sách.')
found = True
break
if not found:
print('Không tìm thấy tên trong danh sách.')
```

26 / 30

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

Tags: Bộ đề 08

Câu 26: Trong bài toán tra cứu điểm thi, nếu tệp dữ liệu `diem_thi.txt` rất lớn và bạn cần thực hiện nhiều lần tra cứu tên học sinh, phương pháp nào sau đây sẽ cho tốc độ tra cứu nhanh nhất (giả sử dữ liệu đã được đọc vào bộ nhớ)?

27 / 30

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

Tags: Bộ đề 08

Câu 27: Giả sử bạn có danh sách `['A', 'B', 'C', 'D', 'E', 'F']`. Khi tìm kiếm nhị phân giá trị 'G', thuật toán sẽ thực hiện các bước so sánh với các phần tử nào trước khi kết luận không tìm thấy?

28 / 30

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

Tags: Bộ đề 08

Câu 28: Chế độ mở tệp 'a' trong hàm `open()` của Python có ý nghĩa gì?

29 / 30

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

Tags: Bộ đề 08

Câu 29: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi phần tử trong danh sách trả về thường chứa ký tự đặc biệt nào ở cuối (trừ dòng cuối cùng của tệp)?

30 / 30

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

Tags: Bộ đề 08

Câu 30: Giả sử bạn có danh sách `['cam', 'quyt', 'buoi', 'chanh']`. Để áp dụng tìm kiếm nhị phân trên danh sách này, bước chuẩn bị cần thiết đầu tiên là gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 09 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi làm việc với tệp văn bản trong Python để chuẩn bị dữ liệu cho bài toán tìm kiếm, chế độ mở tệp nào cho phép bạn đọc nội dung hiện có mà không làm thay đổi tệp?

  • A. "w"
  • B. "a"
  • C. "r"
  • D. "x"

Câu 2: Giả sử bạn có một tệp văn bản `hocsinh.txt` chứa danh sách học sinh, mỗi dòng gồm Tên và Điểm, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A,8.5`). Đoạn mã Python nào sau đây đọc từng dòng từ tệp này và tách Tên, Điểm thành hai biến riêng biệt?

  • A. with open("hocsinh.txt", "r") as f:
    data = f.read()
    ten, diem = data.split(",")
  • B. with open("hocsinh.txt", "r") as f:
    for line in f:
    ten, diem = line.strip().split(",")
    # Xử lý ten và diem
  • C. with open("hocsinh.txt", "r") as f:
    lines = f.readlines()
    ten, diem = lines[0].split(",")
  • D. f = open("hocsinh.txt", "r")
    line = f.readline().split(",")
    ten = line[0]
    diem = line[1]
    f.close()

Câu 3: Thuật toán tìm kiếm tuần tự hoạt động dựa trên nguyên tắc nào để tìm kiếm một phần tử trong danh sách?

  • A. Chia danh sách thành hai nửa và chỉ tìm kiếm trong nửa chứa phần tử cần tìm.
  • B. So sánh phần tử cần tìm với phần tử ở giữa danh sách.
  • C. Ước lượng vị trí của phần tử cần tìm dựa trên giá trị của nó.
  • D. Duyệt qua từng phần tử của danh sách từ đầu đến cuối cho đến khi tìm thấy hoặc hết danh sách.

Câu 4: Thuật toán tìm kiếm nhị phân yêu cầu dữ liệu đầu vào phải có đặc điểm gì để hoạt động hiệu quả nhất?

  • A. Dữ liệu đã được sắp xếp theo một thứ tự nhất định (tăng dần hoặc giảm dần).
  • B. Dữ liệu chỉ chứa các số nguyên dương.
  • C. Dữ liệu có kích thước nhỏ.
  • D. Dữ liệu được lưu trữ trong tệp văn bản.

Câu 5: Cho danh sách `[12, 5, 8, 20, 3, 15]`. Để tìm kiếm giá trị `8` bằng thuật toán tìm kiếm tuần tự, chương trình sẽ thực hiện bao nhiêu phép so sánh giá trị tối thiểu (so sánh phần tử hiện tại với giá trị cần tìm)?

  • A. 1
  • B. 3
  • C. 4
  • D. 6

Câu 6: Cho danh sách đã sắp xếp `[3, 8, 12, 15, 20, 25]`. Để tìm kiếm giá trị `20` bằng thuật toán tìm kiếm nhị phân, các phần tử nào sẽ được so sánh với `20` theo thứ tự?

  • A. 12, 8, 20
  • B. 25, 15, 20
  • C. 15, 20
  • D. 12, 20

Câu 7: Trong Python, câu lệnh `f.close()` có vai trò gì khi làm việc với tệp?

  • A. Đóng tệp, giải phóng tài nguyên hệ thống và đảm bảo dữ liệu đã ghi được lưu vào đĩa.
  • B. Xóa nội dung của tệp được mở.
  • C. Di chuyển con trỏ đọc/ghi về đầu tệp.
  • D. Kiểm tra xem tệp có tồn tại hay không.

Câu 8: Khi đọc dữ liệu từ tệp bằng phương thức `f.readlines()`, kết quả trả về là gì?

  • A. Một chuỗi duy nhất chứa toàn bộ nội dung tệp.
  • B. Một danh sách các ký tự trong tệp.
  • C. Số lượng dòng trong tệp.
  • D. Một danh sách, trong đó mỗi phần tử là một chuỗi tương ứng với một dòng trong tệp (bao gồm ký tự xuống dòng).

Câu 9: Xét đoạn mã Python sau:
```python
data = ["apple", "banana", "cherry", "date"]
def sequential_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1

result = sequential_search(data, "grape")
print(result)
```
Kết quả in ra màn hình sẽ là gì?

  • A. -1
  • B. 0
  • C. 3
  • D. None

Câu 10: Thuật toán tìm kiếm nào có độ phức tạp thời gian trung bình và tốt nhất là O(log n), trong đó n là số phần tử trong danh sách?

  • A. Tìm kiếm tuần tự
  • B. Tìm kiếm nhị phân
  • C. Tìm kiếm theo chiều sâu (DFS)
  • D. Tìm kiếm theo chiều rộng (BFS)

Câu 11: Khi triển khai bài toán tra cứu thông tin học sinh từ tệp, nếu tệp dữ liệu rất lớn và dữ liệu đã được sắp xếp theo tên, thuật toán nào sẽ cho tốc độ tra cứu nhanh hơn?

  • A. Tìm kiếm nhị phân
  • B. Tìm kiếm tuần tự
  • C. Cả hai thuật toán có tốc độ như nhau trên dữ liệu lớn.
  • D. Tốc độ phụ thuộc vào cấu trúc tệp chứ không phải thuật toán.

Câu 12: Để xử lý một dòng đọc từ tệp như ` Nguyen Van A , 8.5 n`, bạn muốn loại bỏ khoảng trắng thừa ở hai đầu và ký tự xuống dòng, sau đó tách chuỗi thành `["Nguyen Van A", "8.5"]`. Phương pháp kết hợp các phương thức chuỗi nào sau đây là phù hợp?

  • A. `line.split(",").strip()`
  • B. `line.strip().split(" , ")`
  • C. `line.strip().split(",")`
  • D. `line.split(",").rstrip()`

Câu 13: Trong bài toán tìm kiếm, nếu phần tử cần tìm không có trong danh sách, thuật toán tìm kiếm tuần tự sẽ kết thúc khi nào?

  • A. Ngay khi tìm thấy phần tử đầu tiên lớn hơn phần tử cần tìm.
  • B. Khi đã duyệt qua tất cả các phần tử trong danh sách mà không tìm thấy.
  • C. Khi con trỏ tìm kiếm gặp phần tử ở giữa danh sách.
  • D. Khi gặp một phần tử nhỏ hơn phần tử cần tìm.

Câu 14: Khi thực hiện tìm kiếm nhị phân trên danh sách `[10, 20, 30, 40, 50]` để tìm giá trị `35`, thuật toán sẽ kết thúc và trả về kết quả không tìm thấy sau bao nhiêu bước so sánh giá trị (so sánh phần tử ở giữa với 35)?

  • A. 1
  • B. 2
  • C. 3
  • D. 4

Câu 15: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten_hs` và `diem_hs` tương ứng. Để tìm điểm của học sinh có tên `Le Thi C` bằng tìm kiếm tuần tự, bạn cần lặp qua danh sách `ten_hs`. Nếu tìm thấy tên `Le Thi C` tại chỉ số `i`, điểm của học sinh đó sẽ là gì?

  • A. `ten_hs[i]`
  • B. `diem_hs[0]`
  • C. `diem_hs[i]`
  • D. Không thể truy cập điểm chỉ với chỉ số `i` từ danh sách tên.

Câu 16: Ưu điểm chính của thuật toán tìm kiếm nhị phân so với tìm kiếm tuần tự khi áp dụng trên dữ liệu đã sắp xếp là gì?

  • A. Đơn giản để cài đặt.
  • B. Tốc độ tìm kiếm nhanh hơn đáng kể trên tập dữ liệu lớn.
  • C. Không yêu cầu dữ liệu phải được sắp xếp.
  • D. Sử dụng ít bộ nhớ hơn.

Câu 17: Trong Python, cú pháp `with open(...) as f:` được khuyến khích sử dụng khi làm việc với tệp vì nó đảm bảo điều gì?

  • A. Tệp chỉ được mở ở chế độ đọc.
  • B. Dữ liệu luôn được ghi thành công vào tệp.
  • C. Chương trình sẽ chạy nhanh hơn.
  • D. Tệp sẽ tự động được đóng ngay cả khi có lỗi xảy ra trong quá trình xử lý.

Câu 18: Xét một tệp `numbers.txt` chứa các số nguyên, mỗi số trên một dòng. Đoạn mã nào sau đây đọc các số từ tệp này và lưu chúng vào một danh sách các số nguyên?

  • A. numbers = []
    with open("numbers.txt", "r") as f:
    for line in f:
    numbers.append(line)
  • B. numbers = []
    with open("numbers.txt", "r") as f:
    numbers = f.readlines()
  • C. numbers = []
    with open("numbers.txt", "r") as f:
    for line in f:
    numbers.append(int(line.strip()))
  • D. numbers = [int(line) for line in open("numbers.txt", "r")]

Câu 19: Khi thực hiện tìm kiếm nhị phân, nếu giá trị cần tìm nhỏ hơn giá trị tại vị trí giữa của danh sách, bước tiếp theo của thuật toán là gì?

  • A. Tiếp tục tìm kiếm trong nửa bên trái của danh sách.
  • B. Tiếp tục tìm kiếm trong nửa bên phải của danh sách.
  • C. Kết thúc tìm kiếm và thông báo không tìm thấy.
  • D. Kiểm tra phần tử đầu tiên của danh sách.

Câu 20: Điều gì xảy ra nếu bạn cố gắng mở một tệp không tồn tại bằng chế độ `"r"` trong Python?

  • A. Tệp rỗng mới sẽ được tạo ra.
  • B. Một lỗi `FileNotFoundError` sẽ xảy ra.
  • C. Chương trình sẽ tạm dừng và chờ bạn tạo tệp.
  • D. Một cảnh báo sẽ hiển thị nhưng chương trình vẫn tiếp tục chạy.

Câu 21: Trong bài toán tìm kiếm tên học sinh và điểm của họ từ một tệp, tại sao việc lưu trữ dữ liệu vào danh sách (ví dụ: hai danh sách `ten_hs` và `diem_hs`) trước khi tìm kiếm lại có lợi hơn so với việc đọc và tìm kiếm trực tiếp trên tệp mỗi lần người dùng nhập tên?

  • A. Dữ liệu trong danh sách luôn được sắp xếp tự động.
  • B. Tìm kiếm trên tệp nhanh hơn tìm kiếm trên danh sách.
  • C. Tránh việc phải mở và đọc lại tệp nhiều lần cho mỗi yêu cầu tìm kiếm, giúp tăng hiệu quả xử lý.
  • D. Chỉ có thể thực hiện tìm kiếm nhị phân trên dữ liệu trong danh sách.

Câu 22: Xét đoạn mã tìm kiếm nhị phân sau trên danh sách đã sắp xếp `arr`:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 ``` Nếu `arr = [5, 12, 18, 25, 30]` và `target = 18`, giá trị của `mid` trong các lần lặp của vòng lặp `while` sẽ là bao nhiêu?

  • A. 2
  • B. 2, 0
  • C. 2, 4
  • D. 0, 2, 4

Câu 23: Giả sử bạn cần lưu kết quả tìm kiếm (ví dụ: tên học sinh và điểm) vào một tệp mới `ketqua.txt`. Chế độ mở tệp nào bạn nên sử dụng để đảm bảo mỗi lần chạy chương trình, tệp `ketqua.txt` sẽ được tạo mới hoặc ghi đè lên nội dung cũ?

  • A. "w"
  • B. "a"
  • C. "r"
  • D. "x"

Câu 24: Sự khác biệt chính giữa tìm kiếm tuần tự và tìm kiếm nhị phân nằm ở đâu?

  • A. Khả năng tìm thấy nhiều hơn một lần xuất hiện của phần tử.
  • B. Loại dữ liệu mà chúng có thể tìm kiếm (số, chuỗi).
  • C. Mức độ phức tạp của mã nguồn.
  • D. Yêu cầu về trạng thái sắp xếp của dữ liệu đầu vào và cách chúng giảm phạm vi tìm kiếm.

Câu 25: Trong kịch bản tìm kiếm thông tin học sinh theo tên từ tệp, nếu người dùng nhập một tên không có trong danh sách, chương trình nên xử lý như thế nào để cung cấp phản hồi rõ ràng?

  • A. Thoát chương trình với lỗi.
  • B. In ra điểm của học sinh đầu tiên trong danh sách.
  • C. Thông báo cho người dùng biết rằng tên học sinh không được tìm thấy.
  • D. Tự động thêm tên học sinh đó vào danh sách.

Câu 26: Khi sử dụng phương thức `print()` để ghi dữ liệu vào tệp thay vì in ra màn hình, bạn cần sử dụng tham số nào?

  • A. `output`
  • B. `file`
  • C. `destination`
  • D. `target`

Câu 27: Giả sử tệp `data.txt` có nội dung:
```
Apple
Banana
Cherry
```
Đoạn mã Python sau:
```python
with open("data.txt", "r") as f:
lines = f.readlines()
print(len(lines))
```
Sẽ in ra kết quả gì?

  • A. 1
  • B. 2
  • C. 3
  • D. Chỉ in ra ký tự xuống dòng

Câu 28: Trong tìm kiếm nhị phân, biến `mid` thường được tính bằng công thức `(low + high) // 2`. Nếu `low = 0` và `high = 9`, giá trị của `mid` sẽ là bao nhiêu?

  • A. 4.5
  • B. 4
  • C. 5
  • D. 9

Câu 29: Khi so sánh hiệu quả của tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có N phần tử đã sắp xếp, trong trường hợp xấu nhất (phần tử cần tìm ở cuối danh sách hoặc không có), số phép so sánh gần đúng của mỗi thuật toán là bao nhiêu?

  • A. Tuần tự: N; Nhị phân: log₂(N)
  • B. Tuần tự: N/2; Nhị phân: N
  • C. Tuần tự: log₂(N); Nhị phân: N
  • D. Tuần tự: N²; Nhị phân: N

Câu 30: Giả sử bạn đang xây dựng chương trình tra cứu điểm học sinh từ tệp. Bạn muốn chương trình dừng lại khi người dùng nhập một từ khóa đặc biệt, ví dụ "thoat". Cấu trúc điều khiển nào trong Python thường được sử dụng để lặp lại việc nhận đầu vào và tìm kiếm cho đến khi từ khóa dừng được nhập?

  • A. Câu lệnh `if-elif-else`
  • B. Vòng lặp `for`
  • C. Hàm đệ quy
  • D. Vòng lặp `while` với một điều kiện kiểm tra từ khóa dừng

1 / 30

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

Tags: Bộ đề 09

Câu 1: Khi làm việc với tệp văn bản trong Python để chuẩn bị dữ liệu cho bài toán tìm kiếm, chế độ mở tệp nào cho phép bạn đọc nội dung hiện có mà không làm thay đổi tệp?

2 / 30

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

Tags: Bộ đề 09

Câu 2: Giả sử bạn có một tệp văn bản `hocsinh.txt` chứa danh sách học sinh, mỗi dòng gồm Tên và Điểm, cách nhau bởi dấu phẩy (ví dụ: `Nguyen Van A,8.5`). Đoạn mã Python nào sau đây đọc từng dòng từ tệp này và tách Tên, Điểm thành hai biến riêng biệt?

3 / 30

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

Tags: Bộ đề 09

Câu 3: Thuật toán tìm kiếm tuần tự hoạt động dựa trên nguyên tắc nào để tìm kiếm một phần tử trong danh sách?

4 / 30

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

Tags: Bộ đề 09

Câu 4: Thuật toán tìm kiếm nhị phân yêu cầu dữ liệu đầu vào phải có đặc điểm gì để hoạt động hiệu quả nhất?

5 / 30

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

Tags: Bộ đề 09

Câu 5: Cho danh sách `[12, 5, 8, 20, 3, 15]`. Để tìm kiếm giá trị `8` bằng thuật toán tìm kiếm tuần tự, chương trình sẽ thực hiện bao nhiêu phép so sánh giá trị tối thiểu (so sánh phần tử hiện tại với giá trị cần tìm)?

6 / 30

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

Tags: Bộ đề 09

Câu 6: Cho danh sách đã sắp xếp `[3, 8, 12, 15, 20, 25]`. Để tìm kiếm giá trị `20` bằng thuật toán tìm kiếm nhị phân, các phần tử nào sẽ được so sánh với `20` theo thứ tự?

7 / 30

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

Tags: Bộ đề 09

Câu 7: Trong Python, câu lệnh `f.close()` có vai trò gì khi làm việc với tệp?

8 / 30

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

Tags: Bộ đề 09

Câu 8: Khi đọc dữ liệu từ tệp bằng phương thức `f.readlines()`, kết quả trả về là gì?

9 / 30

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

Tags: Bộ đề 09

Câu 9: Xét đoạn mã Python sau:
```python
data = ['apple', 'banana', 'cherry', 'date']
def sequential_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1

result = sequential_search(data, 'grape')
print(result)
```
Kết quả in ra màn hình sẽ là gì?

10 / 30

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

Tags: Bộ đề 09

Câu 10: Thuật toán tìm kiếm nào có độ phức tạp thời gian trung bình và tốt nhất là O(log n), trong đó n là số phần tử trong danh sách?

11 / 30

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

Tags: Bộ đề 09

Câu 11: Khi triển khai bài toán tra cứu thông tin học sinh từ tệp, nếu tệp dữ liệu rất lớn và dữ liệu đã được sắp xếp theo tên, thuật toán nào sẽ cho tốc độ tra cứu nhanh hơn?

12 / 30

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

Tags: Bộ đề 09

Câu 12: Để xử lý một dòng đọc từ tệp như ` Nguyen Van A , 8.5 n`, bạn muốn loại bỏ khoảng trắng thừa ở hai đầu và ký tự xuống dòng, sau đó tách chuỗi thành `['Nguyen Van A', '8.5']`. Phương pháp kết hợp các phương thức chuỗi nào sau đây là phù hợp?

13 / 30

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

Tags: Bộ đề 09

Câu 13: Trong bài toán tìm kiếm, nếu phần tử cần tìm không có trong danh sách, thuật toán tìm kiếm tuần tự sẽ kết thúc khi nào?

14 / 30

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

Tags: Bộ đề 09

Câu 14: Khi thực hiện tìm kiếm nhị phân trên danh sách `[10, 20, 30, 40, 50]` để tìm giá trị `35`, thuật toán sẽ kết thúc và trả về kết quả không tìm thấy sau bao nhiêu bước so sánh giá trị (so sánh phần tử ở giữa với 35)?

15 / 30

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

Tags: Bộ đề 09

Câu 15: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten_hs` và `diem_hs` tương ứng. Để tìm điểm của học sinh có tên `Le Thi C` bằng tìm kiếm tuần tự, bạn cần lặp qua danh sách `ten_hs`. Nếu tìm thấy tên `Le Thi C` tại chỉ số `i`, điểm của học sinh đó sẽ là gì?

16 / 30

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

Tags: Bộ đề 09

Câu 16: Ưu điểm chính của thuật toán tìm kiếm nhị phân so với tìm kiếm tuần tự khi áp dụng trên dữ liệu đã sắp xếp là gì?

17 / 30

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

Tags: Bộ đề 09

Câu 17: Trong Python, cú pháp `with open(...) as f:` được khuyến khích sử dụng khi làm việc với tệp vì nó đảm bảo điều gì?

18 / 30

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

Tags: Bộ đề 09

Câu 18: Xét một tệp `numbers.txt` chứa các số nguyên, mỗi số trên một dòng. Đoạn mã nào sau đây đọc các số từ tệp này và lưu chúng vào một danh sách các số nguyên?

19 / 30

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

Tags: Bộ đề 09

Câu 19: Khi thực hiện tìm kiếm nhị phân, nếu giá trị cần tìm nhỏ hơn giá trị tại vị trí giữa của danh sách, bước tiếp theo của thuật toán là gì?

20 / 30

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

Tags: Bộ đề 09

Câu 20: Điều gì xảy ra nếu bạn cố gắng mở một tệp không tồn tại bằng chế độ `'r'` trong Python?

21 / 30

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

Tags: Bộ đề 09

Câu 21: Trong bài toán tìm kiếm tên học sinh và điểm của họ từ một tệp, tại sao việc lưu trữ dữ liệu vào danh sách (ví dụ: hai danh sách `ten_hs` và `diem_hs`) trước khi tìm kiếm lại có lợi hơn so với việc đọc và tìm kiếm trực tiếp trên tệp mỗi lần người dùng nhập tên?

22 / 30

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

Tags: Bộ đề 09

Câu 22: Xét đoạn mã tìm kiếm nhị phân sau trên danh sách đã sắp xếp `arr`:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 ``` Nếu `arr = [5, 12, 18, 25, 30]` và `target = 18`, giá trị của `mid` trong các lần lặp của vòng lặp `while` sẽ là bao nhiêu?

23 / 30

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

Tags: Bộ đề 09

Câu 23: Giả sử bạn cần lưu kết quả tìm kiếm (ví dụ: tên học sinh và điểm) vào một tệp mới `ketqua.txt`. Chế độ mở tệp nào bạn nên sử dụng để đảm bảo mỗi lần chạy chương trình, tệp `ketqua.txt` sẽ được tạo mới hoặc ghi đè lên nội dung cũ?

24 / 30

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

Tags: Bộ đề 09

Câu 24: Sự khác biệt chính giữa tìm kiếm tuần tự và tìm kiếm nhị phân nằm ở đâu?

25 / 30

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

Tags: Bộ đề 09

Câu 25: Trong kịch bản tìm kiếm thông tin học sinh theo tên từ tệp, nếu người dùng nhập một tên không có trong danh sách, chương trình nên xử lý như thế nào để cung cấp phản hồi rõ ràng?

26 / 30

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

Tags: Bộ đề 09

Câu 26: Khi sử dụng phương thức `print()` để ghi dữ liệu vào tệp thay vì in ra màn hình, bạn cần sử dụng tham số nào?

27 / 30

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

Tags: Bộ đề 09

Câu 27: Giả sử tệp `data.txt` có nội dung:
```
Apple
Banana
Cherry
```
Đoạn mã Python sau:
```python
with open('data.txt', 'r') as f:
lines = f.readlines()
print(len(lines))
```
Sẽ in ra kết quả gì?

28 / 30

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

Tags: Bộ đề 09

Câu 28: Trong tìm kiếm nhị phân, biến `mid` thường được tính bằng công thức `(low + high) // 2`. Nếu `low = 0` và `high = 9`, giá trị của `mid` sẽ là bao nhiêu?

29 / 30

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

Tags: Bộ đề 09

Câu 29: Khi so sánh hiệu quả của tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có N phần tử đã sắp xếp, trong trường hợp xấu nhất (phần tử cần tìm ở cuối danh sách hoặc không có), số phép so sánh gần đúng của mỗi thuật toán là bao nhiêu?

30 / 30

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

Tags: Bộ đề 09

Câu 30: Giả sử bạn đang xây dựng chương trình tra cứu điểm học sinh từ tệp. Bạn muốn chương trình dừng lại khi người dùng nhập một từ khóa đặc biệt, ví dụ 'thoat'. Cấu trúc điều khiển nào trong Python thường được sử dụng để lặp lại việc nhận đầu vào và tìm kiếm cho đến khi từ khóa dừng được nhập?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức 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 Bài 20: Thực hành bài toán tìm kiếm - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành bài toán tìm kiếm - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Cho tệp dữ liệu `hocsinh.txt` có cấu trúc mỗi dòng là `Ten,Diem`. Ví dụ: `Nguyen Van A,8.5`. Để đọc toàn bộ nội dung tệp này vào một danh sách các chuỗi, mỗi chuỗi là một dòng, lệnh Python nào sau đây là phù hợp nhất?

  • A. f = open("hocsinh.txt", "w"); data = f.read(); f.close()
  • B. f = open("hocsinh.txt", "r"); data = f.readline(); f.close()
  • C. f = open("hocsinh.txt", "r", encoding="utf-8"); data = f.readlines(); f.close()
  • D. f = open("hocsinh.txt", "a"); data = f.read(); f.close()

Câu 2: Xét đoạn mã Python sau để đọc dữ liệu từ tệp `data.txt`:

  • A. Sẽ xảy ra lỗi nếu tệp `data.txt` không tồn tại.
  • B. Nội dung tệp `data.txt` sẽ bị xóa trước khi đọc.
  • C. Chỉ đọc được dòng đầu tiên của tệp.
  • D. Tệp sẽ tự động đóng ngay cả khi có lỗi xảy ra trong quá trình xử lý.

Câu 3: Bạn cần lưu danh sách tên học sinh và điểm của họ từ hai danh sách `ten_hs` và `diem_hs` vào một tệp văn bản `ketqua.txt`, mỗi dòng chứa tên và điểm cách nhau bởi dấu phẩy. Đoạn mã nào sau đây thực hiện đúng yêu cầu đó?

  • A. with open("ketqua.txt", "r") as f: for i in range(len(ten_hs)): f.write(f"{ten_hs[i]},{diem_hs[i]}n")
  • B. with open("ketqua.txt", "w", encoding="utf-8") as f: for i in range(len(ten_hs)): print(f"{ten_hs[i]},{diem_hs[i]}", file=f)
  • C. with open("ketqua.txt", "a") as f: data = f"{ten_hs},{diem_hs}"; f.write(data)
  • D. f = open("ketqua.txt", "w"); for i in range(len(ten_hs)): f.write(f"{ten_hs[i]},{diem_hs[i]}n")

Câu 4: Cho danh sách `danh_sach = [15, 8, 23, 4, 42, 10]`. Khi áp dụng thuật toán tìm kiếm tuần tự để tìm giá trị `42`, chương trình sẽ thực hiện bao nhiêu phép so sánh (với phần tử trong danh sách) trong trường hợp tốt nhất và trường hợp xấu nhất?

  • A. Tốt nhất: 1, Xấu nhất: 6
  • B. Tốt nhất: 6, Xấu nhất: 6
  • C. Tốt nhất: 3, Xấu nhất: 6
  • D. Tốt nhất: 1 (nếu 42 ở đầu), Xấu nhất: 6 (nếu 42 ở cuối hoặc không có)

Câu 5: Thuật toán tìm kiếm nhị phân đòi hỏi điều kiện tiên quyết nào đối với dữ liệu trong danh sách cần tìm kiếm?

  • A. Dữ liệu phải là các số nguyên.
  • B. Dữ liệu phải được sắp xếp theo một thứ tự nhất định (tăng dần hoặc giảm dần).
  • C. Dữ liệu phải có kích thước nhỏ.
  • D. Dữ liệu phải là các chuỗi ký tự.

Câu 6: Cho danh sách đã sắp xếp `danh_sach = [10, 20, 30, 40, 50, 60, 70]`. Khi tìm kiếm giá trị `30` bằng thuật toán tìm kiếm nhị phân, các giá trị nào sẽ được so sánh với `30` theo thứ tự thực hiện?

  • A. 10, 20, 30
  • B. 40, 20, 30
  • C. 40, 20, 30
  • D. 70, 40, 30

Câu 7: Khi nào thì thuật toán tìm kiếm tuần tự có thể hiệu quả hơn (hoặc ít nhất là không kém hiệu quả đáng kể) so với tìm kiếm nhị phân?

  • A. Khi danh sách dữ liệu rất nhỏ hoặc không được sắp xếp.
  • B. Khi cần tìm nhiều phần tử trong cùng một danh sách.
  • C. Khi dữ liệu trong danh sách là số thực.
  • D. Khi danh sách dữ liệu đã được sắp xếp.

Câu 8: Độ phức tạp thời gian trung bình của thuật toán tìm kiếm nhị phân trên một danh sách có n phần tử là khoảng bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(1)

Câu 9: Bạn đọc một dòng từ tệp là chuỗi `

  • A. replace("n", "")
  • B. strip()
  • C. split(",")
  • D. split("n")

Câu 10: Trong bài toán tra cứu điểm học sinh từ tệp, sau khi đọc dữ liệu vào danh sách `ten_hs` và `diem_hs`, bạn cần tìm điểm của học sinh có tên nhập từ bàn phím. Nếu sử dụng tìm kiếm tuần tự, bạn sẽ lặp qua danh sách nào để so sánh với tên cần tìm?

  • A. Danh sách `ten_hs`.
  • B. Danh sách `diem_hs`.
  • C. Cả hai danh sách cùng lúc.
  • D. Không cần lặp, sử dụng tìm kiếm nhị phân.

Câu 11: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, điều kiện dừng vòng lặp tìm kiếm là gì?

  • A. Đã duyệt hết một nửa danh sách.
  • B. Tìm thấy phần tử hoặc đã duyệt hết danh sách.
  • C. Số lần lặp vượt quá một ngưỡng nhất định.
  • D. Chỉ khi tìm thấy phần tử.

Câu 12: Giả sử bạn có một tệp `log.txt` và muốn ghi thêm thông tin vào cuối tệp mỗi khi chương trình chạy mà không làm mất dữ liệu cũ. Bạn sẽ mở tệp với chế độ nào?

  • A. "r"
  • B. "w"
  • C. "a"
  • D. "x"

Câu 13: Đoạn mã sau dùng để làm gì? `line = f.readline()`

  • A. Đọc một dòng từ vị trí con trỏ hiện tại trong tệp.
  • B. Đọc toàn bộ nội dung tệp.
  • C. Đọc tất cả các dòng của tệp vào một danh sách.
  • D. Ghi một dòng vào tệp.

Câu 14: Khi thực hiện tìm kiếm nhị phân trên danh sách `[5, 12, 18, 25, 30, 38, 45]`, nếu giá trị cần tìm là `25`, lần so sánh đầu tiên sẽ diễn ra với phần tử nào?

  • A. 5
  • B. 45
  • C. 25
  • D. 30

Câu 15: Ưu điểm chính của thuật toán tìm kiếm nhị phân so với tìm kiếm tuần tự khi áp dụng cho danh sách lớn đã được sắp xếp là gì?

  • A. Dễ cài đặt hơn.
  • B. Tốc độ tìm kiếm nhanh hơn đáng kể.
  • C. Không yêu cầu dữ liệu phải được sắp xếp.
  • D. Có thể tìm kiếm nhiều phần tử cùng lúc.

Câu 16: Trong Python, cú pháp `with open(...) as f:` được khuyến khích sử dụng khi làm việc với tệp vì nó đảm bảo điều gì?

  • A. Tệp sẽ tự động đóng sau khi khối lệnh `with` kết thúc, ngay cả khi có lỗi.
  • B. Tệp được mở ở chế độ đọc và ghi đồng thời.
  • C. Tốc độ đọc/ghi tệp được tăng tốc.
  • D. Chỉ cho phép đọc dữ liệu từ tệp.

Câu 17: Cho đoạn mã đọc tệp sau: `f = open("data.txt", "r"); data = f.read(); f.close()`. Nếu tệp `data.txt` chứa nội dung `Dong 1nDong 2nDong 3`, biến `data` sẽ chứa giá trị nào sau khi thực thi?

  • A. ["Dong 1n", "Dong 2n", "Dong 3"]
  • B. "Dong 1"
  • C. "Dong 1nDong 2nDong 3"
  • D. ["Dong 1", "Dong 2", "Dong 3"]

Câu 18: Bạn đang xây dựng chức năng tìm kiếm học sinh theo tên trong một danh sách đọc từ tệp. Tên học sinh được lưu trong danh sách `ten_hs`. Hàm tìm kiếm tuần tự của bạn trả về chỉ số của học sinh nếu tìm thấy, và `-1` nếu không tìm thấy. Nếu kết quả tìm kiếm là `-1`, bạn nên thông báo điều gì cho người dùng?

  • A. Điểm của học sinh đó.
  • B. Danh sách tất cả học sinh.
  • C. Yêu cầu nhập lại tên.
  • D. Không tìm thấy học sinh trong danh sách.

Câu 19: Khi áp dụng tìm kiếm nhị phân, nếu phần tử ở vị trí giữa lớn hơn giá trị cần tìm, bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách con hiện tại?

  • A. Nửa bên phải.
  • B. Nửa bên trái.
  • C. Toàn bộ danh sách con.
  • D. Dừng tìm kiếm.

Câu 20: Bạn có một danh sách `diem = [7.5, 8.0, 6.5, 9.0, 7.0]` và cần tìm tất cả các học sinh có điểm từ 8.0 trở lên. Thuật toán tìm kiếm nào phù hợp nhất cho bài toán này?

  • A. Tìm kiếm tuần tự (duyệt qua từng phần tử).
  • B. Tìm kiếm nhị phân (sau khi sắp xếp danh sách điểm).
  • C. Cả hai thuật toán đều không phù hợp.
  • D. Chỉ cần đọc điểm đầu tiên.

Câu 21: Trong Python, khi sử dụng `print(..., file=f)`, dữ liệu được ghi vào tệp `f`. Mặc định, sau mỗi lần gọi `print`, ký tự đặc biệt nào sẽ được tự động thêm vào cuối dòng?

  • A. Khoảng trắng (" ").
  • B. Ký tự xuống dòng ("n").
  • C. Dấu phẩy (",").
  • D. Không có ký tự nào được thêm tự động.

Câu 22: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi dòng trong danh sách kết quả thường chứa ký tự xuống dòng ở cuối (ví dụ: `"Nguyen Van A,8.5n"`). Để loại bỏ ký tự xuống dòng này, phương thức nào của chuỗi thường được sử dụng?

  • A. split()
  • B. replace("n", "")
  • C. strip()
  • D. upper()

Câu 23: Cho danh sách `[10, 20, 30, 40, 50]`. Khi tìm kiếm nhị phân giá trị `25`, sau lần so sánh đầu tiên với phần tử giữa (`30`), phạm vi tìm kiếm tiếp theo sẽ là phần tử từ chỉ số nào đến chỉ số nào (giả sử chỉ số bắt đầu từ 0)?

  • A. Từ 0 đến 4
  • B. Từ 0 đến 1
  • C. Từ 3 đến 4
  • D. Từ 0 đến 2

Câu 24: Trong bài toán thực hành, việc sử dụng mã hóa `encoding="utf-8"` khi mở tệp văn bản là quan trọng nhất trong trường hợp nào?

  • A. Tệp chứa các ký tự đặc biệt hoặc tiếng Việt có dấu.
  • B. Tệp chỉ chứa các số nguyên.
  • C. Tệp rất lớn.
  • D. Chỉ khi bạn ghi dữ liệu vào tệp, không phải khi đọc.

Câu 25: Khi tìm kiếm tuần tự một phần tử trong danh sách có n phần tử, trong trường hợp xấu nhất (phần tử cần tìm ở cuối danh sách hoặc không có trong danh sách), cần thực hiện khoảng bao nhiêu phép so sánh?

  • A. log n
  • B. n / 2
  • C. n
  • D. 1

Câu 26: Để chuyển đổi chuỗi đọc được từ tệp (ví dụ: `"8.5"`) thành số thực trong Python để có thể so sánh hoặc tính toán, bạn sử dụng hàm nào?

  • A. int()
  • B. float()
  • C. str()
  • D. list()

Câu 27: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten_hs` và `diem_hs` sao cho `ten_hs[i]` tương ứng với `diem_hs[i]`. Để tìm điểm của học sinh có tên là `

  • A. `diem_hs[j]`
  • B. `ten_hs[j]`
  • C. `diem_hs`
  • D. `ten_hs`

Câu 28: Mục đích của việc sắp xếp danh sách dữ liệu trước khi áp dụng thuật toán tìm kiếm nhị phân là gì?

  • A. Giảm dung lượng bộ nhớ cần thiết.
  • B. Cho phép sử dụng tìm kiếm tuần tự hiệu quả hơn.
  • C. Là yêu cầu bắt buộc để thuật toán tìm kiếm nhị phân hoạt động đúng.
  • D. Giúp dễ dàng xóa các phần tử trùng lặp.

Câu 29: Trong một vòng lặp đọc từng dòng của tệp bằng `for line in f:`, biến `line` trong mỗi lần lặp sẽ chứa gì?

  • A. Toàn bộ nội dung tệp.
  • B. Một danh sách các từ trong dòng.
  • C. Số thứ tự của dòng hiện tại.
  • D. Một chuỗi chứa nội dung của dòng hiện tại (bao gồm ký tự xuống dòng nếu có).

Câu 30: Giả sử bạn cần tìm kiếm một từ khóa trong một tệp văn bản rất lớn (hàng GB) mà không thể đọc toàn bộ nội dung vào bộ nhớ cùng lúc. Phương pháp tiếp cận nào sau đây là khả thi nhất?

  • A. Đọc tệp từng dòng một và áp dụng tìm kiếm tuần tự trên mỗi dòng.
  • B. Đọc toàn bộ tệp vào một chuỗi lớn và sử dụng phương thức find().
  • C. Sắp xếp toàn bộ nội dung tệp rồi áp dụng tìm kiếm nhị phân.
  • D. Chỉ đọc phần đầu tiên của tệp.

1 / 30

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

Tags: Bộ đề 10

Câu 1: Cho tệp dữ liệu `hocsinh.txt` có cấu trúc mỗi dòng là `Ten,Diem`. Ví dụ: `Nguyen Van A,8.5`. Để đọc toàn bộ nội dung tệp này vào một danh sách các chuỗi, mỗi chuỗi là một dòng, lệnh Python nào sau đây là phù hợp nhất?

2 / 30

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

Tags: Bộ đề 10

Câu 2: Xét đoạn mã Python sau để đọc dữ liệu từ tệp `data.txt`:

3 / 30

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

Tags: Bộ đề 10

Câu 3: Bạn cần lưu danh sách tên học sinh và điểm của họ từ hai danh sách `ten_hs` và `diem_hs` vào một tệp văn bản `ketqua.txt`, mỗi dòng chứa tên và điểm cách nhau bởi dấu phẩy. Đoạn mã nào sau đây thực hiện đúng yêu cầu đó?

4 / 30

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

Tags: Bộ đề 10

Câu 4: Cho danh sách `danh_sach = [15, 8, 23, 4, 42, 10]`. Khi áp dụng thuật toán tìm kiếm tuần tự để tìm giá trị `42`, chương trình sẽ thực hiện bao nhiêu phép so sánh (với phần tử trong danh sách) trong trường hợp tốt nhất và trường hợp xấu nhất?

5 / 30

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

Tags: Bộ đề 10

Câu 5: Thuật toán tìm kiếm nhị phân đòi hỏi điều kiện tiên quyết nào đối với dữ liệu trong danh sách cần tìm kiếm?

6 / 30

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

Tags: Bộ đề 10

Câu 6: Cho danh sách đã sắp xếp `danh_sach = [10, 20, 30, 40, 50, 60, 70]`. Khi tìm kiếm giá trị `30` bằng thuật toán tìm kiếm nhị phân, các giá trị nào sẽ được so sánh với `30` theo thứ tự thực hiện?

7 / 30

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

Tags: Bộ đề 10

Câu 7: Khi nào thì thuật toán tìm kiếm tuần tự có thể hiệu quả hơn (hoặc ít nhất là không kém hiệu quả đáng kể) so với tìm kiếm nhị phân?

8 / 30

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

Tags: Bộ đề 10

Câu 8: Độ phức tạp thời gian trung bình của thuật toán tìm kiếm nhị phân trên một danh sách có n phần tử là khoảng bao nhiêu?

9 / 30

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

Tags: Bộ đề 10

Câu 9: Bạn đọc một dòng từ tệp là chuỗi `"Toan,8.5n"`. Để lấy ra tên `"Toan"` và điểm `8.5` dưới dạng số thực, bạn sẽ sử dụng phương thức xử lý chuỗi nào sau đây trước tiên?

10 / 30

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

Tags: Bộ đề 10

Câu 10: Trong bài toán tra cứu điểm học sinh từ tệp, sau khi đọc dữ liệu vào danh sách `ten_hs` và `diem_hs`, bạn cần tìm điểm của học sinh có tên nhập từ bàn phím. Nếu sử dụng tìm kiếm tuần tự, bạn sẽ lặp qua danh sách nào để so sánh với tên cần tìm?

11 / 30

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

Tags: Bộ đề 10

Câu 11: Khi tìm kiếm một phần tử trong danh sách bằng tìm kiếm tuần tự, điều kiện dừng vòng lặp tìm kiếm là gì?

12 / 30

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

Tags: Bộ đề 10

Câu 12: Giả sử bạn có một tệp `log.txt` và muốn ghi thêm thông tin vào cuối tệp mỗi khi chương trình chạy mà không làm mất dữ liệu cũ. Bạn sẽ mở tệp với chế độ nào?

13 / 30

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

Tags: Bộ đề 10

Câu 13: Đoạn mã sau dùng để làm gì? `line = f.readline()`

14 / 30

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

Tags: Bộ đề 10

Câu 14: Khi thực hiện tìm kiếm nhị phân trên danh sách `[5, 12, 18, 25, 30, 38, 45]`, nếu giá trị cần tìm là `25`, lần so sánh đầu tiên sẽ diễn ra với phần tử nào?

15 / 30

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

Tags: Bộ đề 10

Câu 15: Ưu điểm chính của thuật toán tìm kiếm nhị phân so với tìm kiếm tuần tự khi áp dụng cho danh sách lớn đã được sắp xếp là gì?

16 / 30

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

Tags: Bộ đề 10

Câu 16: Trong Python, cú pháp `with open(...) as f:` được khuyến khích sử dụng khi làm việc với tệp vì nó đảm bảo điều gì?

17 / 30

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

Tags: Bộ đề 10

Câu 17: Cho đoạn mã đọc tệp sau: `f = open('data.txt', 'r'); data = f.read(); f.close()`. Nếu tệp `data.txt` chứa nội dung `Dong 1nDong 2nDong 3`, biến `data` sẽ chứa giá trị nào sau khi thực thi?

18 / 30

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

Tags: Bộ đề 10

Câu 18: Bạn đang xây dựng chức năng tìm kiếm học sinh theo tên trong một danh sách đọc từ tệp. Tên học sinh được lưu trong danh sách `ten_hs`. Hàm tìm kiếm tuần tự của bạn trả về chỉ số của học sinh nếu tìm thấy, và `-1` nếu không tìm thấy. Nếu kết quả tìm kiếm là `-1`, bạn nên thông báo điều gì cho người dùng?

19 / 30

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

Tags: Bộ đề 10

Câu 19: Khi áp dụng tìm kiếm nhị phân, nếu phần tử ở vị trí giữa lớn hơn giá trị cần tìm, bạn sẽ tiếp tục tìm kiếm ở nửa nào của danh sách con hiện tại?

20 / 30

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

Tags: Bộ đề 10

Câu 20: Bạn có một danh sách `diem = [7.5, 8.0, 6.5, 9.0, 7.0]` và cần tìm tất cả các học sinh có điểm từ 8.0 trở lên. Thuật toán tìm kiếm nào phù hợp nhất cho bài toán này?

21 / 30

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

Tags: Bộ đề 10

Câu 21: Trong Python, khi sử dụng `print(..., file=f)`, dữ liệu được ghi vào tệp `f`. Mặc định, sau mỗi lần gọi `print`, ký tự đặc biệt nào sẽ được tự động thêm vào cuối dòng?

22 / 30

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

Tags: Bộ đề 10

Câu 22: Khi đọc dữ liệu từ tệp bằng `readlines()`, mỗi dòng trong danh sách kết quả thường chứa ký tự xuống dòng ở cuối (ví dụ: `'Nguyen Van A,8.5n'`). Để loại bỏ ký tự xuống dòng này, phương thức nào của chuỗi thường được sử dụng?

23 / 30

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

Tags: Bộ đề 10

Câu 23: Cho danh sách `[10, 20, 30, 40, 50]`. Khi tìm kiếm nhị phân giá trị `25`, sau lần so sánh đầu tiên với phần tử giữa (`30`), phạm vi tìm kiếm tiếp theo sẽ là phần tử từ chỉ số nào đến chỉ số nào (giả sử chỉ số bắt đầu từ 0)?

24 / 30

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

Tags: Bộ đề 10

Câu 24: Trong bài toán thực hành, việc sử dụng mã hóa `encoding='utf-8'` khi mở tệp văn bản là quan trọng nhất trong trường hợp nào?

25 / 30

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

Tags: Bộ đề 10

Câu 25: Khi tìm kiếm tuần tự một phần tử trong danh sách có n phần tử, trong trường hợp xấu nhất (phần tử cần tìm ở cuối danh sách hoặc không có trong danh sách), cần thực hiện khoảng bao nhiêu phép so sánh?

26 / 30

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

Tags: Bộ đề 10

Câu 26: Để chuyển đổi chuỗi đọc được từ tệp (ví dụ: `'8.5'`) thành số thực trong Python để có thể so sánh hoặc tính toán, bạn sử dụng hàm nào?

27 / 30

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

Tags: Bộ đề 10

Câu 27: Giả sử bạn đã đọc dữ liệu học sinh từ tệp vào hai danh sách `ten_hs` và `diem_hs` sao cho `ten_hs[i]` tương ứng với `diem_hs[i]`. Để tìm điểm của học sinh có tên là `"Tran Thi B"` bằng tìm kiếm tuần tự, bạn sẽ lặp qua danh sách `ten_hs`. Nếu tìm thấy `"Tran Thi B"` tại chỉ số `j`, điểm của học sinh đó sẽ là?

28 / 30

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

Tags: Bộ đề 10

Câu 28: Mục đích của việc sắp xếp danh sách dữ liệu trước khi áp dụng thuật toán tìm kiếm nhị phân là gì?

29 / 30

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

Tags: Bộ đề 10

Câu 29: Trong một vòng lặp đọc từng dòng của tệp bằng `for line in f:`, biến `line` trong mỗi lần lặp sẽ chứa gì?

30 / 30

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

Tags: Bộ đề 10

Câu 30: Giả sử bạn cần tìm kiếm một từ khóa trong một tệp văn bản rất lớn (hàng GB) mà không thể đọc toàn bộ nội dung vào bộ nhớ cùng lúc. Phương pháp tiếp cận nào sau đây là khả thi nhất?

Viết một bình luận