1. Phát biểu nào sau đây mô tả đúng về lập trình song song (parallel programming)?
A. Thực hiện các tác vụ theo một trình tự nghiêm ngặt, không có sự chồng chéo.
B. Thực hiện nhiều tác vụ cùng một lúc bằng cách sử dụng nhiều bộ xử lý hoặc lõi xử lý.
C. Chỉ sử dụng một bộ xử lý duy nhất để thực hiện tất cả các tác vụ.
D. Tập trung vào việc tối ưu hóa việc sử dụng bộ nhớ.
2. Tại sao việc đặt tên biến và hàm một cách rõ ràng, có ý nghĩa lại quan trọng trong lập trình?
A. Để chương trình chạy nhanh hơn.
B. Để giảm dung lượng tệp mã nguồn.
C. Để mã nguồn dễ đọc, dễ hiểu và dễ bảo trì bởi chính mình và người khác.
D. Để đảm bảo chương trình tương thích với mọi hệ điều hành.
3. Phát biểu nào sau đây mô tả đúng về khái niệm đệ quy (recursion) trong lập trình?
A. Một vòng lặp thực hiện một số lần cố định.
B. Một hàm tự gọi lại chính nó để giải quyết một vấn đề nhỏ hơn.
C. Một cách để lưu trữ dữ liệu trong bộ nhớ.
D. Một câu lệnh điều kiện phức tạp.
4. Phát biểu nào sau đây mô tả đúng vai trò của biến toàn cục (global variable) trong lập trình?
A. Chỉ có thể truy cập trong một hàm cụ thể.
B. Có thể truy cập và sửa đổi từ bất kỳ đâu trong phạm vi của chương trình.
C. Tự động bị xóa khi hàm kết thúc.
D. Chỉ được khai báo bên trong các lớp đối tượng.
5. Phát biểu nào sau đây mô tả đúng về khái niệm lập trình hướng đối tượng (Object-Oriented Programming - OOP)?
A. Tập trung vào việc viết các câu lệnh tuần tự.
B. Tổ chức mã nguồn thành các đối tượng (objects), mỗi đối tượng chứa dữ liệu (thuộc tính) và hành vi (phương thức).
C. Sử dụng chủ yếu các cấu trúc dữ liệu mảng.
D. Yêu cầu người dùng nhập dữ liệu trước khi chương trình bắt đầu.
6. Ngôn ngữ lập trình nào thường được sử dụng để phát triển các ứng dụng di động cho hệ điều hành Android?
A. Swift
B. Objective-C
C. Java hoặc Kotlin
D. C#
7. Khi một chương trình gặp lỗi Syntax Error, điều này thường có nghĩa là gì?
A. Chương trình đã chạy nhưng cho kết quả sai.
B. Có lỗi trong việc tuân thủ quy tắc ngữ pháp của ngôn ngữ lập trình.
C. Chương trình yêu cầu nhiều bộ nhớ hơn mức cho phép.
D. Có sự cố với việc truy cập dữ liệu.
8. Trong lập trình web, vai trò của HTML là gì?
A. Tạo ra các hiệu ứng động và tương tác trên trang web.
B. Định nghĩa cấu trúc và nội dung của trang web.
C. Xử lý logic phía máy chủ và kết nối cơ sở dữ liệu.
D. Đảm bảo tính bảo mật cho trang web.
9. Trong lập trình, API (Application Programming Interface) là gì?
A. Một loại phần mềm diệt virus.
B. Một tập hợp các định nghĩa và giao thức cho phép các ứng dụng phần mềm khác nhau giao tiếp với nhau.
C. Một ngôn ngữ lập trình mới.
D. Một định dạng tệp tin để lưu trữ hình ảnh.
10. Phát biểu nào sau đây đúng về mục đích của việc sử dụng CSS (Cascading Style Sheets) trong phát triển web?
A. Tạo ra các chức năng tương tác phía người dùng.
B. Định nghĩa cách hiển thị (giao diện, bố cục, màu sắc) của các phần tử HTML.
C. Lưu trữ dữ liệu người dùng trên máy chủ.
D. Kiểm tra tính hợp lệ của dữ liệu nhập từ người dùng.
11. Mục đích chính của việc sử dụng biến (variable) trong lập trình là gì?
A. Để lưu trữ các hàm và phương thức.
B. Để lưu trữ dữ liệu có thể thay đổi trong quá trình chương trình chạy.
C. Để định nghĩa các lớp đối tượng.
D. Để hiển thị kết quả ra màn hình.
12. Khi làm việc với các cấu trúc dữ liệu dạng mảng (array), thao tác nào sau đây cho phép truy cập vào một phần tử cụ thể trong mảng?
A. Sử dụng tên của mảng.
B. Sử dụng chỉ số (index) của phần tử đó.
C. Sử dụng giá trị của phần tử đó.
D. Sử dụng độ dài của mảng.
13. Trong lập trình, một biến được khai báo với kiểu dữ liệu string có thể lưu trữ những loại thông tin nào?
A. Các ký tự số (ví dụ: 123)
B. Các ký tự chữ cái và ký tự đặc biệt (ví dụ: Hello World! #1)
C. Các giá trị logic (True/False)
D. Các giá trị thập phân (ví dụ: 3.14)
14. Khi bạn cần lưu trữ một tập hợp các cặp khóa-giá trị (key-value pairs) và truy cập giá trị dựa trên khóa duy nhất, cấu trúc dữ liệu nào thường được sử dụng?
A. Mảng (Array)
B. Danh sách liên kết (Linked List)
C. Bảng băm (Hash Table) hoặc Từ điển (Dictionary)
D. Ngăn xếp (Stack)
15. Trong lập trình, thuật toán (algorithm) là gì?
A. Một ngôn ngữ lập trình cụ thể.
B. Một tập hợp các bước hoặc quy tắc rõ ràng để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Một loại phần cứng máy tính.
D. Một giao diện người dùng đồ họa.
16. Trong ngữ cảnh lập trình, hàm (function) có vai trò gì?
A. Lưu trữ dữ liệu tạm thời trong bộ nhớ.
B. Định nghĩa một khối mã có thể tái sử dụng để thực hiện một nhiệm vụ cụ thể.
C. Kiểm tra lỗi cú pháp trong chương trình.
D. Xác định kiểu dữ liệu của biến.
17. Trong lập trình, một vòng lặp vô hạn (infinite loop) là gì?
A. Một vòng lặp thực hiện đúng 100 lần lặp.
B. Một vòng lặp không có điều kiện dừng hoặc điều kiện dừng không bao giờ đạt được.
C. Một vòng lặp chỉ thực hiện khi người dùng nhấn phím Enter.
D. Một vòng lặp bị lỗi cú pháp.
18. Trong lập trình, cấu trúc dữ liệu (data structure) là gì?
A. Một công cụ để biên dịch mã nguồn.
B. Một phương pháp để tổ chức, quản lý và lưu trữ dữ liệu một cách hiệu quả.
C. Một loại câu lệnh điều khiển luồng.
D. Một giao diện để tương tác với người dùng.
19. Phát biểu nào sau đây đúng về câu lệnh điều kiện if-else?
A. Chỉ thực hiện một khối lệnh duy nhất, bất kể điều kiện.
B. Thực hiện một khối lệnh nếu điều kiện đúng, và một khối lệnh khác nếu điều kiện sai.
C. Lặp lại một khối lệnh cho đến khi điều kiện sai.
D. Cho phép người dùng lựa chọn giữa nhiều tùy chọn.
20. Trong ngôn ngữ lập trình Python, từ khóa nào được sử dụng để định nghĩa một hàm?
A. class
B. return
C. def
D. import
21. Trong lập trình, debug (gỡ lỗi) là quá trình gì?
A. Viết mã nguồn mới cho chương trình.
B. Tìm kiếm, xác định và sửa các lỗi 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.
22. Trong ngôn ngữ lập trình Python, ký hiệu nào được sử dụng để thực hiện phép chia lấy phần dư (modulo)?
23. Phát biểu nào mô tả đúng về cấu trúc dữ liệu list (danh sách) trong nhiều ngôn ngữ lập trình hiện đại?
A. Chỉ có thể chứa các phần tử có cùng kiểu dữ liệu.
B. Có thể chứa các phần tử có kiểu dữ liệu khác nhau và có thể thay đổi kích thước.
C. Các phần tử được lưu trữ dưới dạng liên kết, không có thứ tự cố định.
D. Luôn có kích thước cố định sau khi khai báo.
24. Phát biểu nào sau đây mô tả đúng chức năng của một hàm tạo (constructor) trong lập trình hướng đối tượng?
A. Thực thi một hành động bất kỳ khi đối tượng được gọi.
B. Khởi tạo trạng thái ban đầu của một đối tượng khi nó được tạo ra.
C. Hủy bỏ một đối tượng khi nó không còn được sử dụng.
D. Thay đổi tên của một lớp đối tượng.
25. Phát biểu nào sau đây mô tả chính xác nhất chức năng của một vòng lặp for trong lập trình?
A. Thực hiện một khối mã lệnh một lần duy nhất.
B. Thực hiện một khối mã lệnh nhiều lần, với số lần lặp được xác định trước.
C. Thực hiện một khối mã lệnh cho đến khi một điều kiện cụ thể trở thành sai.
D. Cho phép người dùng nhập dữ liệu từ bàn phím.