1. Trong lập trình hướng thủ tục (procedural programming), trọng tâm chính là:
A. Dữ liệu và đối tượng.
B. Các hàm và thủ tục (subroutines).
C. Giao diện người dùng.
D. Cấu trúc dữ liệu phức tạp.
2. Khái niệm 'class′ trong OOP là gì?
A. Một đối tượng cụ thể.
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 hàm đặc biệt trong OOP.
D. Một biến toàn cục trong OOP.
3. Vòng lặp 'for′ thường được sử dụng khi nào?
A. Khi số lần lặp không xác định trước.
B. Khi cần lặp vô hạn.
C. Khi biết trước số lần lặp cần thực hiện.
D. Khi cần kiểm tra điều kiện trước mỗi lần lặp.
4. Cấu trúc dữ liệu (data structure) là gì?
A. Một kiểu dữ liệu cơ bản như số nguyên hoặc số thực.
B. Cách tổ chức và lưu trữ dữ liệu để sử dụng hiệu quả.
C. Một lệnh điều khiển luồng chương trình.
D. Một thuật toán sắp xếp dữ liệu.
5. Ngôn ngữ lập trình bậc cao (high-level programming language) có đặc điểm chính là:
A. Khó học và khó sử dụng.
B. Gần gũi với ngôn ngữ máy, khó đọc và viết.
C. Dễ đọc, dễ viết, gần gũi với ngôn ngữ tự nhiên.
D. Chỉ dùng để lập trình hệ thống.
6. Phép toán 'modulo′ (%) trong lập trình dùng để làm gì?
A. Tính thương của phép chia.
B. Tính tổng của hai số.
C. Tính số dư của phép chia.
D. Tính tích của hai số.
7. Danh sách liên kết (linked list) có ưu điểm gì so với mảng?
A. Truy cập phần tử nhanh hơn mảng.
B. Kích thước cố định, tiết kiệm bộ nhớ hơn.
C. Dễ dàng thêm hoặc xóa phần tử ở đầu hoặc giữa danh sách.
D. Sử dụng bộ nhớ liên tục, hiệu quả hơn về mặt bộ nhớ cache.
8. Tính kế thừa (inheritance) trong OOP cho phép:
A. Tạo ra các đối tượng độc lập.
B. Một class con kế thừa thuộc tính và phương thức từ class cha.
C. Đóng gói dữ liệu.
D. Đa hình hóa phương thức.
9. Lỗi cú pháp (syntax error) xảy ra khi nào?
A. Chương trình chạy sai logic.
B. Vi phạm quy tắc ngữ pháp của ngôn ngữ lập trình.
C. Bộ nhớ chương trình bị tràn.
D. Kết quả chương trình không như mong đợi.
10. Biến cục bộ (local variable) là biến được khai báo ở đâu?
A. Bên ngoài tất cả các hàm.
B. Bên trong một hàm cụ thể, chỉ sử dụng được trong hàm đó.
C. Trong toàn bộ chương trình.
D. Trong một module riêng biệt.
11. Trong lập trình, biến (variable) được hiểu là:
A. Một vùng nhớ được đặt tên, dùng để lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
B. Một giá trị cố định, không thay đổi trong suốt chương trình.
C. Một loại dữ liệu đặc biệt chỉ dùng để lưu trữ số nguyên.
D. Một lệnh điều khiển luồng thực thi của chương trình.
12. Tham số (parameter) của hàm là gì?
A. Biến cục bộ bên trong hàm, không thể truy cập từ bên ngoài.
B. Giá trị trả về của hàm sau khi thực thi.
C. Các biến được truyền vào hàm khi gọi hàm, để hàm sử dụng.
D. Tên của hàm, dùng để gọi hàm.
13. Tính đóng gói (encapsulation) trong OOP có nghĩa là:
A. Tạo ra nhiều class.
B. Che giấu thông tin và hành vi bên trong đối tượng, chỉ cho phép truy cập thông qua giao diện công khai.
C. Kế thừa thuộc tính từ class cha.
D. Đa hình hóa phương thức.
14. Ngôn ngữ lập trình bậc thấp (low-level programming language) như hợp ngữ (assembly) thường được sử dụng khi nào?
A. Khi cần viết ứng dụng web.
B. Khi cần kiểm soát phần cứng trực tiếp và tối ưu hiệu suất.
C. Khi cần phát triển ứng dụng di động nhanh chóng.
D. Khi cần xây dựng giao diện người dùng phức tạp.
15. Khái niệm 'object′ (đối tượng) trong OOP là gì?
A. Một class.
B. Một thể hiện cụ thể của một class.
C. Một phương thức trong class.
D. Một thuộc tính của class.
16. Thông dịch (interpretation) khác với biên dịch (compilation) ở điểm nào?
A. Chỉ biên dịch mới tạo ra mã máy.
B. Thông dịch chạy mã nguồn trực tiếp từng dòng, không cần tạo mã máy trước.
C. Biên dịch nhanh hơn thông dịch.
D. Thông dịch chỉ dùng cho ngôn ngữ cấp thấp.
17. Kiểu dữ liệu nào sau đây thường được sử dụng để lưu trữ văn bản trong lập trình?
A. Integer
B. Float
C. String
D. Boolean
18. Lỗi logic (logic error) xảy ra khi nào?
A. Viết sai cú pháp ngôn ngữ.
B. Chương trình chạy không ra kết quả.
C. Chương trình chạy nhưng cho ra kết quả sai do sai thuật toán.
D. Chương trình bị treo hoặc đơ.
19. Biên dịch (compilation) là quá trình:
A. Chạy trực tiếp mã nguồn từng dòng một.
B. Chuyển đổi mã nguồn thành mã máy để máy tính có thể hiểu và thực thi.
C. Tìm và sửa lỗi trong mã nguồn.
D. Viết mã nguồn bằng ngôn ngữ lập trình.
20. Kỹ thuật lập trình hướng đối tượng (OOP) tập trung vào việc tổ chức chương trình dựa trên:
A. Các hàm và thủ tục.
B. Dữ liệu và đối tượng.
C. Luồng điều khiển chương trình.
D. Cấu trúc dữ liệu.
21. Trình gỡ lỗi (debugger) được sử dụng để:
A. Viết mã nguồn nhanh hơn.
B. Tối ưu hóa hiệu suất chương trình.
C. Tìm và sửa lỗi (bug) trong chương trình.
D. Biên dịch mã nguồn thành mã máy.
22. Mảng (array) là một cấu trúc dữ liệu:
A. Chỉ lưu trữ các phần tử có kiểu dữ liệu khác nhau.
B. Lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu, có thứ tự.
C. Không thể thay đổi kích thước sau khi khai báo.
D. Chỉ dùng để lưu trữ số nguyên.
23. Kiểm thử (testing) phần mềm có mục đích chính là:
A. Làm cho chương trình chạy nhanh hơn.
B. Tìm và sửa lỗi trong phần mềm trước khi phát hành.
C. Viết tài liệu hướng dẫn sử dụng phần mềm.
D. Tối ưu hóa giao diện người dùng.
24. Cấu trúc điều khiển 'if-else′ trong lập trình được sử dụng để:
A. Lặp lại một đoạn mã nhiều lần.
B. Thực hiện một đoạn mã dựa trên điều kiện đúng hoặc sai.
C. Định nghĩa một hàm mới.
D. Khai báo một biến.
25. Tính đa hình (polymorphism) trong OOP có nghĩa là:
A. Một class có nhiều thuộc tính.
B. Một đối tượng có nhiều trạng thái.
C. Các đối tượng khác nhau có thể phản ứng khác nhau với cùng một phương thức.
D. Kế thừa từ nhiều class cha.
26. Mục đích chính của việc sử dụng chú thích (comment) trong mã nguồn là gì?
A. Làm cho chương trình chạy nhanh hơn.
B. Giúp người đọc hiểu rõ hơn về chức năng của mã.
C. Thay đổi cách chương trình thực thi.
D. Báo lỗi khi chương trình có vấn đề.
27. Hàm (function) trong lập trình có vai trò chính là:
A. Làm chậm tốc độ thực thi chương trình.
B. Tổ chức mã nguồn thành các khối độc lập, tái sử dụng được.
C. Tăng độ phức tạp của chương trình.
D. Giới hạn khả năng mở rộng của chương trình.
28. Giá trị trả về (return value) của hàm là:
A. Tham số đầu vào của hàm.
B. Kết quả mà hàm tạo ra sau khi thực thi và trả về cho nơi gọi.
C. Biến toàn cục được sử dụng trong hàm.
D. Số dòng mã trong thân hàm.
29. Biến toàn cục (global variable) là biến được khai báo ở đâu?
A. Bên trong một hàm cụ thể.
B. Bên ngoài tất cả các hàm, trong phạm vi chương trình.
C. Chỉ trong vòng lặp.
D. Chỉ trong cấu trúc điều khiển 'if-else′.
30. Thuật toán (algorithm) trong lập trình là:
A. Một ngôn ngữ lập trình cụ thể.
B. Một chương trình hoàn chỉnh có thể chạy được.
C. Một tập hợp các bước hướng dẫn rõ ràng để giải quyết một vấn đề cụ thể.
D. Một loại lỗi phổ biến trong chương trình.