1. Trong lập trình web, `HTML` được sử dụng để làm gì?
A. Tạo kiểu dáng cho trang web
B. Xử lý tương tác người dùng
C. Xây dựng cấu trúc và nội dung của trang web
D. Quản lý cơ sở dữ liệu
2. Trong lập trình, `variable` (biến) là gì?
A. Một hàm đặc biệt dùng để tính toán
B. Một vùng nhớ được đặt tên để lưu trữ dữ liệu
C. Một loại lỗi trong chương trình
D. Một ngôn ngữ lập trình
3. Trong lập trình hướng đối tượng, `polymorphism` có nghĩa là gì?
A. Khả năng một đối tượng có nhiều thuộc tính
B. Khả năng một lớp kế thừa từ nhiều lớp
C. Khả năng một đối tượng có nhiều hình thức (phương thức) khác nhau
D. Khả năng ẩn thông tin bên trong một đối tượng
4. Đâu là lợi ích chính của việc sử dụng `data structures` (cấu trúc dữ liệu) trong lập trình?
A. Để làm cho mã nguồn khó đọc hơn
B. Để tổ chức và lưu trữ dữ liệu một cách hiệu quả
C. Để giảm kích thước của chương trình
D. Để tăng số lượng lỗi trong chương trình
5. Trong lập trình, `algorithm` là gì?
A. Một loại biến đặc biệt
B. Một công cụ để gỡ lỗi
C. Một tập hợp các bước để giải quyết một vấn đề
D. Một ngôn ngữ lập trình
6. Trong lập trình hướng đối tượng, tính chất nào cho phép một lớp kế thừa các thuộc tính và phương thức của một lớp khác?
A. Đóng gói (Encapsulation)
B. Đa hình (Polymorphism)
C. Kế thừa (Inheritance)
D. Trừu tượng (Abstraction)
7. Trong lập trình, `array` là gì?
A. Một kiểu dữ liệu cơ bản chỉ chứa một giá trị
B. Một tập hợp các biến có kiểu dữ liệu khác nhau
C. Một tập hợp các phần tử có cùng kiểu dữ liệu
D. Một hàm đặc biệt dùng để sắp xếp dữ liệu
8. Ngôn ngữ lập trình nào sau đây 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/Kotlin
D. C#
9. Phương pháp gỡ lỗi (debugging) nào sau đây liên quan đến việc thực thi mã từng dòng một để theo dõi giá trị của các biến?
A. Black box testing
B. Code review
C. Stepping
D. Stress testing
10. Trong cấu trúc dữ liệu, thuật ngữ LIFO là viết tắt của?
A. Last In First Out
B. Last In Follow Out
C. Longest In First Out
D. Level In First Out
11. Sự khác biệt chính giữa `compilation` (biên dịch) và `interpretation` (thông dịch) là gì?
A. Biên dịch thực hiện mã nguồn từng dòng một, thông dịch chuyển đổi toàn bộ mã nguồn thành mã máy trước khi thực thi
B. Thông dịch thực hiện mã nguồn từng dòng một, biên dịch chuyển đổi toàn bộ mã nguồn thành mã máy trước khi thực thi
C. Cả hai đều thực hiện mã nguồn từng dòng một
D. Cả hai đều chuyển đổi toàn bộ mã nguồn thành mã máy trước khi thực thi
12. Đâu là mục đích chính của việc sử dụng `database` (cơ sở dữ liệu) trong ứng dụng?
A. Để tạo giao diện người dùng đẹp mắt
B. Để lưu trữ, quản lý và truy xuất dữ liệu
C. Để tăng tốc độ thực thi của chương trình
D. Để bảo vệ mã nguồn khỏi bị sao chép
13. Đâu là mục đích chính của việc sử dụng `version control` (kiểm soát phiên bản) trong phát triển phần mềm?
A. Để tăng tốc độ thực thi của chương trình
B. Để quản lý và theo dõi các thay đổi của mã nguồn
C. Để tự động tạo tài liệu cho dự án
D. Để bảo vệ mã nguồn khỏi virus
14. Đâu là lợi ích chính của việc sử dụng hàm (function) trong lập trình?
A. Làm cho chương trình chạy chậm hơn
B. Tăng độ phức tạp của mã
C. Tái sử dụng mã và giảm sự trùng lặp
D. Giới hạn khả năng mở rộng của chương trình
15. Phương pháp tiếp cận `Test-Driven Development` (TDD) là gì?
A. Viết mã trước, sau đó viết test
B. Viết test trước, sau đó viết mã để vượt qua test
C. Chỉ viết test sau khi hoàn thành dự án
D. Không cần viết test, chỉ tập trung vào viết mã
16. Trong lập trình mạng, `TCP` là gì?
A. Transmission Control Protocol
B. Transfer Control Program
C. Total Communication Protocol
D. Technical Communication Process
17. Trong lập trình, `bug` là gì?
A. Một tính năng không được ghi lại trong chương trình
B. Một lỗi hoặc sai sót trong mã nguồn gây ra hành vi không mong muốn
C. Một loại virus máy tính
D. Một đoạn mã được sử dụng để tối ưu hóa hiệu suất
18. Kiểu dữ liệu `Boolean` thường được sử dụng để biểu diễn giá trị nào?
A. Số nguyên
B. Số thực
C. Chuỗi ký tự
D. True hoặc False
19. Cấu trúc điều khiển nào sau đây cho phép thực hiện một đoạn mã lặp đi lặp lại cho đến khi một điều kiện nhất định không còn đúng?
A. If-else
B. Switch-case
C. While loop
D. Try-catch
20. Trong lập trình, thuật ngữ nào dùng để chỉ một hàm tự gọi lại chính nó?
A. Iteration
B. Recursion
C. Overloading
D. Polymorphism
21. Đâu là mục đích chính của việc sử dụng comments (chú thích) trong mã nguồn?
A. Để tăng tốc độ thực thi của chương trình
B. Để trình biên dịch bỏ qua các dòng mã
C. Để giải thích mã nguồn cho người đọc
D. Để tạo ra các lỗi trong quá trình biên dịch
22. Trong lập trình hướng đối tượng, `encapsulation` (đóng gói) là gì?
A. Khả năng một lớp kế thừa từ nhiều lớp
B. Khả năng một đối tượng có nhiều hình thức khác nhau
C. Khả năng ẩn thông tin và hành vi bên trong một đối tượng
D. Khả năng tạo ra các đối tượng mới từ các đối tượng đã có
23. Biến toàn cục (global variable) khác với biến cục bộ (local variable) như thế nào?
A. Biến toàn cục chỉ có thể được sử dụng trong một hàm duy nhất.
B. Biến cục bộ có thể được truy cập từ bất kỳ đâu trong chương trình.
C. Biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình.
D. Biến cục bộ được khai báo bên ngoài tất cả các hàm.
24. Sự khác biệt chính giữa `==` và `=` trong hầu hết các ngôn ngữ lập trình là gì?
A. `==` dùng để gán giá trị, `=` dùng để so sánh
B. `==` dùng để so sánh, `=` dùng để gán giá trị
C. Cả hai đều dùng để gán giá trị
D. Cả hai đều dùng để so sánh
25. Kiểu dữ liệu nào sau đây thường được sử dụng để lưu trữ một chuỗi ký tự trong hầu hết các ngôn ngữ lập trình?
A. Integer
B. Float
C. Boolean
D. String
26. Trong ngữ cảnh của cơ sở dữ liệu, `SQL` là gì?
A. Structured Question Language
B. Standard Query Linguistics
C. Structured Query Language
D. Simple Query Language
27. Trong lập trình, thuật ngữ `syntax` đề cập đến điều gì?
A. Logic của chương trình
B. Quy tắc viết mã hợp lệ
C. Hiệu suất của chương trình
D. Giao diện người dùng
28. Thuật ngữ `API` là viết tắt của cụm từ nào?
A. Advanced Programming Interface
B. Application Programming Interface
C. Automated Program Integration
D. Applied Programming Instruction
29. Trong lập trình, thuật ngữ `framework` (khung công tác) thường được dùng để chỉ điều gì?
A. Một công cụ để vẽ đồ họa
B. Một tập hợp các thư viện và công cụ hỗ trợ phát triển phần mềm
C. Một ngôn ngữ lập trình mới
D. Một hệ điều hành
30. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc FIFO (First In, First Out)?
A. Stack
B. Queue
C. Linked List
D. Tree