1. Phát biểu nào sau đây mô tả đúng vai trò của hằng số (constant) trong lập trình?
A. Là biến có thể thay đổi giá trị bất kỳ lúc nào.
B. Là giá trị không thể thay đổi sau khi được gán lần đầu.
C. Là một câu lệnh dùng để kết thúc chương trình.
D. Là một loại vòng lặp đặc biệt.
2. Phát biểu nào sau đây mô tả đúng vai trò của mảng (array) trong lập trình?
A. Lưu trữ các giá trị không cùng kiểu dữ liệu.
B. Lưu trữ một tập hợp các phần tử cùng kiểu dữ liệu, có thể truy cập bằng chỉ số.
C. Thực hiện các phép toán phức tạp.
D. Tạo giao diện người dùng đồ họa.
3. Trong thuật ngữ lập trình, thuật toán (algorithm) được định nghĩa là gì?
A. Một ngôn ngữ lập trình mới.
B. 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 đề.
C. Một loại vòng lặp đặc biệt.
D. Một công cụ để tạo giao diện người dùng.
4. Phát biểu nào sau đây là đúng về cấu trúc rẽ nhánh?
A. Cấu trúc rẽ nhánh luôn thực hiện tất cả các khối lệnh.
B. Cấu trúc rẽ nhánh chỉ thực hiện một trong các khối lệnh dựa trên điều kiện.
C. Cấu trúc rẽ nhánh dùng để lặp lại một khối lệnh.
D. Cấu trúc rẽ nhánh không sử dụng điều kiện.
5. Trong lập trình hướng đối tượng, một đối tượng (object) thường bao gồm những gì?
A. Chỉ các câu lệnh.
B. Chỉ các biến.
C. Các thuộc tính (dữ liệu) và phương thức (hành vi).
D. Chỉ các cấu trúc điều khiển.
6. Trong lập trình, một kiểu dữ liệu (data type) xác định điều gì về một giá trị?
A. Tên của biến.
B. Chỉ định nghĩa cho phép thực hiện các phép toán nào và cách thức lưu trữ.
C. Số lần thực hiện của vòng lặp.
D. Vị trí của câu lệnh trong chương trình.
7. Khi một chương trình máy tính thực thi, thứ tự mà các câu lệnh được thực hiện được gọi là gì?
A. Luồng dữ liệu.
B. Luồng điều khiển.
C. Luồng xử lý.
D. Luồng chương trình.
8. Trong lập trình, từ khóa nào thường được sử dụng để thoát khỏi vòng lặp hiện tại và chuyển sang vòng lặp tiếp theo?
A. break
B. continue
C. return
D. goto
9. Tại sao việc đặt tên biến và hàm một cách có ý nghĩa lại quan trọng trong lập trình?
A. Để làm cho mã nguồn trông chuyên nghiệp hơn.
B. Để chương trình chạy nhanh hơn.
C. Để tăng khả năng đọc hiểu, bảo trì và cộng tác của mã nguồn.
D. Để tuân thủ các quy tắc của trình biên dịch.
10. Phát biểu nào sau đây mô tả đúng về quá trình debug (gỡ lỗi) trong lập trình?
A. Viết thêm các tính năng mới cho chương trình.
B. Tìm kiếm và sửa các lỗi sai trong mã nguồn.
C. Tối ưu hóa hiệu suất của chương trình.
D. Thiết kế giao diện người dùng.
11. Phát biểu nào sau đây mô tả đúng chức năng của từ khóa return trong một hàm?
A. Dừng thực thi toàn bộ chương trình.
B. Chuyển điều khiển về nơi gọi hàm và có thể trả về một giá trị.
C. Bỏ qua phần còn lại của vòng lặp hiện tại.
D. Tạo một biến mới trong hàm.
12. Phép toán += (ví dụ: x += 5) trong nhiều ngôn ngữ lập trình được gọi là gì?
A. Phép toán so sánh.
B. Phép toán logic.
C. Phép toán gán kết hợp.
D. Phép toán số học đơn thuần.
13. Trong lập trình, khi một hàm gọi lại chính nó, đó được gọi là gì?
A. Lặp tuần tự.
B. Đệ quy.
C. Rẽ nhánh có điều kiện.
D. Gán biến.
14. Trong lập trình, một chuỗi (string) thường được sử dụng để biểu diễn loại dữ liệu nào?
A. Số nguyên
B. Số thực
C. Ký tự đơn lẻ
D. Một dãy các ký tự.
15. Phát biểu nào sau đây mô tả đúng nhất chức năng của vòng lặp for trong nhiều ngôn ngữ lập trình?
A. Thực hiện khối lệnh một lần duy nhất.
B. Thực hiện khối lệnh cho đến khi một điều kiện trở thành sai.
C. Thực hiện khối lệnh một số lần xác định trước, thường dựa trên một biến đếm.
D. Nhảy đến một phần khác của chương trình.
16. Trong lập trình, việc sử dụng hàm (function) mang lại lợi ích gì?
A. Làm cho chương trình dài hơn và khó hiểu hơn.
B. Tăng cường khả năng tái sử dụng mã và giúp tổ chức chương trình tốt hơn.
C. Chỉ cho phép thực hiện một loại phép toán duy nhất.
D. Luôn yêu cầu người dùng nhập liệu.
17. Trong ngôn ngữ lập trình, cấu trúc điều khiển nào cho phép thực hiện một khối lệnh nhiều lần dựa trên một điều kiện nhất định?
A. Cấu trúc rẽ nhánh (if-else)
B. Cấu trúc lặp (while, for)
C. Cấu trúc tuần tự
D. Cấu trúc hàm
18. Khi so sánh hai giá trị trong lập trình, toán tử nào được sử dụng để kiểm tra xem chúng có bằng nhau hay không?
19. Khi sử dụng vòng lặp while trong lập trình, điều gì có thể xảy ra nếu điều kiện của vòng lặp luôn đúng?
A. Chương trình sẽ kết thúc ngay lập tức.
B. Chương trình sẽ vào vòng lặp vô hạn.
C. Chương trình sẽ thực hiện lệnh tiếp theo sau vòng lặp.
D. Chương trình sẽ báo lỗi cú pháp.
20. Phát biểu nào sau đây mô tả đúng về cấu trúc dữ liệu (data structure)?
A. Là các câu lệnh điều khiển luồng chương trình.
B. Là cách tổ chức và lưu trữ dữ liệu để có thể truy cập và thao tác hiệu quả.
C. Là các phép toán toán học.
D. Là các hàm thực hiện một nhiệm vụ cụ thể.
21. Tại sao việc sử dụng vòng lặp lồng nhau (nested loops) cần được cân nhắc kỹ lưỡng về hiệu suất?
A. Vì vòng lặp lồng nhau làm cho mã nguồn dễ đọc hơn.
B. Vì số lượng phép toán tăng theo cấp số nhân với số vòng lặp lồng nhau.
C. Vì vòng lặp lồng nhau chỉ có thể sử dụng với số lượng cố định.
D. Vì vòng lặp lồng nhau luôn yêu cầu bộ nhớ lớn.
22. Trong ngữ cảnh của ngôn ngữ lập trình, một biến có thể được hiểu là gì?
A. Một câu lệnh cố định không thay đổi.
B. Một hàm xử lý dữ liệu.
C. Một vùng nhớ được đặt tên để lưu trữ giá trị.
D. Một cấu trúc điều khiển luồng chương trình.
23. Khái niệm lớp (class) trong lập trình hướng đối tượng đóng vai trò là gì?
A. Một đối tượng cụ thể đã được tạo ra.
B. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
C. Một cấu trúc điều khiển lặp.
D. Một biến toàn cục.
24. Câu lệnh nào sau đây thường được sử dụng để khai báo một biến kiểu số nguyên trong nhiều ngôn ngữ lập trình?
A. float
B. char
C. int
D. string
25. Trong câu lệnh if (điều_kiện) { khối_lệnh_1 } else { khối_lệnh_2 }, khi nào khối_lệnh_2 sẽ được thực thi?
A. Khi điều_kiện là đúng.
B. Khi điều_kiện là sai.
C. Luôn luôn, bất kể điều_kiện.
D. Khi chương trình kết thúc.