1. Mục đích của việc sử dụng comment (chú thích) trong mã nguồn là gì?
A. Để trình biên dịch hiểu rõ hơn về mã.
B. Để tăng tốc độ thực thi của chương trình.
C. Để giải thích mã nguồn cho con người đọc, giúp hiểu rõ hơn logic và mục đích.
D. Để định nghĩa các biến và hàm.
2. Trong thuật toán sắp xếp, phương pháp nào thường có độ phức tạp thời gian trung bình là O(n log n)?
A. Bubble Sort
B. Insertion Sort
C. Merge Sort
D. Selection Sort
3. Một biến trong lập trình là gì?
A. Một từ khóa dành riêng trong ngôn ngữ lập trình.
B. Một tên gọi đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
C. Một câu lệnh điều khiển luồng chương trình.
D. Một kiểu dữ liệu cố định không thể thay đổi.
4. Trong mạng máy tính, địa chỉ IP có vai trò gì?
A. Xác định tên của máy tính trong mạng.
B. Định danh duy nhất cho một thiết bị trên mạng, cho phép định tuyến dữ liệu.
C. Xác định loại kết nối mạng.
D. Mã hóa dữ liệu truyền đi.
5. Câu lệnh nào trong SQL được sử dụng để truy xuất dữ liệu từ một hoặc nhiều bảng?
A. INSERT
B. UPDATE
C. DELETE
D. SELECT
6. Trong Python, hàm `print()` dùng để làm gì?
A. Nhập dữ liệu từ người dùng.
B. In kết quả ra màn hình hoặc thiết bị xuất chuẩn.
C. Định nghĩa một biến mới.
D. Thực hiện phép tính toán học.
7. Trong hệ điều hành, tiến trình (process) là gì?
A. Một chương trình đang chạy, bao gồm mã lệnh và trạng thái hoạt động.
B. Một đơn vị nhỏ nhất của CPU có thể được lập lịch.
C. Một đoạn mã có thể được thực thi độc lập.
D. Một tập hợp các tập tin liên quan.
8. Khái niệm Big O notation trong khoa học máy tính dùng để làm gì?
A. Đo lường chính xác thời gian chạy của thuật toán.
B. Mô tả hiệu suất của thuật toán theo tốc độ tăng trưởng khi kích thước đầu vào thay đổi.
C. Xác định số lượng dòng mã trong một chương trình.
D. Kiểm tra lỗi cú pháp trong mã nguồn.
9. Trong lập trình, một mảng (array) có các phần tử được truy cập thông qua:
A. Tên biến duy nhất cho mỗi phần tử.
B. Một chỉ số (index) hoặc khóa.
C. Một con trỏ (pointer).
D. Một giá trị băm (hash value).
10. Trong ngôn ngữ C++, toán tử ++ được sử dụng để làm gì?
A. Giảm giá trị của biến đi 1.
B. Tăng giá trị của biến lên 1.
C. Nhân giá trị của biến với 2.
D. Chia giá trị của biến cho 2.
11. Đâu là kiểu dữ liệu nguyên thủy (primitive data type) phổ biến nhất trong hầu hết các ngôn ngữ lập trình để biểu diễn số nguyên?
A. String
B. Boolean
C. Integer
D. Float
12. Ngôn ngữ lập trình nào thường được sử dụng để phát triển các ứng dụng web phía máy khách (client-side)?
A. Python
B. Java
C. JavaScript
D. C#
13. Thành phần nào của máy tính chịu trách nhiệm thực thi các lệnh của chương trình máy tính?
A. Ổ cứng (Hard Drive)
B. Bộ nhớ RAM (Random Access Memory)
C. Bộ xử lý trung tâm (CPU - Central Processing Unit)
D. Bo mạch chủ (Motherboard)
14. Khái niệm Recursion (đệ quy) trong lập trình là gì?
A. Một vòng lặp thực hiện công việc nhiều lần.
B. Một hàm tự gọi lại chính nó để giải quyết vấn đề.
C. Một phương pháp để ẩn dữ liệu người dùng.
D. Một cách để kết nối các máy tính lại với nhau.
15. Mục đích chính của việc sử dụng vòng lặp for trong lập trình là gì?
A. Thực hiện một khối mã nhiều lần với một điều kiện nhất định.
B. Lặp lại một khối mã một số lần xác định trước.
C. Thực hiện một khối mã cho đến khi một điều kiện bị sai.
D. Thoát khỏi vòng lặp hiện tại.
16. Trong mạng máy tính, giao thức nào được sử dụng chủ yếu để truyền tải các trang web?
A. FTP (File Transfer Protocol)
B. SMTP (Simple Mail Transfer Protocol)
C. HTTP (Hypertext Transfer Protocol)
D. TCP (Transmission Control Protocol)
17. Trong thuật toán tìm kiếm, phương pháp nào có độ phức tạp thời gian là O(log n) trong trường hợp dữ liệu đã sắp xếp?
A. Linear Search
B. Binary Search
C. Depth-First Search
D. Breadth-First Search
18. Khái niệm nào mô tả việc che giấu chi tiết triển khai bên trong và chỉ hiển thị các chức năng cần thiết cho người dùng?
A. Inheritance
B. Abstraction
C. Polymorphism
D. Encapsulation
19. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây được sử dụng để khai báo một hàm?
A. function
B. def
C. func
D. declare
20. Đâu là một ví dụ về cấu trúc dữ liệu tuyến tính?
A. Cây (Tree)
B. Đồ thị (Graph)
C. Ngăn xếp (Stack)
D. Heap
21. Nguyên lý DRY (Dont Repeat Yourself) trong lập trình khuyến khích điều gì?
A. Viết mã càng dài càng tốt để dễ đọc.
B. Tránh lặp lại cùng một đoạn mã hoặc logic nhiều lần, thay vào đó sử dụng hàm hoặc phương thức.
C. Sử dụng nhiều biến khác nhau cho cùng một mục đích.
D. Chỉ viết mã cho những gì cần thiết ngay lập tức.
22. Trong ngôn ngữ lập trình Java, từ khóa static dùng để làm gì?
A. Cho phép lớp kế thừa từ lớp khác.
B. Biến một thuộc tính hoặc phương thức thuộc về lớp, không phải đối tượng cụ thể.
C. Đảm bảo một phương thức chỉ được gọi một lần.
D. Ẩn các chi tiết triển khai của một lớp.
23. Đâu là một ví dụ về phần mềm hệ thống (system software)?
A. Microsoft Word
B. Google Chrome
C. Hệ điều hành Windows
D. Adobe Photoshop
24. Trong lập trình hướng đối tượng, khái niệm nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?
A. Encapsulation
B. Polymorphism
C. Inheritance
D. Abstraction
25. Trong cơ sở dữ liệu quan hệ, một bản ghi (record) thường tương ứng với:
A. Một cột (column) trong bảng.
B. Một dòng (row) trong bảng, đại diện cho một đối tượng hoặc thực thể.
C. Một khóa chính (primary key).
D. Một chỉ mục (index).