1. Phát biểu nào sau đây mô tả đúng về thuật toán tìm kiếm tuyến tính (linear search)?
A. Nó yêu cầu danh sách phải được sắp xếp.
B. Nó kiểm tra từng phần tử của danh sách một cách tuần tự cho đến khi tìm thấy phần tử cần tìm hoặc hết danh sách.
C. Nó chia đôi danh sách ở mỗi bước để tìm kiếm.
D. Nó rất hiệu quả đối với các danh sách lớn.
2. Phát biểu nào sau đây là đúng về vòng lặp while trong Python?
A. Vòng lặp while luôn thực hiện đúng N lần, với N là số xác định trước.
B. Vòng lặp while tiếp tục thực hiện khối lệnh chừng nào điều kiện của nó còn đúng.
C. Vòng lặp while chỉ dùng để duyệt qua các phần tử của danh sách.
D. Vòng lặp while yêu cầu phải có biến đếm.
3. Đâu là toán tử so sánh dùng để kiểm tra hai giá trị có bằng nhau hay không trong Python?
4. Phát biểu nào sau đây mô tả chính xác nhất về vòng lặp for trong Python?
A. Thực hiện một khối lệnh cho đến khi một điều kiện trở thành sai.
B. Lặp lại một khối lệnh một số lần xác định trước.
C. Thực hiện một khối lệnh ít nhất một lần, sau đó lặp lại cho đến khi một điều kiện sai.
D. Lặp lại một khối lệnh khi một điều kiện là đúng.
5. Nếu bạn muốn thực hiện một hành động chỉ khi một điều kiện là sai trong Python, bạn sẽ sử dụng từ khóa nào?
A. if
B. for
C. while
D. else
6. Trong Python, để tạo một hàm, ta sử dụng từ khóa nào?
A. create
B. function
C. def
D. method
7. Một list trong Python có thể chứa các phần tử thuộc kiểu dữ liệu nào?
A. Chỉ các số nguyên.
B. Chỉ các chuỗi ký tự.
C. Chỉ các phần tử cùng kiểu dữ liệu.
D. Các phần tử thuộc nhiều kiểu dữ liệu khác nhau.
8. Câu lệnh nào sau đây dùng để nhận đầu vào từ người dùng trong Python?
A. print()
B. input()
C. get()
D. read()
9. Đâu là cách khai báo biến số nguyên (integer) đúng trong Python?
A. integer a = 10
B. a = 10.0
C. a = 10
D. int a = 10
10. Toán tử nào trong Python được sử dụng để nối hai chuỗi ký tự lại với nhau?
A. *
B. +
C. &
D. concat()
11. Để truy cập phần tử đầu tiên của một list có tên là my_list trong Python, ta sử dụng cú pháp nào?
A. my_list(0)
B. my_list[1]
C. my_list.first()
D. my_list[0]
12. Trong lập trình, biến (variable) được sử dụng để làm gì?
A. Để lưu trữ mã nguồn của chương trình.
B. Để đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
C. Để định nghĩa các hàm và lớp.
D. Để hiển thị kết quả lên màn hình.
13. Phát biểu nào sau đây mô tả đúng về chuỗi ký tự (string) trong Python?
A. Chuỗi là một cấu trúc dữ liệu có thể thay đổi (mutable).
B. Chuỗi là một tập hợp các ký tự được biểu diễn bằng dấu nháy đơn hoặc nháy kép.
C. Chuỗi chỉ có thể chứa các số.
D. Chuỗi là một cấu trúc dữ liệu không có thứ tự.
14. Hàm len() trong Python dùng để làm gì?
A. Trả về giá trị lớn nhất trong một tập hợp.
B. Trả về độ dài (số lượng phần tử) của một đối tượng có thứ tự (như chuỗi, list, tuple).
C. Chuyển đổi một chuỗi thành chữ hoa.
D. Kiểm tra xem một phần tử có tồn tại trong tập hợp hay không.
15. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây được sử dụng để in một dòng văn bản ra màn hình?
A. input()
B. print()
C. display()
D. output()
16. Phát biểu nào sau đây mô tả đúng về khái niệm thuật toán?
A. Là một đoạn mã chương trình được viết bằng ngôn ngữ máy.
B. Là một tập hợp các bước hữu hạn, rõ ràng và có trình tự để giải quyết một bài toán.
C. Là một loại phần cứng máy tính.
D. Là một giao diện đồ họa người dùng.
17. Trong Python, cấu trúc dữ liệu nào được sử dụng để lưu trữ các cặp khóa-giá trị (key-value pairs)?
A. List
B. Tuple
C. Set
D. Dictionary
18. Phát biểu nào sau đây là sai về Set (tập hợp) trong Python?
A. Set không cho phép chứa các phần tử trùng lặp.
B. Set là một cấu trúc dữ liệu có thứ tự.
C. Set có thể thay đổi (mutable).
D. Set có thể chứa các phần tử thuộc nhiều kiểu dữ liệu khác nhau.
19. Trong lập trình, debugger là công cụ dùng để làm gì?
A. Để viết mã nguồn.
B. Để biên dịch mã nguồn thành mã máy.
C. Để tìm và sửa lỗi trong chương trình.
D. Để tối ưu hóa hiệu suất chương trình.
20. Phát biểu nào sau đây đúng về tuple trong Python?
A. Tuple có thể thay đổi nội dung sau khi được tạo.
B. Tuple là một tập hợp không có thứ tự.
C. Tuple là một cấu trúc dữ liệu có thứ tự và không thể thay đổi (immutable).
D. Tuple chỉ có thể chứa các chuỗi ký tự.
21. Trong Python, cấu trúc if-elif-else được sử dụng để làm gì?
A. Tạo ra các hàm có thể tái sử dụng.
B. Thực hiện các phép toán số học phức tạp.
C. Kiểm tra nhiều điều kiện tuần tự và thực thi khối lệnh tương ứng.
D. Lặp lại một khối lệnh nhiều lần.
22. Trong Python, comment (chú thích) thường được bắt đầu bằng ký tự nào để chỉ ra rằng dòng đó không được thực thi?
A. //
B. /* */
C. #
D. --
23. Đâu là cách sử dụng vòng lặp for để lặp qua các số từ 1 đến 5 (bao gồm cả 5) trong Python?
A. for i in range(1, 5):
B. for i in range(5):
C. for i in range(1, 6):
D. for i in range(0, 5):
24. Trong lập trình Python, syntax error (lỗi cú pháp) xảy ra khi nào?
A. Khi chương trình chạy sai logic.
B. Khi chương trình gặp phải một lỗi bất ngờ không lường trước được.
C. Khi mã nguồn không tuân theo các quy tắc ngữ pháp của ngôn ngữ lập trình.
D. Khi chương trình chạy chậm.
25. Đâu là cách khai báo một biến kiểu chuỗi ký tự (string) đúng trong Python?
A. string message = Hello
B. message = Hello
C. message = Hello
D. str message = Hello