1. Câu lệnh nào trong Python được sử dụng để in một giá trị ra màn hình?
A. input()
B. print()
C. display()
D. show()
2. Trong lập trình, vòng lặp for thường được sử dụng khi nào?
A. Khi số lần lặp là không xác định trước.
B. Khi cần thực hiện một khối lệnh chỉ một lần.
C. Khi số lần lặp đã được biết trước hoặc lặp qua một chuỗi các phần tử.
D. Khi cần dừng chương trình ngay lập tức.
3. Khái niệm biên dịch (compilation) trong lập trình thường liên quan đến:
A. Chạy trực tiếp mã nguồn trên máy tính.
B. Chuyển đổi mã nguồn viết bằng ngôn ngữ bậc cao thành mã máy hoặc mã trung gian mà máy tính có thể hiểu và thực thi.
C. Sửa lỗi trong chương trình.
D. Thiết kế cấu trúc dữ liệu.
4. Trong Python, cấu trúc dữ liệu nào được sử dụng để lưu trữ một tập hợp các phần tử có thứ tự và có thể thay đổi (mutable)?
A. Tuple
B. Set
C. Dictionary
D. List
5. Phát biểu nào sau đây mô tả đúng về ghi đè phương thức (method overriding) trong lập trình hướng đối tượng?
A. Lớp con định nghĩa một phương thức có cùng tên và tham số với một phương thức đã có trong lớp cha.
B. Lớp cha định nghĩa một phương thức mà lớp con không thể sử dụng.
C. Lớp con thêm một phương thức mới hoàn toàn khác với lớp cha.
D. Lớp con sử dụng lại một phương thức của lớp cha mà không thay đổi gì.
6. Trong Python, toán tử `==` được sử dụng để làm gì?
A. Gán giá trị cho biến.
B. So sánh hai giá trị có bằng nhau không.
C. Thực hiện phép cộng.
D. Kiểm tra kiểu dữ liệu.
7. Trong Python, hàm `len()` được sử dụng để làm gì?
A. Trả về giá trị tuyệt đối của một số.
B. Trả về độ dài hoặc số lượng phần tử của một đối tượng (như chuỗi, danh sách, tuple).
C. Chuyển đổi một số sang chuỗi.
D. Tìm kiếm một phần tử trong danh sách.
8. Cấu trúc điều khiển nào được sử dụng để lặp lại một khối lệnh nhiều lần dựa trên một điều kiện được kiểm tra trước mỗi lần lặp?
A. if-else statement
B. for loop
C. while loop
D. switch statement
9. Cấu trúc dữ liệu nào trong Python lưu trữ các cặp khóa-giá trị (key-value pairs) và các khóa phải là duy nhất?
A. List
B. Tuple
C. Set
D. Dictionary
10. Khái niệm kế thừa (inheritance) trong lập trình hướng đối tượng cho phép lớp con:
A. Tái định nghĩa hoàn toàn mọi thuộc tính và phương thức của lớp cha.
B. Thêm vào các thuộc tính và phương thức mới, đồng thời có thể ghi đè (override) các phương thức của lớp cha.
C. Chỉ có thể truy cập các phương thức public của lớp cha.
D. Ngăn chặn hoàn toàn việc truy cập vào lớp cha.
11. Trong lập trình hướng đối tượng, đối tượng (object) là gì?
A. Một tập hợp các lớp liên quan với nhau.
B. Một thực thể cụ thể, một thể hiện (instance) của một lớp, có trạng thái (thuộc tính) và hành vi (phương thức).
C. Một cấu trúc dữ liệu dùng để lưu trữ các hàm.
D. Một từ khóa dùng để định nghĩa một biến.
12. Phát biểu nào sau đây mô tả đúng về câu lệnh `if-elif-else` trong Python?
A. Chỉ cho phép kiểm tra hai điều kiện song song.
B. Cho phép kiểm tra một chuỗi các điều kiện tuần tự và thực thi khối lệnh đầu tiên có điều kiện đúng.
C. Luôn luôn thực thi tất cả các khối lệnh được định nghĩa.
D. Chỉ có thể sử dụng một lần trong một chương trình.
13. Trong Python, kiểu dữ liệu nào thường được sử dụng để lưu trữ một chuỗi ký tự?
A. int
B. float
C. str
D. bool
14. Phát biểu nào sau đây mô tả đúng về khái niệm Debug trong phát triển phần mềm?
A. Viết mã nguồn mới cho một chức năng.
B. Quá trình tìm kiếm và sửa lỗi (bug) trong mã nguồn của chương trình.
C. Thiết kế giao diện người dùng cho ứng dụng.
D. Biên dịch mã nguồn thành mã máy.
15. Phát biểu nào sau đây mô tả đúng về Tuple trong Python?
A. Có thứ tự, có thể thay đổi (mutable) và cho phép phần tử trùng lặp.
B. Không có thứ tự, không cho phép phần tử trùng lặp và không thể thay đổi (immutable).
C. Có thứ tự, không thể thay đổi (immutable) và cho phép phần tử trùng lặp.
D. Không có thứ tự, có thể thay đổi (mutable) và cho phép phần tử trùng lặp.
16. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây dùng để khai báo một biến và gán giá trị Hello, World! cho nó?
A. declare my_variable = Hello, World!
B. let my_variable = Hello, World!
C. my_variable := Hello, World!
D. my_variable = Hello, World!
17. Khái niệm hàm (function) trong lập trình nhằm mục đích gì?
A. Tăng kích thước của chương trình.
B. Giúp chương trình chạy chậm hơn.
C. Tổ chức mã nguồn thành các khối có thể tái sử dụng, giúp chương trình dễ đọc, dễ bảo trì và tránh lặp lại mã.
D. Chỉ có thể gọi một lần duy nhất.
18. Phát biểu nào sau đây mô tả chính xác nhất về khái niệm biến trong lập trình?
A. Một vùng nhớ cố định chỉ lưu trữ một loại dữ liệu duy nhất trong suốt quá trình thực thi chương trình.
B. Một lệnh dùng để điều khiển luồng thực thi của chương trình dựa trên điều kiện.
C. Một định danh đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
D. Một khối mã lệnh được định nghĩa sẵn để thực hiện một tác vụ cụ thể và có thể gọi lại nhiều lần.
19. Trong khoa học máy tính, thuật ngữ thuật toán (algorithm) được định nghĩa là gì?
A. Một bộ sưu tập các câu lệnh được thực thi tuần tự.
B. Một quy trình hoặc tập hợp các bước rõ ràng, hữu hạn để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Một cấu trúc dữ liệu dùng để lưu trữ thông tin có tổ chức.
D. Một giao diện đồ họa cho phép người dùng tương tác với máy tính.
20. Trong Python, câu lệnh `import math` cho phép chúng ta:
A. Định nghĩa một lớp mới.
B. Truy cập vào các hàm và hằng số toán học được cung cấp bởi module math.
C. Khởi tạo một biến toàn cục.
D. Thực hiện phép gán cho biến.
21. Phát biểu nào sau đây KHÔNG phải là đặc điểm của một thuật toán tốt?
A. Tính rõ ràng (Definiteness).
B. Tính hiệu quả (Efficiency).
C. Tính trừu tượng hóa (Abstraction).
D. Tính vô hạn (Infinity).
22. Trong Python, toán tử + có thể được sử dụng cho hai mục đích khác nhau tùy thuộc vào kiểu dữ liệu. Mục đích phổ biến thứ hai của + là gì?
A. Phép chia lấy phần dư.
B. Phép so sánh bằng.
C. Phép nối chuỗi hoặc danh sách.
D. Phép gán giá trị.
23. Thuộc tính private của một lớp trong lập trình hướng đối tượng có ý nghĩa gì?
A. Thuộc tính đó có thể được truy cập và sửa đổi từ bất kỳ đâu trong chương trình.
B. Thuộc tính đó chỉ có thể được truy cập và sửa đổi bởi các phương thức bên trong chính lớp đó.
C. Thuộc tính đó chỉ có thể được truy cập bởi các lớp kế thừa.
D. Thuộc tính đó không thể được truy cập bởi bất kỳ ai.
24. Trong lập trình hướng đối tượng, lớp (class) được hiểu là gì?
A. Một đối tượng cụ thể được tạo ra từ một khuôn mẫu.
B. Một khuôn mẫu hoặc bản thiết kế để tạo ra các đối tượng, định nghĩa thuộc tính và hành vi.
C. Một biến toàn cục có thể truy cập từ mọi nơi trong chương trình.
D. Một hàm dùng để nhập dữ liệu từ người dùng.
25. Trong Python, để tạo một hàm, chúng ta sử dụng từ khóa nào?
A. class
B. import
C. def
D. return