1. Khái niệm debugger trong phát triển phần mềm là gì?
A. Một công cụ để viết mã nguồn.
B. Một công cụ để quản lý phiên bản mã nguồn.
C. Một công cụ để tìm kiếm và sửa lỗi (bug) trong chương trình.
D. Một công cụ để biên dịch mã nguồn.
2. Trong lập trình, vòng lặp for thường được sử dụng khi nào?
A. Khi số lần lặp không được xác định trước và phụ thuộc vào một điều kiện nào đó.
B. Khi cần thực hiện một khối lệnh một lần duy nhất.
C. Khi số lần lặp đã được biết trước hoặc khi lặp qua một chuỗi các phần tử.
D. Khi cần thực hiện một khối lệnh cho đến khi một điều kiện trở thành sai.
3. Trong ngôn ngữ lập trình C++, câu lệnh if-else được sử dụng để làm gì?
A. Lặp lại một khối mã nhiều lần.
B. Định nghĩa một hàm mới.
C. Thực hiện các khối mã khác nhau dựa trên việc đánh giá một điều kiện logic.
D. Khởi tạo một mảng.
4. Trong ngôn ngữ lập trình Python, cấu trúc dữ liệu Dictionary (từ điển) được sử dụng để:
A. Lưu trữ một danh sách các phần tử không có thứ tự và không trùng lặp.
B. Lưu trữ các cặp khóa-giá trị (key-value pairs).
C. Lưu trữ một chuỗi các phần tử có thứ tự và không thể thay đổi.
D. Lưu trữ một chuỗi các phần tử có thứ tự và có thể thay đổi.
5. Khái niệm API (Application Programming Interface) trong phát triển phần mềm có ý nghĩa gì?
A. Một giao diện người dùng đồ họa (GUI).
B. Một tập hợp các quy tắc và định nghĩa cho phép các ứng dụng phần mềm khác nhau giao tiếp với nhau.
C. Một cơ sở dữ liệu được lưu trữ trên đám mây.
D. Một trình biên dịch mã nguồn.
6. Trong ngữ cảnh của lập trình Python, từ khóa def được sử dụng để làm gì?
A. Định nghĩa một lớp.
B. Định nghĩa một hàm.
C. Khởi tạo một biến.
D. Nhập dữ liệu từ người dùng.
7. Phát biểu nào sau đây mô tả đúng nhất về Algorithm Efficiency (Hiệu quả thuật toán)?
A. Độ phức tạp của mã nguồn.
B. Thời gian và không gian bộ nhớ mà thuật toán sử dụng để hoàn thành công việc.
C. Số lượng dòng mã trong thuật toán.
D. Khả năng dễ đọc của thuật toán.
8. Trong mạng máy tính, giao thức TCP (Transmission Control Protocol) nổi bật với đặc điểm nào?
A. Không đảm bảo việc gửi và nhận dữ liệu theo đúng thứ tự.
B. Thiết lập kết nối tin cậy, đảm bảo việc truyền dữ liệu có thứ tự và không bị mất mát.
C. Truyền dữ liệu nhanh chóng nhưng không quan tâm đến tính toàn vẹn.
D. Chỉ sử dụng cho việc truyền các gói tin quảng bá.
9. Trong ngôn ngữ lập trình C++, struct và class có điểm gì giống nhau cơ bản?
A. Cả hai đều chỉ có thể chứa dữ liệu, không có phương thức.
B. Cả hai đều cho phép định nghĩa các kiểu dữ liệu tùy chỉnh bao gồm cả dữ liệu và phương thức.
C. Mặc định, các thành viên của cả hai đều là private.
D. Cả hai đều không thể có hàm tạo (constructor).
10. Trong mạng máy tính, địa chỉ IP (Internet Protocol address) có chức năng chính là gì?
A. Xác định tên miền của một website.
B. Định danh duy nhất cho một thiết bị trên mạng để cho phép giao tiếp.
C. Mã hóa dữ liệu truyền qua mạng.
D. Quản lý băng thông của kết nối mạng.
11. Phát biểu nào sau đây mô tả đúng nhất về Big Data?
A. Các tập dữ liệu rất nhỏ, chỉ vài kilobyte.
B. Các tập dữ liệu có khối lượng lớn, đa dạng về chủng loại, tốc độ tạo ra nhanh và đòi hỏi các phương pháp phân tích mới.
C. Dữ liệu chỉ bao gồm văn bản thuần túy.
D. Dữ liệu được lưu trữ trên một máy tính duy nhất.
12. Phát biểu nào sau đây mô tả đúng nhất về Database Normalization (Chuẩn hóa cơ sở dữ liệu)?
A. Quá trình làm giảm dung lượng lưu trữ của cơ sở dữ liệu bằng cách nén dữ liệu.
B. Một kỹ thuật để phân chia các bảng lớn thành các bảng nhỏ hơn, có quan hệ với nhau, nhằm giảm dư thừa dữ liệu và cải thiện tính toàn vẹn dữ liệu.
C. Quá trình mã hóa dữ liệu để bảo mật.
D. Việc tạo chỉ mục (index) cho các trường để tăng tốc độ truy vấn.
13. Phát biểu nào sau đây mô tả đúng nhất về khái niệm thuật toán trong khoa học máy tính?
A. Một chương trình máy tính được viết bằng ngôn ngữ cấp cao.
B. Một chuỗi các chỉ thị hoặc quy tắc rõ ràng, hữu hạn để giải quyết một vấn đề hoặc thực hiện một tác vụ.
C. Một thiết bị phần cứng được sử dụng để lưu trữ dữ liệu.
D. Một mô hình toán học phức tạp mô tả sự tương tác giữa các hệ thống.
14. Phát biểu nào sau đây mô tả đúng nhất về Cloud Computing (Điện toán đám mây)?
A. Chỉ bao gồm việc lưu trữ tệp tin trên ổ đĩa cứng của máy tính cá nhân.
B. Việc cung cấp các tài nguyên máy tính (như máy chủ, lưu trữ, cơ sở dữ liệu, mạng, phần mềm) qua Internet theo yêu cầu.
C. Sử dụng các máy tính có cấu hình rất mạnh để xử lý các phép tính phức tạp.
D. Truy cập Internet thông qua kết nối Wi-Fi.
15. Khái niệm recursion trong khoa học máy tính đề cập đến:
A. Một vòng lặp lặp lại một khối mã nhiều lần.
B. Một hàm gọi lại chính nó để giải quyết các trường hợp nhỏ hơn của cùng một vấn đề.
C. Cơ chế cho phép một lớp kế thừa thuộc tính từ lớp cha.
D. Việc sử dụng các cấu trúc dữ liệu để lưu trữ thông tin tạm thời.
16. Phát biểu nào sau đây mô tả đúng nhất về biên dịch (compilation) trong quá trình phát triển phần mềm?
A. Quá trình thực thi mã nguồn trực tiếp trên máy tính.
B. Quá trình chuyển đổi mã nguồn được viết bằng ngôn ngữ lập trình cấp cao thành mã máy hoặc mã trung gian để máy tính có thể hiểu và thực thi.
C. Quá trình gỡ lỗi (debugging) và sửa lỗi trong mã nguồn.
D. Quá trình thiết kế giao diện người dùng cho ứng dụng.
17. Một hệ thống tệp tin (file system) có vai trò chính là gì trong hệ điều hành?
A. Quản lý kết nối mạng.
B. Thực thi các ứng dụng người dùng.
C. Tổ chức, lưu trữ và truy xuất dữ liệu trên các thiết bị lưu trữ.
D. Quản lý tài nguyên CPU.
18. Phát biểu nào sau đây mô tả đúng nhất về machine learning (học máy)?
A. Lập trình máy tính để thực hiện các tác vụ cụ thể theo các chỉ thị rõ ràng.
B. Một lĩnh vực của trí tuệ nhân tạo cho phép hệ thống học hỏi từ dữ liệu mà không cần được lập trình tường minh.
C. Thiết kế các thuật toán để tối ưu hóa hiệu suất phần cứng.
D. Tạo ra các giao diện người dùng tương tác.
19. Trong lập trình hướng đối tượng, tính đóng gói (encapsulation) đề cập đến việc:
A. Cho phép một lớp kế thừa thuộc tính và phương thức từ nhiều lớp khác.
B. Che giấu dữ liệu nội bộ của một đối tượng và chỉ cho phép truy cập thông qua các phương thức được định nghĩa.
C. Cho phép các đối tượng của các lớp khác nhau phản ứng khác nhau với cùng một thông điệp.
D. Tạo ra các bản sao của một đối tượng.
20. Khái niệm byte trong khoa học máy tính đại diện cho đơn vị thông tin cơ bản nào?
A. Một ký tự văn bản duy nhất.
B. Một nhóm gồm 8 bit.
C. Một bit đơn lẻ.
D. Một từ máy (word).
21. Phát biểu nào sau đây mô tả đúng nhất về Syntax Error (Lỗi cú pháp) trong lập trình?
A. Lỗi xảy ra khi chương trình chạy nhưng cho kết quả sai.
B. Lỗi xảy ra khi mã nguồn vi phạm các quy tắc ngữ pháp của ngôn ngữ lập trình, ngăn cản quá trình biên dịch hoặc thông dịch.
C. Lỗi xảy ra khi chương trình gặp phải điều kiện bất khả thi trong quá trình thực thi.
D. Lỗi xảy ra do thiếu bộ nhớ.
22. Trong các ngôn ngữ lập trình, biến (variable) được sử dụng để làm gì?
A. Lưu trữ địa chỉ của hàm trong bộ nhớ.
B. Đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
C. Xác định cấu trúc điều khiển của chương trình.
D. Định nghĩa các lớp và đối tượng.
23. Trong lĩnh vực cơ sở dữ liệu, khóa chính (primary key) của một bảng có vai trò gì?
A. Đảm bảo tính toàn vẹn của dữ liệu bằng cách xác định mỗi bản ghi là duy nhất.
B. Cho phép liên kết bảng hiện tại với một bảng khác thông qua khóa ngoại.
C. Chỉ định các trường được phép sắp xếp.
D. Xác định loại dữ liệu của một cột.
24. Trong ngôn ngữ lập trình Python, cấu trúc dữ liệu nào cho phép lưu trữ một tập hợp các phần tử có thứ tự và có thể thay đổi, đồng thời các phần tử có thể được truy cập thông qua chỉ số?
A. Tuple
B. Set
C. List
D. Dictionary
25. Trong lập trình, hằng số (constant) là gì?
A. Một biến có giá trị có thể thay đổi bất cứ lúc nào.
B. Một giá trị không thay đổi trong suốt quá trình thực thi chương trình.
C. Một hàm được gọi một lần.
D. Một cấu trúc dữ liệu phức tạp.