1. Trong lập trình, lỗi logic (logic error) là loại lỗi xảy ra khi:
A. Các bước của thuật toán được thực hiện theo một trình tự sai hoặc không chính xác, dẫn đến kết quả không mong muốn.
B. Cấu trúc câu lệnh vi phạm quy tắc ngữ pháp của ngôn ngữ lập trình.
C. Chương trình cố gắng truy cập vào một vùng bộ nhớ không được phép.
D. Dữ liệu đầu vào không hợp lệ hoặc thiếu.
2. Ngôn ngữ lập trình nào thường được sử dụng cho các tác vụ xử lý dữ liệu lớn và học máy?
A. Assembly
B. C
C. Python
D. HTML
3. Ngôn ngữ lập trình nào sau đây thường được sử dụng để phát triển ứng dụng web phía máy khách (client-side)?
A. Python
B. JavaScript
C. SQL
D. Java
4. Khái niệm đệ quy (recursion) trong lập trình đề cập đến việc:
A. Một hàm tự gọi lại chính nó để giải quyết bài toán con.
B. Sử dụng vòng lặp để lặp lại một hành động.
C. Chia sẻ dữ liệu giữa nhiều tiến trình.
D. Biểu diễn mối quan hệ giữa các lớp.
5. Ngôn ngữ lập trình nào thường được sử dụng cho phát triển ứng dụng web phía máy chủ (server-side)?
A. HTML
B. CSS
C. JavaScript (Node.js)
D. SQL
6. Trong lập trình, tham số (parameter) của một hàm là gì?
A. Một biến được truyền vào hàm khi gọi nó để hàm sử dụng.
B. Giá trị mà hàm trả về sau khi thực thi.
C. Tên của hàm.
D. Khối lệnh bên trong hàm.
7. Khái niệm debug trong lập trình có nghĩa là gì?
A. Tìm kiếm và sửa lỗi trong mã nguồn.
B. Viết mã nguồn mới.
C. Tối ưu hóa hiệu suất chương trình.
D. Thiết kế giao diện người dùng.
8. Khi nói về thuật toán, điều kiện dừng (termination condition) có vai trò gì?
A. Xác định khi nào thuật toán sẽ kết thúc quá trình xử lý.
B. Quyết định thuật toán sẽ sử dụng cấu trúc dữ liệu nào.
C. Đảm bảo thuật toán luôn trả về kết quả đúng.
D. Phân tích độ phức tạp về thời gian của thuật toán.
9. Ngôn ngữ lập trình nào thường được sử dụng để xử lý truy vấn cơ sở dữ liệu?
A. Python
B. Java
C. SQL
D. C#
10. Khi một chương trình máy tính gặp lỗi Syntax Error, điều đó thường có nghĩa là gì?
A. Cấu trúc câu lệnh viết sai quy tắc ngữ pháp của ngôn ngữ lập trình.
B. Logic của thuật toán được triển khai không chính xác.
C. Chương trình cố gắng truy cập vào một vùng nhớ không hợp lệ.
D. Dữ liệu đầu vào không phù hợp với yêu cầu của chương trình.
11. Trong một thuật toán tìm kiếm tuần tự (linear search), nếu phần tử cần tìm nằm ở vị trí cuối cùng của danh sách, số lượng phép so sánh tối đa sẽ là bao nhiêu?
A. 1
B. N (với N là số phần tử trong danh sách)
C. N/2
D. Log N
12. Trong khoa học máy tính, thuật toán (algorithm) được định nghĩa là gì?
A. Một 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ụ.
B. Một chương trình máy tính hoàn chỉnh.
C. Một cấu trúc dữ liệu được sử dụng để lưu trữ thông tin.
D. Một loại phần cứng máy tính.
13. Ngôn ngữ lập trình C++ được biết đến với việc hỗ trợ mạnh mẽ cho loại hình lập trình nào?
A. Lập trình hàm (Functional Programming)
B. Lập trình hướng đối tượng (Object-Oriented Programming)
C. Lập trình logic (Logic Programming)
D. Lập trình khai báo (Declarative Programming)
14. Khái niệm biên dịch (compilation) trong lập trình là quá trình:
A. Chuyển đổi mã nguồn viết bằng ngôn ngữ cấp cao thành mã máy hoặc mã trung gian.
B. Thực thi trực tiếp mã nguồn mà không cần chuyển đổi.
C. Kiểm tra lỗi cú pháp trong chương trình.
D. Tạo giao diện đồ họa cho ứng dụng.
15. Trong lập trình, khái niệm biến (variable) được sử dụng để làm gì?
A. Lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
B. Định nghĩa các hàm để thực hiện một tác vụ cụ thể.
C. Kiểm soát luồng thực thi của chương trình thông qua các câu lệnh điều kiện.
D. Tạo ra các giao diện đồ họa cho người dùng tương tác.
16. Khái niệm mảng (array) trong lập trình thường được dùng để:
A. Lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu dưới một tên duy nhất.
B. Biểu diễn mối quan hệ giữa các đối tượng.
C. Thực hiện tính toán số học phức tạp.
D. Quản lý quyền truy cập của người dùng.
17. Khái niệm hàm (function) hoặc phương thức (method) trong lập trình được tạo ra chủ yếu để:
A. Tái sử dụng mã và tổ chức chương trình thành các khối logic.
B. Tăng tốc độ thực thi của chương trình.
C. Giảm dung lượng bộ nhớ mà chương trình sử dụng.
D. Tự động phát hiện và sửa lỗi trong mã nguồn.
18. Ngôn ngữ lập trình nào sau đây thường được sử dụng cho việc phát triển ứng dụng di động trên nền tảng Android?
A. Swift
B. Objective-C
C. Kotlin
D. PHP
19. Trong lập trình hướng đối tượng (OOP), tính đóng gói (encapsulation) đề cập đến việc:
A. Gom dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào chung một đơn vị là đối tượng.
B. Cho phép một lớp con kế thừa các thuộc tính và phương thức từ lớp cha.
C. Cho phép các đối tượng thuộc các lớp khác nhau tương tác với nhau thông qua một giao diện chung.
D. Cho phép một lớp có nhiều phương thức cùng tên nhưng khác nhau về tham số đầu vào.
20. Khái niệm vòng lặp (loop) trong lập trình được sử dụng để:
A. Thực hiện một khối lệnh nhiều lần.
B. Đưa ra quyết định dựa trên một điều kiện.
C. Định nghĩa cấu trúc dữ liệu.
D. Khai báo một hàm mới.
21. Trong lập trình, biểu thức (expression) là gì?
A. Một tổ hợp các toán tử, toán hạng và gọi hàm tạo ra một giá trị.
B. Một câu lệnh hoàn chỉnh kết thúc bằng dấu chấm phẩy.
C. Một khối lệnh được thực thi có điều kiện.
D. Một biến chưa được gán giá trị.
22. Khái niệm API (Application Programming Interface) là gì?
A. Một tập hợp các quy tắc và định nghĩa cho phép các ứng dụng khác nhau giao tiếp với nhau.
B. Một loại thuật toán sắp xếp dữ liệu.
C. Một phương pháp để bảo mật dữ liệu.
D. Một ngôn ngữ lập trình mới.
23. Phát biểu nào sau đây mô tả đúng nhất Cấu trúc điều kiện (conditional statement) trong lập trình?
A. Cho phép chương trình thực thi các khối lệnh khác nhau dựa trên việc kiểm tra một điều kiện.
B. Lặp lại một khối lệnh cho đến khi một điều kiện bị sai.
C. Lưu trữ một tập hợp các giá trị có cùng kiểu dữ liệu.
D. Định nghĩa một chuỗi các bước để giải quyết một vấn đề cụ thể.
24. Ngôn ngữ lập trình nào thường được sử dụng để tạo ra các trang web có giao diện đẹp và tương tác?
A. Python
B. HTML và CSS
C. SQL
D. Assembly
25. Trong lập trình, hằng số (constant) là gì?
A. Một biến có giá trị không thể thay đổi sau khi được khởi tạo.
B. Một biến có thể thay đổi giá trị bất cứ lúc nào.
C. Một hàm không nhận tham số đầu vào.
D. Một cấu trúc dữ liệu chỉ chứa các phần tử duy nhất.