1. Khái niệm ‘ngôn ngữ đánh dấu’ (markup language) như HTML khác biệt cơ bản với ngôn ngữ lập trình ở chỗ nào?
A. Ngôn ngữ đánh dấu dùng để cấu trúc và trình bày nội dung, không có logic điều khiển hay tính toán.
B. Ngôn ngữ lập trình không thể hiển thị văn bản.
C. Ngôn ngữ đánh dấu có thể thực hiện các phép toán phức tạp.
D. Ngôn ngữ lập trình chỉ dùng cho giao diện đồ họa.
2. Trong OOP, ‘lớp’ (class) là gì?
A. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
B. Một đối tượng cụ thể đã được khởi tạo.
C. Một hàm dùng để xử lý dữ liệu.
D. Một biến toàn cục.
3. Trong lập trình, ‘toán tử gán’ (assignment operator) như ‘=’ được sử dụng để làm gì?
A. Gán một giá trị cho một biến.
B. So sánh hai giá trị.
C. Thực hiện phép cộng.
D. Khởi tạo một vòng lặp.
4. Trong lập trình, khái niệm ‘biến’ được sử dụng để làm gì?
A. Lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
B. Định nghĩa cấu trúc dữ liệu cố định.
C. Xác định luồng điều khiển của chương trình.
D. Đảm bảo tính bất biến của dữ liệu.
5. Khái niệm ‘văn bản tài liệu’ (documentation) trong lập trình có vai trò quan trọng nhất là gì?
A. Giải thích cách sử dụng, hoạt động của mã nguồn, giúp người khác (và chính mình trong tương lai) hiểu và bảo trì dễ dàng hơn.
B. Tăng tốc độ thực thi của chương trình.
C. Tự động sửa lỗi cú pháp.
D. Tạo ra các giao diện đồ họa.
6. Khái niệm ‘tương tác người-máy’ (Human-Computer Interaction – HCI) trong lập trình liên quan đến khía cạnh nào?
A. Thiết kế giao diện và trải nghiệm người dùng để việc sử dụng phần mềm trở nên hiệu quả, dễ dàng và thú vị.
B. Quản lý hiệu suất của máy chủ.
C. Kiểm tra tính bảo mật của mạng.
D. Tối ưu hóa thuật toán tìm kiếm.
7. Khái niệm ‘thuật toán’ (algorithm) trong khoa học máy tính được hiểu là gì?
A. Một tập hợp các bước hoặc quy tắc rõ ràng, hữu hạn để giải quyết một vấn đề cụ thể hoặc thực hiện một phép tính.
B. Một chương trình máy tính hoàn chỉnh.
C. Một thiết bị phần cứng.
D. Một giao diện người dùng đồ họa.
8. Khái niệm ‘bộ nhớ đệm’ (cache) trong lập trình liên quan đến việc gì?
A. Lưu trữ tạm thời dữ liệu truy cập thường xuyên để tăng tốc độ truy cập.
B. Quản lý các tiến trình hệ thống.
C. Xác định quyền truy cập của người dùng.
D. Tạo ra các tệp tin tạm thời.
9. Đâu là một ví dụ về ‘ngôn ngữ lập trình biên dịch’ (compiled language)?
A. C++
B. Python
C. JavaScript
D. Ruby
10. Trong lập trình, ‘cấu trúc điều khiển luồng’ (control flow structure) như ‘switch-case’ (hoặc tương đương) dùng để làm gì?
A. Chọn và thực thi một trong nhiều khối mã dựa trên giá trị của một biểu thức hoặc biến.
B. Lặp lại một khối mã nhiều lần.
C. Định nghĩa các hàm mới.
D. Quản lý bộ nhớ động.
11. Khái niệm ‘kế thừa’ (inheritance) trong OOP cho phép gì?
A. Một lớp mới (lớp con) có thể kế thừa các thuộc tính và phương thức từ một lớp đã có (lớp cha).
B. Hai lớp có thể chia sẻ trực tiếp cùng một bộ nhớ.
C. Một đối tượng có thể thay đổi kiểu dữ liệu của nó.
D. Tất cả các lớp trong chương trình phải có cùng tên.
12. Đâu là một ví dụ về ‘ngôn ngữ lập trình thông dịch’ (interpreted language)?
A. JavaScript
B. C++
C. Go
D. Rust
13. Trong OOP, ‘đa hình’ (polymorphism) nghĩa là gì?
A. Khả năng một phương thức có thể hoạt động khác nhau tùy thuộc vào đối tượng mà nó đang thao tác.
B. Một lớp có thể có nhiều phương thức cùng tên.
C. Một chương trình có thể chạy trên nhiều hệ điều hành khác nhau.
D. Tất cả các đối tượng đều có chung một phương thức.
14. Trong lập trình, ‘giá trị trả về’ (return value) của một hàm là gì?
A. Dữ liệu mà hàm gửi lại cho phần mã đã gọi nó sau khi hoàn thành nhiệm vụ.
B. Tham số đầu vào của hàm.
C. Tên của hàm.
D. Lỗi phát sinh trong quá trình thực thi hàm.
15. Trong lập trình, ‘biên dịch’ (compilation) là quá trình gì?
A. Chuyển đổi mã nguồn viết bằng ngôn ngữ cấp cao thành mã máy (hoặc mã trung gian) mà máy tính có thể hiểu và thực thi.
B. Thực thi trực tiếp mã nguồn.
C. Gỡ lỗi (debug) chương trình.
D. Thiết kế giao diện người dùng.
16. Khái niệm ‘vòng lặp’ (loop) trong lập trình được dùng để thực hiện chức năng gì?
A. Thực thi một khối mã nhiều lần dựa trên một điều kiện nhất định.
B. Ngắt chương trình đột ngột khi gặp lỗi.
C. Truyền dữ liệu giữa các module khác nhau.
D. Định nghĩa các hằng số không đổi.
17. Khái niệm ‘ngôn ngữ kịch bản’ (scripting language) thường có đặc điểm gì so với ngôn ngữ biên dịch truyền thống?
A. Thường được thông dịch, dễ học, dùng cho tự động hóa tác vụ hoặc các ứng dụng web.
B. Luôn cần biên dịch trước khi chạy.
C. Yêu cầu quản lý bộ nhớ thủ công chi tiết.
D. Chỉ dùng cho phát triển hệ điều hành.
18. Phát biểu nào sau đây mô tả đúng nhất về ‘hàm’ (function) trong lập trình?
A. Một khối mã được đặt tên, có thể được gọi để thực thi một nhiệm vụ cụ thể và có thể nhận tham số đầu vào.
B. Một biến toàn cục có thể truy cập từ mọi nơi trong chương trình.
C. Một cấu trúc dữ liệu dùng để tổ chức thông tin theo cấp bậc.
D. Một toán tử đặc biệt chỉ dùng trong các phép so sánh.
19. Trong lập trình, ‘toán tử logic’ (logical operator) như AND, OR, NOT được sử dụng để làm gì?
A. Kết hợp hoặc phủ định các biểu thức điều kiện logic.
B. Thực hiện các phép toán số học.
C. So sánh hai giá trị với nhau.
D. Gán giá trị cho biến.
20. Khái niệm ‘lập trình hướng đối tượng’ (Object-Oriented Programming – OOP) tập trung vào việc tổ chức mã theo các yếu tố nào?
A. Các đối tượng (objects) chứa cả dữ liệu (thuộc tính) và hành vi (phương thức).
B. Các câu lệnh tuần tự thực thi.
C. Các hàm và biến toàn cục.
D. Các cấu trúc dữ liệu đơn giản.
21. Trong lập trình, ‘phạm vi của biến’ (variable scope) xác định điều gì?
A. Vùng trong chương trình mà tại đó biến có thể được truy cập và sử dụng.
B. Giá trị tối đa mà biến có thể lưu trữ.
C. Thời gian tồn tại của biến trong bộ nhớ.
D. Cách biến được lưu trữ trong bộ nhớ.
22. Khái niệm ‘lập trình bất đồng bộ’ (asynchronous programming) được áp dụng khi nào?
A. Khi cần thực hiện các tác vụ tốn thời gian (như I/O) mà không làm chặn luồng chính của chương trình.
B. Khi cần thực hiện các phép toán số học phức tạp.
C. Khi muốn định nghĩa các hằng số.
D. Khi cần gỡ lỗi chương trình.
23. Trong lập trình, ‘xử lý ngoại lệ’ (exception handling) có vai trò gì?
A. Cung cấp một cơ chế để phát hiện, báo cáo và phản ứng với các tình huống bất thường hoặc lỗi xảy ra trong quá trình thực thi chương trình.
B. Tăng tốc độ thực thi của chương trình.
C. Tự động sửa lỗi cú pháp.
D. Quản lý các biến toàn cục.
24. Trong lập trình, một ‘hằng số’ (constant) có đặc điểm gì?
A. Là một định danh đại diện cho một giá trị không thể thay đổi trong suốt quá trình thực thi chương trình.
B. Có thể thay đổi giá trị bất cứ lúc nào.
C. Luôn có giá trị là 0.
D. Phải được khai báo trong mọi hàm.
25. Khái niệm ‘mô-đun’ (module) trong lập trình đề cập đến điều gì?
A. Một tệp hoặc một phần của mã nguồn chứa các hàm, lớp hoặc biến liên quan, có thể được nhập và sử dụng trong các chương trình khác.
B. Một lỗi trong mã nguồn.
C. Một cấu trúc dữ liệu duy nhất.
D. Một thiết bị phần cứng.
26. Trong lập trình, ‘kiểu dữ liệu chuỗi’ (string data type) thường được khai báo và sử dụng như thế nào?
A. Bằng cách đặt chuỗi ký tự trong dấu nháy đơn (‘) hoặc nháy kép (“).
B. Bằng cách sử dụng dấu ngoặc vuông ([]).
C. Bằng cách sử dụng dấu ngoặc nhọn ({}).
D. Bằng cách sử dụng dấu gạch chéo (/ /).
27. Khái niệm ‘chuỗi’ (string) trong lập trình thường dùng để biểu diễn loại dữ liệu nào?
A. Một dãy các ký tự được nối liền nhau.
B. Một số nguyên.
C. Một giá trị boolean (true/false).
D. Một tập hợp các số thực.
28. Khái niệm ‘thông dịch’ (interpretation) trong lập trình là gì?
A. Thực thi mã nguồn trực tiếp, từng dòng lệnh một, mà không cần bước biên dịch riêng biệt sang mã máy.
B. Chuyển đổi mã nguồn thành mã máy trước khi chạy.
C. Tìm và sửa lỗi trong chương trình.
D. Phân tích cú pháp của mã nguồn.
29. Khái niệm ‘gỡ lỗi’ (debugging) trong lập trình ám chỉ hoạt động nào?
A. Tìm kiếm, xác định và sửa chữa các lỗi (bug) trong mã nguồn.
B. Viết mã nguồn mới.
C. Tối ưu hóa hiệu suất chương trình.
D. Tài liệu hóa mã nguồn.
30. Đâu là một ví dụ về ‘ngôn ngữ lập trình cấp cao’?
A. Python
B. Assembly
C. Machine Code
D. Mã máy
31. Khái niệm ‘đệ quy’ (recursion) trong lập trình ám chỉ điều gì?
A. Một hàm tự gọi lại chính nó để giải quyết một bài toán.
B. Một vòng lặp vô hạn.
C. Một cấu trúc dữ liệu phức tạp.
D. Một cách để chia sẻ biến giữa các hàm.
32. Khái niệm ‘mảng’ (array) trong lập trình đề cập đến cấu trúc dữ liệu nào?
A. Một tập hợp các phần tử cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ và có thể truy cập bằng chỉ số.
B. Một danh sách các hàm có thể gọi.
C. Một cấu trúc chỉ để lưu trữ các chuỗi ký tự.
D. Một tập hợp các biến không có mối liên hệ với nhau.
33. Trong lập trình, ‘truy cập theo tham chiếu’ (pass by reference) khác với ‘truy cập theo giá trị’ (pass by value) ở điểm nào?
A. Truy cập theo tham chiếu truyền địa chỉ bộ nhớ của biến, cho phép hàm thay đổi giá trị gốc, còn theo giá trị truyền bản sao của biến, không ảnh hưởng giá trị gốc.
B. Truy cập theo tham chiếu chỉ dùng cho các biến số nguyên.
C. Truy cập theo giá trị có hiệu suất cao hơn.
D. Cả hai đều truyền bản sao của biến.
34. Khái niệm ‘kiểu dữ liệu boolean’ (boolean data type) chỉ có thể nhận những giá trị nào?
A. True hoặc False (Đúng hoặc Sai).
B. Một số nguyên.
C. Một ký tự.
D. Một chuỗi văn bản.
35. Đâu là mục đích chính của việc sử dụng ‘kiểu dữ liệu’ (data type) trong lập trình?
A. Xác định loại giá trị mà một biến có thể lưu trữ và các phép toán có thể thực hiện trên giá trị đó.
B. Quyết định tốc độ xử lý của chương trình.
C. Tự động sửa lỗi cú pháp trong mã.
D. Quản lý bộ nhớ một cách ngẫu nhiên.
36. Khái niệm ‘cấu trúc dữ liệu’ (data structure) dùng để làm gì trong lập trình?
A. Tổ chức và lưu trữ dữ liệu một cách hiệu quả để có thể truy cập và thao tác dễ dàng.
B. Xác định giao diện người dùng của ứng dụng.
C. Quản lý các tiến trình chạy song song.
D. Kiểm tra tính bảo mật của hệ thống.
37. Khái niệm ‘đóng gói’ (encapsulation) trong OOP có mục đích chính là gì?
A. Gom dữ liệu (thuộc tính) và phương thức xử lý dữ liệu đó vào trong một đơn vị duy nhất (đối tượng) và kiểm soát truy cập vào dữ liệu.
B. Tạo ra nhiều bản sao của cùng một đối tượng.
C. Ngăn chặn việc sử dụng biến toàn cục.
D. Xác định thứ tự thực thi của các đối tượng.
38. Trong lập trình, ‘mã giả’ (pseudocode) là gì?
A. Một mô tả không chính thức, cấp cao về cách hoạt động của một thuật toán hoặc chương trình, sử dụng cấu trúc tương tự ngôn ngữ lập trình nhưng không tuân thủ cú pháp nghiêm ngặt.
B. Mã nguồn của một chương trình đã biên dịch.
C. Một lỗi cú pháp trong mã nguồn.
D. Một ngôn ngữ lập trình mới.
39. Trong lập trình, ‘biến cục bộ’ (local variable) có phạm vi hoạt động như thế nào?
A. Chỉ có thể truy cập bên trong khối mã (ví dụ: hàm, vòng lặp) nơi nó được khai báo.
B. Có thể truy cập từ bất kỳ đâu trong chương trình.
C. Chỉ có thể truy cập từ các hàm khác.
D. Tồn tại vĩnh viễn ngay cả sau khi chương trình kết thúc.
40. Trong lập trình, ‘cấu trúc điều kiện’ (conditional statement) như ‘if-else’ có vai trò gì?
A. Cho phép chương trình đưa ra quyết định và thực thi các khối mã khác nhau dựa trên kết quả của một điều kiện logic.
B. Đảm bảo tất cả các lệnh trong chương trình được thực thi theo thứ tự.
C. Tạo ra các biến cục bộ chỉ tồn tại trong một phạm vi nhất định.
D. Khởi tạo giá trị ban đầu cho tất cả các biến.
41. Khái niệm ‘IDE’ (Integrated Development Environment) là gì?
A. Một loại hệ điều hành.
B. Một môi trường phần mềm cung cấp các công cụ cần thiết cho việc phát triển phần mềm, bao gồm trình soạn thảo mã, trình biên dịch/thông dịch và trình gỡ lỗi.
C. Một giao thức mạng.
D. Một thuật toán tìm kiếm.
42. Trong C++, ‘const’ keyword được sử dụng để làm gì?
A. Biến đổi một biến thành một biến toàn cục.
B. Đảm bảo giá trị của biến hoặc đối tượng không thể thay đổi sau khi được khởi tạo.
C. Cấp phát bộ nhớ động.
D. Định nghĩa một hàm ảo.
43. Trong lập trình, ‘biến’ (variable) có vai trò gì?
A. Lưu trữ các câu lệnh thực thi.
B. Chứa dữ liệu có thể thay đổi trong quá trình chạy chương trình.
C. Định nghĩa cấu trúc của chương trình.
D. Xác định luồng điều khiển của chương trình.
44. Trong JavaScript, cách nào sau đây là cách khai báo một biến?
A. variable myVar;
B. let myVar;
C. var myVar;
D. const myVar;
45. Cấu trúc dữ liệu nào cho phép truy cập phần tử theo chỉ số (index) với thời gian truy cập O(1) nếu chỉ số biết trước?
A. Danh sách liên kết (Linked List)
B. Ngăn xếp (Stack)
C. Hàng đợi (Queue)
D. Mảng (Array)
46. Cấu trúc dữ liệu ‘cây’ (tree) có đặc điểm gì nổi bật?
A. Các phần tử được sắp xếp theo thứ tự tuyến tính.
B. Mỗi nút có thể có nhiều nút cha.
C. Có một nút gốc và các nút con, không có chu trình.
D. Chỉ sử dụng cho việc lưu trữ dữ liệu dạng bảng.
47. Ngôn ngữ lập trình nào là ngôn ngữ biên dịch (compiled language) điển hình?
A. Python
B. JavaScript
C. C++
D. PHP
48. Trong lập trình, ‘variable scope’ (phạm vi của biến) xác định điều gì?
A. Kiểu dữ liệu của biến.
B. Vùng trong chương trình nơi biến có thể được truy cập và sử dụng.
C. Giá trị ban đầu của biến.
D. Cách biến được lưu trữ trong bộ nhớ.
49. Khái niệm ‘type casting’ (chuyển đổi kiểu) trong lập trình là gì?
A. Việc thay đổi tên của một biến.
B. Quá trình chuyển đổi một giá trị từ kiểu dữ liệu này sang một kiểu dữ liệu khác.
C. Việc định nghĩa một hàm mới.
D. Việc tạo ra một vòng lặp mới.
50. Khái niệm ‘abstraction’ (trừu tượng hóa) trong OOP giúp giải quyết vấn đề gì?
A. Giảm số lượng biến trong chương trình.
B. Che giấu các chi tiết phức tạp và chỉ hiển thị các chức năng cần thiết.
C. Tăng tốc độ thực thi của chương trình.
D. Tạo ra nhiều đối tượng từ một lớp.
51. Kiểu dữ liệu nào thường được sử dụng để biểu diễn các ký tự đơn lẻ, ví dụ ‘A’, ‘b’, ‘7’?
A. Integer (Số nguyên)
B. Float (Số thực)
C. Boolean (Logic)
D. Character (Ký tự)
52. Trong ngôn ngữ C++, câu lệnh nào sau đây được sử dụng để giải phóng bộ nhớ đã được cấp phát động bằng ‘new’?
A. free()
B. delete
C. release()
D. dispose()
53. Trong ngôn ngữ lập trình C++, câu lệnh nào sau đây được sử dụng để cấp phát động bộ nhớ cho một đối tượng?
A. malloc()
B. new
C. calloc()
D. delete
54. 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 là không xác định.
B. Khi cần thực hiện một khối lệnh một số lần xác định trước.
C. Khi chỉ có một điều kiện duy nhất để lặp.
D. Khi cần truy cập các phần tử của danh sách liên kết.
55. Trong thuật toán, ‘space complexity’ (độ phức tạp không gian) đo lường điều gì?
A. Số lượng phép toán mà thuật toán thực hiện.
B. Thời gian thực thi của thuật toán.
C. Lượng bộ nhớ mà thuật toán yêu cầu để hoạt động.
D. Độ phức tạp của cấu trúc dữ liệu.
56. Giả sử bạn có một hàm ‘calculate(int a, int b)’ thực hiện phép cộng. Nếu bạn gọi ‘calculate(5, 3)’, giá trị trả về sẽ là bao nhiêu?
A. 5
B. 3
C. 8
D. Lỗi biên dịch
57. Trong lập trình, ‘conditional statement’ (câu lệnh điều kiện) như ‘if-else’ dùng để làm gì?
A. Lặp lại một khối mã nhiều lần.
B. Chọn một trong nhiều khối mã để thực thi dựa trên một điều kiện logic.
C. Định nghĩa một biến mới.
D. Gọi một hàm từ thư viện.
58. Trong ngôn ngữ Python, từ khóa nào được sử dụng để định nghĩa một hàm?
A. func
B. define
C. def
D. function
59. Trong các câu lệnh điều kiện, ‘else if’ được sử dụng khi nào?
A. Để thực thi mã khi điều kiện ban đầu là sai.
B. Để kiểm tra một điều kiện bổ sung khi điều kiện trước đó đã sai.
C. Để kết thúc một chuỗi các câu lệnh điều kiện.
D. Để lặp lại một khối mã.
60. Khái niệm ‘debug’ trong lập trình có nghĩa là gì?
A. Viết mã nguồn mới.
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. Thiết kế giao diện người dùng.
61. Khái niệm ‘polymorphism’ (đa hình) trong OOP cho phép gì?
A. Một lớp chỉ có thể có một phương thức với cùng tên.
B. Các đối tượng thuộc các lớp khác nhau có thể phản ứng khác nhau với cùng một lời gọi phương thức.
C. Các lớp con phải triển khai lại tất cả các phương thức của lớp cha.
D. Một lớp chỉ có thể kế thừa từ một lớp cha duy nhất.
62. Khái niệm ‘vòng lặp vô hạn’ (infinite loop) xảy ra khi nào trong quá trình thực thi chương trình?
A. Khi điều kiện thoát vòng lặp không bao giờ đạt được.
B. Khi số lần lặp đã được xác định trước.
C. Khi sử dụng đúng cấu trúc for, while, do-while.
D. Khi chương trình thực thi quá nhanh.
63. Trong lập trình, ‘biểu thức’ (expression) là gì?
A. Một câu lệnh kết thúc bằng dấu chấm phẩy.
B. Một tổ hợp các toán tử, toán hạng và lời gọi hàm tạo ra một giá trị.
C. Một khối mã được định nghĩa để thực thi một nhiệm vụ.
D. Một cấu trúc dữ liệu để lưu trữ nhiều giá trị.
64. Trong C#, thuộc tính ‘static’ của một thành viên lớp (biến hoặc phương thức) có ý nghĩa gì?
A. Nó chỉ có thể được truy cập từ bên trong lớp.
B. Nó thuộc về lớp, chứ không phải một thể hiện (instance) cụ thể của lớp.
C. Nó luôn có giá trị là null.
D. Nó chỉ có thể được truy cập từ bên ngoài lớp.
65. Trong lập trình hướng đối tượng, ‘encapsulation’ (đóng gói) là gì?
A. Việc một lớp có thể có nhiều hình thức.
B. Việc kết hợp dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào một đơn vị duy nhất (lớp).
C. Việc một lớp kế thừa từ nhiều lớp cha.
D. Việc ẩn đi tất cả các chi tiết triển khai của lớp.
66. Khái niệm ‘class’ (lớp) trong OOP đại diện cho điều gì?
A. Một thể hiện (instance) cụ thể của một đối tượng.
B. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng, định nghĩa thuộc tính và hành vi chung.
C. Một hàm dùng để thực thi một tác vụ.
D. Một cấu trúc dữ liệu tuyến tính.
67. Cấu trúc dữ liệu ‘hash table’ (bảng băm) thường sử dụng kỹ thuật nào để lưu trữ và truy xuất dữ liệu?
A. So sánh tuần tự.
B. Đệ quy.
C. Hàm băm (hash function).
D. Cây nhị phân.
68. Trong thuật toán sắp xếp, ‘sắp xếp nổi bọt’ (bubble sort) hoạt động bằng cách nào?
A. Chia mảng thành hai nửa và sắp xếp đệ quy.
B. So sánh và hoán đổi các cặp phần tử liền kề nếu chúng sai thứ tự.
C. Tìm phần tử nhỏ nhất và đặt nó vào đầu mảng.
D. Sử dụng một cấu trúc dữ liệu trung gian để lưu trữ phần tử.
69. Trong lập trình, ‘hàm’ (function) hoặc ‘phương thức’ (method) là gì?
A. Một biến lưu trữ dữ liệu.
B. Một khối mã được đặt tên, có thể được gọi để thực thi một nhiệm vụ cụ thể.
C. Một cấu trúc điều khiển luồng.
D. Một toán tử trong biểu thức.
70. Khái niệm ‘thuật toán’ (algorithm) trong khoa học máy tính đề cập đến điều gì?
A. Một ngôn ngữ lập trình cụ thể.
B. Một tập hợp các bước hữu hạn, rõ ràng để giải quyết một vấn đề.
C. Một loại phần cứng máy tính.
D. Giao diện người dùng của một ứng dụng.
71. Khái niệm ‘time complexity’ (độ phức tạp thời gian) của một thuật toán đo lường điều gì?
A. Lượng bộ nhớ mà thuật toán sử dụng.
B. Số lượng bước hoặc phép toán mà thuật toán thực hiện theo hàm của kích thước đầu vào.
C. Độ dễ đọc của mã nguồn.
D. Thời gian biên dịch của chương trình.
72. Trong cấu trúc dữ liệu ‘đồ thị’ (graph), mỗi ‘cạnh’ (edge) biểu diễn mối quan hệ gì?
A. Một nút độc lập.
B. Một đường dẫn từ một nút này đến một nút khác.
C. Một thuộc tính của nút.
D. Một vòng lặp trong đồ thị.
73. Trong lập trình hướng đối tượng (OOP), khái niệm nào đề cập đến việc một lớp có thể kế thừa các thuộc tính và phương thức từ một lớp khác?
A. Trừu tượng hóa (Abstraction)
B. Đóng gói (Encapsulation)
C. Kế thừa (Inheritance)
D. Đa hình (Polymorphism)
74. Khái niệm ‘syntax error’ (lỗi cú pháp) trong lập trình là gì?
A. Lỗi logic trong thuật toán.
B. Lỗi xảy ra khi mã nguồn không tuân thủ các quy tắc ngữ pháp của ngôn ngữ lập trình.
C. Lỗi do thiếu bộ nhớ.
D. Lỗi do nhập sai dữ liệu từ người dùng.
75. Khái niệm ‘recursion’ (đệ quy) trong lập trình là gì?
A. Một vòng lặp không có điều kiện dừng.
B. Một hàm tự gọi lại chính nó để giải quyết một bài toán.
C. Một cấu trúc dữ liệu tuyến tính.
D. Một kiểu dữ liệu phức tạp.
76. Cấu trúc dữ liệu ‘ngăn xếp’ (stack) tuân theo nguyên tắc hoạt động nào?
A. FIFO (First-In, First-Out)
B. LIFO (Last-In, First-Out)
C. LILO (Last-In, Last-Out)
D. FILO (First-In, Last-Out)
77. Cấu trúc dữ liệu ‘hàng đợi’ (queue) hoạt động theo nguyên tắc nào?
A. LIFO (Last-In, First-Out)
B. FIFO (First-In, First-Out)
C. FILO (First-In, Last-Out)
D. LILO (Last-In, Last-Out)
78. Khái niệm ‘compiler’ (trình biên dịch) có chức năng chính là gì?
A. Thực thi mã nguồn trực tiếp.
B. Chuyển đổi mã nguồn viết bằng ngôn ngữ cấp cao thành mã máy (hoặc mã trung gian).
C. Tìm và sửa lỗi trong chương trình.
D. Quản lý tài nguyên bộ nhớ.
79. Trong các thuật toán tìm kiếm, ‘tìm kiếm nhị phân’ (binary search) yêu cầu điều kiện tiên quyết nào đối với dữ liệu?
A. Dữ liệu phải được sắp xếp theo thứ tự giảm dần.
B. Dữ liệu phải được sắp xếp theo thứ tự tăng dần hoặc giảm dần.
C. Dữ liệu phải là một mảng các số nguyên.
D. Dữ liệu phải được lưu trữ trong cấu trúc cây.
80. Trong lập trình, ‘API’ (Application Programming Interface) là gì?
A. Một loại phần cứng máy tính.
B. Một bộ các quy tắc và định nghĩa cho phép các ứng dụng phần mềm tương tác với nhau.
C. Một thuật toán sắp xếp hiệu quả.
D. Một phương pháp lưu trữ dữ liệu.
81. Ngôn ngữ lập trình nào thường được sử dụng cho các ứng dụng web phía máy khách (client-side)?
A. Python
B. Java
C. JavaScript
D. C++
82. Trong các ngôn ngữ lập trình, ‘kiểu dữ liệu’ (data type) xác định điều gì?
A. Thứ tự thực thi của các lệnh.
B. Loại giá trị mà một biến có thể lưu trữ và các phép toán có thể thực hiện trên giá trị đó.
C. Phạm vi truy cập của một biến.
D. Cấu trúc của vòng lặp.
83. Ngôn ngữ lập trình nào thường được coi là ngôn ngữ nền tảng cho phát triển ứng dụng Android?
A. Swift
B. Python
C. Java hoặc Kotlin
D. C#
84. Trong các loại dữ liệu cơ bản, kiểu dữ liệu nào thường được sử dụng để biểu diễn văn bản hoặc chuỗi ký tự?
A. Integer (Số nguyên)
B. Float (Số thực)
C. Boolean (Logic)
D. String (Chuỗi ký tự)
85. Khi sử dụng một mảng, thao tác truy cập một phần tử cụ thể thông qua chỉ số (index) có độ phức tạp thời gian là bao nhiêu?
A. O(n)
B. O(log n)
C. O(n^2)
D. O(1)
86. Nguyên tắc ‘Đa hình’ (Polymorphism) trong OOP cho phép?
A. Một lớp con chỉ có thể kế thừa từ một lớp cha.
B. Các đối tượng thuộc các lớp khác nhau có thể phản ứng khác nhau với cùng một thông điệp (method call).
C. Dữ liệu và phương thức được đóng gói chặt chẽ trong một lớp.
D. Che giấu chi tiết triển khai của một lớp.
87. Khái niệm ‘API’ (Application Programming Interface) đề cập đến điều gì?
A. Một giao diện đồ họa người dùng (GUI).
B. Một bộ các quy tắc và định nghĩa cho phép các ứng dụng khác nhau giao tiếp với nhau.
C. Một loại cơ sở dữ liệu.
D. Một ngôn ngữ lập trình mới.
88. Khái niệm ‘mã nguồn mở’ (open source) có nghĩa là gì?
A. Phần mềm có mã nguồn bí mật.
B. Phần mềm có mã nguồn công khai và có thể được xem, sửa đổi và phân phối.
C. Phần mềm chỉ chạy trên hệ điều hành mã nguồn mở.
D. Phần mềm miễn phí sử dụng.
89. Khái niệm ‘gỡ lỗi’ (debugging) khác với ‘sửa lỗi’ (fixing) ở điểm nào?
A. Gỡ lỗi là tìm lỗi, sửa lỗi là viết lại mã.
B. Gỡ lỗi là quá trình tìm kiếm, xác định vị trí và nguyên nhân của lỗi, còn sửa lỗi là hành động khắc phục lỗi đó.
C. Gỡ lỗi chỉ áp dụng cho lỗi cú pháp, sửa lỗi cho lỗi logic.
D. Không có sự khác biệt, hai thuật ngữ này đồng nghĩa.
90. Trong ngôn ngữ lập trình C, khai báo `int *ptr;` định nghĩa một biến thuộc kiểu gì?
A. Một mảng các số nguyên.
B. Một biến số nguyên.
C. Một con trỏ tới một số nguyên.
D. Một cấu trúc chứa các số nguyên.
91. Trong lập trình, ‘mảng’ (array) là một cấu trúc dữ liệu cho phép lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu, được truy cập thông qua gì?
A. Tên của phần tử.
B. Chỉ số (index) hoặc khóa.
C. Giá trị của phần tử.
D. Con trỏ đến phần tử.
92. Xét đoạn mã giả sau: `function tim_max(mang): max_val = mang[0]; for i from 1 to length(mang) – 1: if mang[i] > max_val: max_val = mang[i]; return max_val;`. Độ phức tạp thời gian (time complexity) của thuật toán này là gì?
A. O(n^2)
B. O(log n)
C. O(n)
D. O(1)
93. Trong ngôn ngữ lập trình Java, từ khóa `public` có ý nghĩa gì khi đặt trước một lớp hoặc phương thức?
A. Chỉ có thể truy cập từ bên trong lớp đó.
B. Có thể truy cập từ bất kỳ lớp nào khác.
C. Chỉ có thể truy cập từ các lớp trong cùng gói (package).
D. Có thể truy cập từ các lớp con, nhưng không phải từ lớp cha.
94. Một vòng lặp `while` sẽ tiếp tục thực thi khối lệnh bên trong nó miễn là điều kiện của vòng lặp là gì?
A. Sai (False)
B. Đúng (True)
C. Không xác định (Undefined)
D. Bằng không (Zero)
95. Khái niệm ‘thuật toán’ (algorithm) trong khoa học máy tính đề cập đến điều gì?
A. Một chương trình máy tính hoàn chỉnh.
B. Một thiết bị phần cứng.
C. Một tập hợp các bước 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 nhiệm vụ.
D. Một giao diện lập trình ứng dụng.
96. Cấu trúc dữ liệu nào phù hợp nhất để triển khai hàng đợi (Queue), nơi các phần tử được xử lý theo thứ tự đến trước, ra trước (First-In, First-Out – FIFO)?
A. Ngăn xếp (Stack)
B. Danh sách liên kết (Linked List)
C. Cây (Tree)
D. Hàng đợi ưu tiên (Priority Queue)
97. Khái niệm ‘biên dịch’ (compilation) trong lập trình là quá trình gì?
A. Chuyển đổi mã nguồn từ ngôn ngữ cấp cao sang ngôn ngữ máy.
B. Chạy trực tiếp mã nguồn.
C. Tìm lỗi trong mã nguồn.
D. Định dạng lại mã nguồn.
98. Trong phát triển phần mềm, ‘bug’ là thuật ngữ chỉ điều gì?
A. Một tính năng mới của phần mềm.
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 thành phần của giao diện người dùng.
D. Một thuật toán hiệu quả.
99. Ngôn ngữ lập trình nào là lựa chọn phổ biến cho các tác vụ khoa học dữ liệu, máy học và trí tuệ nhân tạo?
A. C++
B. Python
C. Assembly
D. Fortran
100. Ngôn ngữ lập trình nào thường được sử dụng cho việc phát triển ứng dụng trên nền tảng iOS (iPhone, iPad)?
A. Java
B. Python
C. Swift hoặc Objective-C
D. JavaScript
101. Khái niệm ‘tái sử dụng mã’ (code reuse) mang lại lợi ích gì?
A. Làm tăng độ phức tạp của mã nguồn.
B. Giảm thời gian phát triển, tăng tính nhất quán và dễ bảo trì.
C. Yêu cầu nhiều tài nguyên phần cứng hơn.
D. Không có lợi ích rõ ràng.
102. Nguyên tắc ‘Đóng gói’ (Encapsulation) giúp ích gì cho việc bảo trì phần mềm?
A. Làm cho mã nguồn khó đọc hơn.
B. Cho phép thay đổi chi tiết triển khai bên trong một lớp mà không ảnh hưởng đến các phần khác của chương trình sử dụng lớp đó.
C. Buộc người dùng phải biết mọi chi tiết của lớp.
D. Tăng cường khả năng kế thừa.
103. Trong lập trình hướng đối tượng (OOP), khái niệm nào mô tả khả năng của một đối tượng có thể truy cập và sửa đổi dữ liệu của đối tượng khác thông qua các phương thức được định nghĩa sẵn, mà không cần biết chi tiết về cách thức hoạt động bên trong?
A. Trừu tượng hóa (Abstraction)
B. Đóng gói (Encapsulation)
C. Kế thừa (Inheritance)
D. Đa hình (Polymorphism)
104. Khi nói về ‘biến’ (variable) trong lập trình, điều nào sau đây là đúng nhất?
A. Là một hàm thực thi một tác vụ.
B. Là một tên gọi đại diện cho một giá trị có thể thay đổi trong bộ nhớ.
C. Là một hằng số có giá trị cố định.
D. Là một từ khóa của ngôn ngữ lập trình.
105. Nguyên tắc ‘Trừu tượng hóa’ (Abstraction) trong OOP tập trung vào việc gì?
A. Che giấu hoàn toàn dữ liệu của đối tượng.
B. Hiển thị chỉ những đặc điểm cần thiết và ẩn đi các chi tiết phức tạp không liên quan.
C. Cho phép các đối tượng thuộc các lớp khác nhau có cùng tên phương thức.
D. Gom dữ liệu và phương thức vào một đơn vị.
106. Trong các cấu trúc dữ liệu, cấu trúc nào sau đây cho phép thêm và xóa phần tử theo nguyên tắc ‘Vào sau, ra trước’ (Last-In, First-Out – LIFO)?
A. Hàng đợi (Queue)
B. Ngăn xếp (Stack)
C. Danh sách liên kết (Linked List)
D. Cây tìm kiếm nhị phân (Binary Search Tree)
107. Một biến được khai báo với từ khóa `static` trong một hàm có thể có đặc điểm nào sau đây?
A. Chỉ tồn tại trong phạm vi của hàm đó và bị hủy khi hàm kết thúc.
B. Tồn tại suốt vòng đời của chương trình và giữ nguyên giá trị giữa các lần gọi hàm.
C. Có thể truy cập từ bất kỳ đâu trong chương trình.
D. Tự động khởi tạo lại về giá trị mặc định mỗi khi hàm được gọi.
108. Trong một vòng lặp `for`, ba thành phần chính thường bao gồm là gì?
A. Khởi tạo, điều kiện, cập nhật giá trị.
B. Khởi tạo, khối lệnh, trả về giá trị.
C. Điều kiện, khối lệnh, ngắt vòng lặp.
D. Khai báo biến, gán giá trị, kiểm tra.
109. Trong lập trình, ‘từ khóa’ (keyword) là gì?
A. Một tên biến do người lập trình đặt.
B. Một từ có ý nghĩa đặc biệt trong ngôn ngữ lập trình, không thể dùng làm tên biến hoặc tên hàm.
C. Một ký hiệu dùng để biểu diễn phép toán.
D. Một loại dữ liệu.
110. Trong lập trình, ‘hằng số’ (constant) là một biến có đặc điểm gì?
A. Giá trị của nó có thể thay đổi bất kỳ lúc nào.
B. Giá trị của nó được xác định một lần và không thể thay đổi trong suốt quá trình thực thi chương trình.
C. Nó luôn có giá trị là chuỗi ký tự.
D. Nó chỉ tồn tại trong phạm vi của một hàm.
111. Trong lập trình, ‘vòng lặp’ (loop) được sử dụng để làm gì?
A. Thực hiện một khối lệnh một lần duy nhất.
B. Rẽ nhánh chương trình dựa trên một điều kiện.
C. Lặp lại việc thực hiện một khối lệnh nhiều lần.
D. Khai báo một biến mới.
112. Khái niệm ‘phân tích cú pháp’ (parsing) trong ngôn ngữ lập trình là gì?
A. Chạy mã lệnh.
B. Kiểm tra lỗi ngữ pháp của mã nguồn.
C. Chuyển đổi mã nguồn thành cấu trúc dữ liệu có thể xử lý được.
D. Tối ưu hóa tốc độ thực thi.
113. Cấu trúc điều khiển ‘if-else’ được sử dụng cho mục đích gì?
A. Thực hiện một khối lệnh lặp đi lặp lại.
B. Chọn một trong hai hoặc nhiều khối lệnh để thực thi dựa trên một điều kiện.
C. Gán một giá trị cho biến.
D. Định nghĩa một hàm.
114. Một chương trình máy tính bao gồm các thành phần chính nào?
A. Chỉ mã lệnh (code).
B. Mã lệnh, dữ liệu và tài liệu hướng dẫn.
C. Chỉ dữ liệu.
D. Chỉ phần cứng.
115. Khái niệm ‘biên dịch JIT’ (Just-In-Time compilation) là gì?
A. Biên dịch toàn bộ chương trình trước khi chạy.
B. Biên dịch mã nguồn thành mã máy ngay tại thời điểm thực thi chương trình.
C. Sử dụng mã máy đã được biên dịch sẵn.
D. Chỉ biên dịch các phần mã được sử dụng.
116. Khái niệm ‘debug’ trong phát triển phần mềm liên quan đến hoạt động nào?
A. Viết mã nguồn mới.
B. Thiết kế giao diện người dùng.
C. Tìm kiếm và sửa lỗi trong mã nguồn.
D. Tối ưu hóa hiệu năng thuật toán.
117. Nguyên tắc nào của lập trình hướng đối tượng cho phép một lớp con kế thừa các thuộc tính và phương thức từ lớp cha?
A. Đóng gói (Encapsulation)
B. Trừu tượng hóa (Abstraction)
C. Kế thừa (Inheritance)
D. Đa hình (Polymorphism)
118. Trong lập trình, khái niệm ‘biến toàn cục’ (global variable) có đặc điểm chính là gì?
A. Chỉ tồn tại trong một hàm cụ thể.
B. Có thể truy cập và sửa đổi từ bất kỳ đâu trong toàn bộ chương trình.
C. Tự động bị hủy khi hàm chứa nó kết thúc.
D. Luôn có giá trị là 0.
119. Trong lập trình, ‘kiểu dữ liệu trừu tượng’ (Abstract Data Type – ADT) là gì?
A. Một kiểu dữ liệu có sẵn trong mọi ngôn ngữ lập trình.
B. Một mô tả toán học về một tập hợp các giá trị và các phép toán trên chúng, không phụ thuộc vào cách triển khai cụ thể.
C. Một biến có thể lưu trữ nhiều loại dữ liệu khác nhau.
D. Một loại lỗi cú pháp.
120. Trong lập trình, một ‘hàm’ (function) hay ‘phương thức’ (method) là gì?
A. Một biến lưu trữ dữ liệu.
B. Một khối mã được đặt tên, có thể nhận đầu vào, thực hiện một tập hợp các lệnh và có thể trả về một giá trị.
C. Một cấu trúc dữ liệu.
D. Một từ khóa của ngôn ngữ lập trình.
121. Phát biểu nào sau đây mô tả đúng về ‘lập trình tuần tự’ (sequential programming)?
A. Tập trung vào việc thực thi các khối mã song song.
B. Các câu lệnh được thực thi lần lượt theo thứ tự chúng được viết trong mã nguồn.
C. Sử dụng nhiều vòng lặp lồng nhau.
D. Dựa vào các sự kiện bất đồng bộ.
122. Trong lập trình hướng đối tượng (OOP), ‘lớp’ (class) là gì?
A. Là một thực thể độc lập thực thi một chức năng.
B. Là một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng, định nghĩa các thuộc tính (attributes) và phương thức (methods) chung.
C. Là một cách để kết nối nhiều lớp lại với nhau.
D. Là một biến có thể lưu trữ nhiều giá trị cùng lúc.
123. Khái niệm ‘máy chủ’ (server) trong kiến trúc client-server là gì?
A. Là thiết bị mà người dùng cuối sử dụng để truy cập thông tin.
B. Là một chương trình hoặc thiết bị cung cấp tài nguyên, dịch vụ hoặc dữ liệu cho các chương trình hoặc thiết bị khác (clients) thông qua mạng.
C. Là một thuật toán để mã hóa dữ liệu.
D. Là một loại ngôn ngữ lập trình mới.
124. Khái niệm ‘thuật toán’ (algorithm) trong khoa học máy tính đề cập đến điều gì?
A. Ngôn ngữ lập trình được sử dụng để viết mã.
B. Một tập hợp các bước hữu hạn, rõ ràng và có trình tự để giải quyết một vấn đề hoặc thực hiện một tác vụ.
C. Giao diện người dùng của một ứng dụng phần mềm.
D. Cấu trúc của một cơ sở dữ liệu.
125. Trong lập trình, ‘biến cục bộ’ (local variable) là gì?
A. Biến có thể truy cập từ bất kỳ đâu trong chương trình.
B. Biến chỉ tồn tại và có thể truy cập được bên trong một khối mã cụ thể (ví dụ: một hàm hoặc một phạm vi nhất định).
C. Biến được khai báo ngay từ đầu chương trình.
D. Biến lưu trữ cấu trúc dữ liệu phức tạp.
126. Khái niệm ‘cấu trúc dữ liệu’ (data structure) có vai trò gì trong lập trình?
A. Chỉ định cách hiển thị dữ liệu trên màn hình.
B. Là cách tổ chức, quản lý và lưu trữ dữ liệu để truy cập và sửa đổi hiệu quả.
C. Định nghĩa các thuật toán tìm kiếm.
D. Tạo ra các giao diện lập trình ứng dụng (API).
127. Khái niệm ‘hàng đợi’ (queue) trong các cấu trúc dữ liệu hoạt động theo nguyên tắc nào?
A. Last-In, First-Out (LIFO – Vào sau, ra trước).
B. First-In, First-Out (FIFO – Vào trước, ra trước).
C. Priority-Based (Ưu tiên).
D. Depth-First (Theo chiều sâu).
128. Trong lập trình, khái niệm ‘biến’ (variable) được sử dụng để làm gì?
A. Lưu trữ một đoạn mã có thể tái sử dụng.
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 luồng của chương trình.
D. Tạo ra một đối tượng mới từ một lớp đã định nghĩa.
129. Trong lập trình, ‘cấu trúc điều khiển’ (control structure) có vai trò gì?
A. Chỉ định cách khai báo biến.
B. Kiểm soát thứ tự thực thi của các câu lệnh trong chương trình.
C. Định nghĩa các toán tử số học.
D. Xác định cách thức nhập liệu từ người dùng.
130. Khái niệm ‘biến toàn cục’ (global variable) ám chỉ điều gì trong lập trình?
A. Biến chỉ có thể truy cập trong một hàm cụ thể.
B. Biến có thể được truy cập và sửa đổi từ bất kỳ phần nào của chương trình.
C. Biến được tạo ra trong một vòng lặp.
D. Biến chỉ tồn tại trong một phạm vi rất hẹp.
131. Phát biểu nào sau đây mô tả đúng về ‘mối quan hệ giữa mảng và con trỏ’ trong các ngôn ngữ như C?
A. Tên của một mảng là một con trỏ tới phần tử đầu tiên của mảng.
B. Con trỏ không thể được sử dụng để truy cập các phần tử của mảng.
C. Mảng luôn lưu trữ các giá trị không liên tục trong bộ nhớ.
D. Con trỏ chỉ có thể trỏ đến các biến đơn lẻ.
132. Khái niệm ‘luồng’ (thread) trong lập trình đề cập đến?
A. Là một chương trình hoàn chỉnh.
B. Là một đơn vị thực thi nhỏ nhất trong một tiến trình (process), cho phép thực hiện nhiều luồng công việc cùng lúc trong một chương trình.
C. Là một loại biến đặc biệt.
D. Là một cách để quản lý bộ nhớ.
133. Khi sử dụng đệ quy, điều gì là quan trọng nhất để tránh vòng lặp vô hạn?
A. Sử dụng nhiều biến cục bộ.
B. Phải có một ‘điều kiện dừng’ (base case) rõ ràng để hàm ngừng gọi lại chính nó.
C. Luôn truyền tham số là hằng số.
D. Sử dụng cấu trúc dữ liệu phức tạp.
134. Trong lập trình web, ‘JavaScript’ thường được sử dụng để?
A. Xác định cấu trúc chính của trang web.
B. Tạo ra các tương tác động, xử lý sự kiện và thao tác với nội dung trang web trên trình duyệt của người dùng.
C. Định nghĩa các quy tắc về màu sắc và phông chữ.
D. Lưu trữ thông tin người dùng lâu dài.
135. Khái niệm ‘đối tượng’ (object) trong lập trình hướng đối tượng (OOP) ám chỉ điều gì?
A. Là một tập hợp các câu lệnh.
B. Là một thể hiện (instance) cụ thể của một lớp, có các thuộc tính và phương thức được định nghĩa bởi lớp đó.
C. Là một biến toàn cục trong chương trình.
D. Là một chức năng đặc biệt của trình biên dịch.
136. Trong lập trình web, ‘HTML’ (HyperText Markup Language) được sử dụng để làm gì?
A. Định nghĩa kiểu dáng và giao diện của trang web.
B. Tạo ra các logic tương tác và xử lý dữ liệu trên trình duyệt.
C. Xác định cấu trúc và nội dung của trang web.
D. Lưu trữ dữ liệu người dùng trên máy chủ.
137. Trong SQL, câu lệnh nào được sử dụng để truy vấn dữ liệu từ một hoặc nhiều bảng?
A. INSERT
B. UPDATE
C. DELETE
D. SELECT
138. Khái niệm ‘khóa ngoại’ (foreign key) trong cơ sở dữ liệu quan hệ được sử dụng để?
A. Xác định duy nhất mỗi bản ghi trong một bảng.
B. Tạo ra các chỉ mục để tăng tốc độ truy vấn.
C. Thiết lập mối quan hệ giữa hai bảng bằng cách tham chiếu đến khóa chính của bảng khác.
D. Lưu trữ các giá trị null.
139. Khái niệm ‘đa hình’ (polymorphism) trong OOP cho phép?
A. Một lớp chỉ được tạo ra một lần duy nhất.
B. Các đối tượng thuộc các lớp khác nhau có thể phản ứng với cùng một thông điệp (gọi phương thức) theo cách riêng của chúng.
C. Tất cả các phương thức của một lớp đều phải trả về cùng một kiểu dữ liệu.
D. Chỉ có một đối tượng duy nhất được phép truy cập dữ liệu.
140. Trong cấu trúc điều khiển ‘vòng lặp’ (loop), mục đích chính của việc sử dụng là gì?
A. Ngăn chặn chương trình thực thi khi gặp điều kiện sai.
B. Cho phép lặp lại một khối lệnh nhiều lần dựa trên một điều kiện hoặc số lần xác định.
C. Định nghĩa một hàm để thực hiện một tác vụ cụ thể.
D. Tạo ra các biến cục bộ cho một khối mã nhất định.
141. Khái niệm ‘hàm’ (function) trong lập trình được dùng để làm gì?
A. Định nghĩa một biến toàn cục cho chương trình.
B. Tạo ra một giao diện người dùng đồ họa.
C. Đóng gói một khối mã có thể tái sử dụng để thực hiện một tác vụ cụ thể, có thể nhận đầu vào và trả về kết quả.
D. Quản lý lỗi và ngoại lệ trong quá trình thực thi.
142. Trong lập trình, ‘hằng số’ (constant) là gì?
A. Một biến có giá trị được thay đổi thường xuyên.
B. Một định danh đại diện cho 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ó thể thay đổi đầu vào.
D. Một cấu trúc dữ liệu chỉ chứa một phần tử.
143. Phát biểu nào sau đây mô tả đúng về ‘lập trình bất đồng bộ’ (asynchronous programming)?
A. Các tác vụ được thực thi tuần tự, chờ đợi nhau hoàn thành.
B. Cho phép các tác vụ thực thi độc lập, không chặn luồng chính, giúp ứng dụng phản hồi nhanh hơn.
C. Chỉ sử dụng cho các tác vụ tính toán nặng.
D. Yêu cầu mọi thao tác phải hoàn thành trước khi tiếp tục.
144. Khái niệm ‘CSS’ (Cascading Style Sheets) trong phát triển web dùng để làm gì?
A. Xác định cấu trúc và nội dung của trang web.
B. Tạo ra các hiệu ứng động và tương tác trên trang web.
C. Kiểm soát cách trình bày, bố cục và kiểu dáng của các phần tử HTML trên trang web.
D. Quản lý dữ liệu phía máy chủ.
145. Khi nói về ‘biên dịch’ (compilation) trong lập trình, quá trình này bao gồm những gì?
A. Chuyển đổi mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy.
B. Chạy trực tiếp mã nguồn trên hệ điều hành.
C. Tạo ra giao diện người dùng cho ứng dụng.
D. Gỡ lỗi mã nguồn bằng cách chạy từng dòng.
146. Khái niệm ‘gỡ lỗi’ (debugging) trong lập trình là gì?
A. Viết mã mới cho chương trình.
B. Quá trình tìm kiếm, xác định và sửa chữa các lỗi (bugs) trong mã nguồn.
C. Thiết kế giao diện người dùng.
D. Tối ưu hóa thuật toán để tăng tốc độ xử lý.
147. Khái niệm ‘trừu tượng hóa’ (abstraction) trong OOP có ý nghĩa gì?
A. Tạo ra nhiều bản sao của cùng một đối tượng.
B. Che giấu các chi tiết phức tạp và chỉ hiển thị những thông tin cần thiết, tập trung vào ‘cái gì’ mà không quan tâm ‘như thế nào’.
C. Kết hợp dữ liệu và hành vi vào một đơn vị duy nhất.
D. Thay đổi hoàn toàn chức năng của một lớp đã có.
148. Khái niệm ‘đệ quy’ (recursion) trong lập trình đề cập đến điều gì?
A. Một hàm tự gọi lại chính nó trong quá trình thực thi.
B. Một vòng lặp thực thi vô hạn.
C. Một cách để định nghĩa biến toàn cục.
D. Một phương pháp để biên dịch mã nguồn.
149. Phát biểu nào sau đây mô tả đúng về ‘mảng’ (array) trong lập trình?
A. Là một cấu trúc dữ liệu cho phép lưu trữ các phần tử có kiểu dữ liệu khác nhau.
B. Là một tập hợp các phần tử cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ và có thể truy cập thông qua một chỉ số (index).
C. Là một cấu trúc liên kết các nút dữ liệu bằng con trỏ.
D. Là một cách để tổ chức mã nguồn thành các mô-đun độc lập.
150. Trong quy trình phát triển phần mềm, giai đoạn ‘phân tích yêu cầu’ (requirements analysis) nhằm mục đích gì?
A. Viết mã nguồn cho ứng dụng.
B. Hiểu rõ và ghi lại các nhu cầu, mong muốn của người dùng và các bên liên quan về phần mềm.
C. Kiểm tra hiệu suất của phần mềm.
D. Triển khai phần mềm lên môi trường sản xuất.
151. Trong các cấu trúc dữ liệu cơ bản, ‘ngăn xếp’ (stack) hoạt động theo nguyên tắc nào?
A. First-In, First-Out (FIFO – Vào trước, ra trước).
B. Last-In, First-Out (LIFO – Vào sau, ra trước).
C. Random-Access (Truy cập ngẫu nhiên).
D. Last-In, Last-Out (LILO – Vào sau, ra sau).
152. Phát biểu nào sau đây mô tả đúng về ‘client’ trong kiến trúc client-server?
A. Là thiết bị hoặc chương trình cung cấp dịch vụ.
B. Là thiết bị hoặc chương trình yêu cầu và nhận dịch vụ hoặc tài nguyên từ máy chủ.
C. Là nơi lưu trữ toàn bộ dữ liệu của ứng dụng.
D. Là trình biên dịch mã nguồn.
153. Trong OOP, ‘kế thừa’ (inheritance) cho phép một lớp…
A. Tự định nghĩa lại tất cả các thuộc tính và phương thức.
B. Truy cập và sử dụng lại các thuộc tính và phương thức của một lớp khác (lớp cha).
C. Chỉ định nghĩa các phương thức mà không có thuộc tính.
D. Ngăn chặn việc sử dụng lại mã nguồn.
154. Phát biểu nào sau đây mô tả đúng nhất về ‘kiểu dữ liệu’ (data type) trong lập trình?
A. Là một tập hợp các câu lệnh được thực thi tuần tự.
B. Là cách máy tính diễn giải và xử lý dữ liệu, xác định loại giá trị mà một biến có thể chứa và các phép toán có thể áp dụng.
C. Là một quy trình để tìm kiếm và sửa lỗi trong mã nguồn.
D. Là một phương thức để kết nối chương trình với cơ sở dữ liệu.
155. Phát biểu nào sau đây mô tả đúng về ‘môi trường phát triển tích hợp’ (Integrated Development Environment – IDE)?
A. Là một công cụ chỉ để chạy chương trình.
B. Là một ứng dụng phần mềm cung cấp các công cụ cần thiết cho việc viết, biên dịch, gỡ lỗi và quản lý mã nguồn.
C. Là một ngôn ngữ lập trình mới.
D. Là một phương pháp để kiểm tra bảo mật.
156. Trong lập trình, ‘con trỏ’ (pointer) là gì?
A. Là một giá trị không đổi.
B. Là một biến lưu trữ địa chỉ của một biến khác trong bộ nhớ.
C. Là một hàm không có tham số.
D. Là một cấu trúc dữ liệu chỉ chứa một phần tử.
157. Trong lập trình, ‘bao đóng’ (encapsulation) là gì?
A. Là cách để kế thừa tất cả các thuộc tính của lớp cha.
B. Là việc đóng gói dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào trong một đơn vị duy nhất (lớp), đồng thời kiểm soát quyền truy cập vào dữ liệu.
C. Là việc tạo ra các đối tượng từ một lớp trừu tượng.
D. Là quá trình biên dịch mã nguồn.
158. Phát biểu nào sau đây mô tả đúng nhất về ‘thông dịch’ (interpretation) trong lập trình?
A. Chuyển đổi toàn bộ mã nguồn sang mã máy trước khi thực thi.
B. Thực thi mã nguồn từng dòng hoặc từng khối lệnh một mà không tạo ra tệp thực thi riêng biệt.
C. Tối ưu hóa hiệu suất của chương trình đã biên dịch.
D. Kiểm tra cú pháp và ngữ nghĩa của toàn bộ mã nguồn.
159. Phát biểu nào sau đây mô tả đúng về ‘mô hình dữ liệu’ (data model)?
A. Là một tập hợp các câu lệnh SQL.
B. Là một biểu diễn trừu tượng của cấu trúc dữ liệu, mối quan hệ giữa chúng và các ràng buộc áp dụng.
C. Là một thuật toán để sắp xếp dữ liệu.
D. Là một giao diện đồ họa để quản lý cơ sở dữ liệu.
160. Trong cơ sở dữ liệu quan hệ, ‘khóa chính’ (primary key) 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 duy nhất mỗi bản ghi trong bảng.
B. Liên kết các bảng với nhau thông qua khóa ngoại.
C. Lưu trữ dữ liệu văn bản dài.
D. Xác định thứ tự sắp xếp của các bản ghi.
161. Phát biểu nào sau đây mô tả đúng về ‘lập trình tuyến tính’ (linear programming) trong ngữ cảnh thuật toán?
A. Một phương pháp để tạo giao diện người dùng đồ họa.
B. Một kỹ thuật để giải quyết các bài toán tối ưu hóa bằng cách sử dụng các hàm mục tiêu và ràng buộc tuyến tính.
C. Một cách để xử lý dữ liệu theo trình tự tuần tự, không có rẽ nhánh.
D. Một loại cấu trúc dữ liệu dùng để lưu trữ dữ liệu theo dạng cây.
162. Phát biểu nào mô tả đúng về ‘vòng lặp `while`’?
A. Thực thi một khối mã một số lần cố định.
B. Thực thi một khối mã lặp đi lặp lại CHỪNG NÀO một điều kiện còn đúng.
C. Thực thi một khối mã cho mỗi phần tử trong một tập hợp.
D. Thực thi một khối mã và sau đó kiểm tra điều kiện.
163. Trong lập trình, ‘chuỗi ký tự’ (string) là loại dữ liệu dùng để biểu diễn điều gì?
A. Các số nguyên và số thực.
B. Các giá trị đúng hoặc sai (boolean).
C. Một chuỗi các ký tự, thường dùng để biểu diễn văn bản.
D. Các giá trị đại diện cho thời gian và ngày tháng.
164. Khái niệm ‘cấu trúc điều khiển’ (control structure) trong lập trình đề cập đến loại thành phần nào?
A. Các loại dữ liệu cơ bản như số nguyên, số thực, ký tự.
B. Các toán tử dùng để thực hiện phép tính.
C. Các câu lệnh hoặc khối lệnh cho phép thay đổi luồng thực thi của chương trình.
D. Các quy tắc về cách đặt tên biến và hàm.
165. Trong lập trình, ‘bộ nhớ đệm’ (cache) thường được sử dụng với mục đích gì?
A. Lưu trữ các biến tạm thời không sử dụng.
B. Tăng tốc độ truy cập dữ liệu bằng cách lưu trữ các bản sao của dữ liệu thường xuyên được sử dụng ở một vị trí truy cập nhanh hơn.
C. Giám sát hoạt động của CPU.
D. Quản lý các tiến trình đang chạy.
166. Khái niệm ‘hằng số’ (constant) trong lập trình là gì?
A. Một biến mà giá trị của nó có thể thay đổi bất kỳ lúc nào.
B. Một định danh đại diện cho một giá trị không đổi, không thể bị thay đổi sau khi được gán lần đầu.
C. Một hàm luôn trả về cùng một giá trị.
D. Một loại lỗi cú pháp trong mã nguồn.
167. Phát biểu nào mô tả đúng về ‘tính kế thừa’ (inheritance) trong lập trình hướng đối tượng?
A. Khả năng một đối tượng có thể tự thay đổi cấu trúc của nó.
B. Cơ chế cho phép một lớp mới (lớp con) kế thừa các thuộc tính và phương thức từ một lớp đã có (lớp cha), cho phép tái sử dụng mã và tạo ra các mối quan hệ phân cấp.
C. Khả năng một lớp có thể có nhiều thể hiện.
D. Quá trình đóng gói dữ liệu và phương thức.
168. Trong ngữ cảnh lập trình, khái niệm ‘biến’ (variable) được định nghĩa chính xác nhất là gì?
A. Một lệnh để máy tính thực thi một tác vụ cụ thể.
B. Một vùng trong bộ nhớ máy tính được đặt tên để lưu trữ dữ liệu có thể thay đổi.
C. Một chuỗi các ký tự dùng để hiển thị thông báo cho người dùng.
D. Một quy tắc hoặc một tập hợp các quy tắc được sử dụng để giải quyết một vấn đề.
169. Phát biểu nào mô tả đúng về ‘lỗi logic’ (logic error) trong lập trình?
A. Lỗi do mã không được biên dịch.
B. Lỗi xảy ra khi chương trình hoạt động, nhưng kết quả hoặc hành vi không như mong đợi do sai sót trong thuật toán hoặc cách sử dụng cấu trúc điều khiển.
C. Lỗi do quên khai báo biến.
D. Lỗi do chương trình cố gắng truy cập một đối tượng không tồn tại.
170. Khái niệm ‘biên dịch’ (compilation) trong lập trình là quá trình gì?
A. Thực thi mã nguồn trực tiếp trên máy tính.
B. Chuyển đổi mã nguồn được viết bằng ngôn ngữ lập trình bậc cao sang mã máy hoặc mã trung gian mà máy tính có thể hiểu.
C. Kiểm tra lỗi cú pháp trong mã nguồn.
D. Tạo ra giao diện đồ họa cho ứng dụng.
171. Trong lập trình, ‘lệnh điều kiện’ (conditional statement) như `if-else` được dùng để làm gì?
A. Lặp lại một khối mã nhiều lần.
B. Cho phép chương trình thực thi các khối mã khác nhau dựa trên việc một điều kiện có đúng hay sai.
C. Định nghĩa một biến.
D. Thực hiện các phép toán số học.
172. Phát biểu nào mô tả đúng nhất về ‘thuật toán’ (algorithm) trong khoa học máy tính?
A. Một ngôn ngữ lập trình cụ thể để viết mã.
B. Một quy trình hoặc tập hợp các bước rõ ràng, hữu hạn để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Một giao diện đồ họa người dùng (GUI) cho phép tương tác.
D. Một loại lỗi phổ biến trong quá trình biên dịch mã.
173. Phát biểu nào mô tả đúng về ‘lập trình thủ tục’ (procedural programming)?
A. Tập trung vào việc tạo ra các lớp và đối tượng.
B. Một mô hình lập trình dựa trên khái niệm ‘thủ tục’ (procedure) hay ‘hàm’ (function) để tổ chức mã, nơi chương trình được chia thành các khối lệnh thực hiện các nhiệm vụ cụ thể.
C. Sử dụng các sự kiện để kích hoạt các hành động.
D. Mô hình lập trình chỉ dùng cho các ứng dụng web.
174. Trong lập trình, ‘điều kiện’ (condition) thường được sử dụng kết hợp với cấu trúc nào?
A. Vòng lặp `for`
B. Khối mã `try-catch`
C. Câu lệnh rẽ nhánh `if-else`
D. Định nghĩa lớp `class`
175. Trong lập trình, ‘vòng lặp `for`’ thường được sử dụng khi nào?
A. Khi không biết trước số lần lặp.
B. Khi cần thực thi một khối mã một số lần xác định trước hoặc lặp qua một tập hợp các phần tử.
C. Khi chỉ cần thực thi mã một lần.
D. Khi cần dừng chương trình đột ngột.
176. Trong lập trình, ‘toán tử’ (operator) được sử dụng để thực hiện hành động gì?
A. Định nghĩa cấu trúc dữ liệu mới.
B. Thực hiện các thao tác trên dữ liệu, chẳng hạn như phép toán số học hoặc logic.
C. Kiểm soát luồng thực thi của chương trình.
D. Phân bổ và giải phóng bộ nhớ.
177. Phát biểu nào mô tả đúng nhất ‘lập trình hướng đối tượng’ (Object-Oriented Programming – OOP)?
A. Một phương pháp lập trình tập trung vào các hàm và thủ tục.
B. Một mô hình lập trình dựa trên khái niệm ‘đối tượng’, bao gồm dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó.
C. Một kỹ thuật để tối ưu hóa hiệu suất chương trình.
D. Một loại cơ sở dữ liệu chuyên biệt.
178. Phát biểu nào mô tả đúng ý nghĩa của ‘tính đóng gói’ (encapsulation) trong lập trình hướng đối tượng?
A. Khả năng một đối tượng có thể kế thừa thuộc tính và phương thức từ đối tượng khác.
B. Gom dữ liệu (thuộc tính) và các phương thức thao tác trên dữ liệu đó vào chung một đơn vị là đối tượng, đồng thời che giấu chi tiết triển khai bên trong.
C. Khả năng một đối tượng có thể tồn tại dưới nhiều hình thức khác nhau.
D. Quá trình tạo ra các đối tượng mới từ một lớp.
179. Trong lập trình, ‘giá trị trả về’ (return value) của một hàm là gì?
A. Là tên của hàm.
B. Là giá trị mà hàm tính toán hoặc xác định được và gửi trở lại cho phần mã đã gọi nó.
C. Là một tham số được truyền vào hàm.
D. Là một câu lệnh để kết thúc vòng lặp.
180. Khái niệm ‘kiểu dữ liệu’ (data type) trong lập trình xác định điều gì?
A. Tốc độ xử lý của chương trình.
B. Loại giá trị mà một biến có thể lưu trữ và các phép toán có thể thực hiện trên giá trị đó.
C. Cách thức chương trình tương tác với hệ điều hành.
D. Giới hạn về dung lượng bộ nhớ mà chương trình có thể sử dụng.
181. Trong lập trình, ‘đối tượng’ (object) là gì trong mô hình hướng đối tượng?
A. Một tập hợp các câu lệnh được biên dịch.
B. Một thể hiện cụ thể của một lớp, chứa dữ liệu (thuộc tính) và có thể thực hiện các hành động (phương thức) được định nghĩa bởi lớp đó.
C. Một biến toàn cục.
D. Một thuật toán.
182. Phát biểu nào mô tả đúng về ‘lớp’ (class) trong lập trình hướng đối tượng?
A. Là một giá trị cụ thể của dữ liệu.
B. Là một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng, định nghĩa các thuộc tính và phương thức mà đối tượng đó sẽ có.
C. Là một hàm thực hiện một nhiệm vụ cụ thể.
D. Là một lỗi trong mã nguồn.
183. Trong lập trình, ‘buộc kiểu’ (type casting) là hành động gì?
A. Kiểm tra xem một biến có thuộc một kiểu dữ liệu nhất định hay không.
B. Chuyển đổi một giá trị từ kiểu dữ liệu này sang một kiểu dữ liệu khác.
C. Định nghĩa một kiểu dữ liệu mới.
D. So sánh hai giá trị của các kiểu dữ liệu khác nhau.
184. Phát biểu nào sau đây mô tả đúng vai trò của ‘biến toàn cục’ (global variable)?
A. Một biến chỉ tồn tại trong một dòng mã cụ thể.
B. Một biến được khai báo bên ngoài tất cả các hàm và có thể truy cập từ bất kỳ đâu trong chương trình.
C. Một biến chỉ có thể được sử dụng trong một hàm duy nhất.
D. Một biến chỉ được khởi tạo một lần và không bao giờ thay đổi.
185. Trong ngữ cảnh lập trình, ‘lập trình sự kiện’ (event-driven programming) là gì?
A. Một mô hình mà chương trình luôn chạy tuần tự từ đầu đến cuối.
B. Một mô hình lập trình trong đó luồng thực thi của chương trình được xác định bởi các ‘sự kiện’, chẳng hạn như hành động của người dùng (nhấn chuột, gõ phím) hoặc thông báo từ hệ thống.
C. Một cách để tổ chức dữ liệu trong bộ nhớ.
D. Một phương pháp để biên dịch mã nguồn.
186. Trong lập trình, ‘câu lệnh gán’ (assignment statement) được sử dụng để làm gì?
A. So sánh hai giá trị.
B. Thực hiện phép toán số học.
C. Lưu trữ một giá trị vào một biến.
D. Gọi thực thi một hàm.
187. Phát biểu nào sau đây mô tả đúng vai trò của ‘mảng’ (array) trong lập trình?
A. Lưu trữ một chuỗi các ký tự để tạo thành một từ hoặc câu.
B. Tổ chức nhiều giá trị cùng kiểu dữ liệu vào một tập hợp có cấu trúc, có thể truy cập bằng chỉ số (index).
C. Định nghĩa các lớp (class) và đối tượng (object) trong lập trình hướng đối tượng.
D. Thực hiện các phép toán logic như AND, OR, NOT.
188. Trong lập trình, ‘gỡ lỗi’ (debugging) là quá trình gì?
A. Viết mã nguồn mới cho một chức năng.
B. Tìm kiếm, xác định và sửa chữa các lỗi (bug) trong mã nguồn của chương trình.
C. Tối ưu hóa hiệu năng của chương trình.
D. Tạo tài liệu hướng dẫn sử dụng cho phần mềm.
189. Phát biểu nào mô tả đúng về ‘biểu thức’ (expression) trong lập trình?
A. Một câu lệnh hoàn chỉnh để thực hiện một hành động.
B. Một tổ hợp các toán tử, toán hạng và/hoặc lời gọi hàm có thể được đánh giá để tạo ra một giá trị duy nhất.
C. Một định nghĩa về kiểu dữ liệu.
D. Một cấu trúc để điều khiển luồng chương trình.
190. Phát biểu nào sau đây mô tả đúng nhất vai trò của ‘vòng lặp’ (loop) trong lập trình?
A. Cho phép chương trình đưa ra quyết định dựa trên các điều kiện khác nhau.
B. Dùng để định nghĩa một khối mã có thể tái sử dụng nhiều lần.
C. Thực thi một khối mã nhiều lần dựa trên một điều kiện hoặc một số lần lặp xác định.
D. Giúp quản lý và tổ chức cấu trúc dữ liệu phức tạp.
191. Trong lập trình, ‘hàm’ (function) hay ‘phương thức’ (method) được sử dụng chủ yếu để làm gì?
A. Xác định kiểu dữ liệu cho các biến.
B. Tổ chức mã thành các khối có thể tái sử dụng, thực hiện một nhiệm vụ cụ thể.
C. Quản lý bộ nhớ và giải phóng tài nguyên không cần thiết.
D. Thực hiện các phép toán số học phức tạp.
192. Khái niệm ‘biến cục bộ’ (local variable) được định nghĩa như thế nào?
A. Một biến có thể được truy cập từ bất kỳ đâu trong chương trình.
B. Một biến chỉ tồn tại và có thể truy cập được trong phạm vi của hàm hoặc khối lệnh mà nó được khai báo.
C. Một biến được khởi tạo giá trị mặc định khi chương trình bắt đầu.
D. Một biến lưu trữ giá trị không thay đổi trong suốt quá trình thực thi.
193. Phát biểu nào mô tả đúng về ‘bộ nhớ truy cập ngẫu nhiên’ (RAM)?
A. Lưu trữ hệ điều hành và các ứng dụng vĩnh viễn.
B. Là bộ nhớ tạm thời, tốc độ cao, nơi chương trình và dữ liệu đang được sử dụng được tải vào để CPU có thể truy cập nhanh chóng.
C. Lưu trữ dữ liệu mà không bị mất khi tắt máy.
D. Chỉ dùng để lưu trữ tệp tin người dùng.
194. Trong lập trình, ‘bộ xử lý’ (CPU) thực hiện chức năng cốt lõi nào?
A. Lưu trữ dữ liệu lâu dài.
B. Thực thi các lệnh và tính toán theo chỉ dẫn của chương trình.
C. Hiển thị hình ảnh lên màn hình.
D. Kết nối mạng máy tính.
195. Trong lập trình, ‘cấu trúc dữ liệu’ (data structure) là gì?
A. Một câu lệnh để điều khiển luồng chương trình.
B. Một cách tổ chức, quản lý và lưu trữ dữ liệu trong bộ nhớ để có thể truy cập và sửa đổi hiệu quả.
C. Một phương pháp để tạo ra giao diện đồ họa người dùng.
D. Một loại lỗi lập trình phổ biến.
196. Phát biểu nào mô tả đúng vai trò của ‘bộ biên dịch’ (compiler) và ‘bộ thông dịch’ (interpreter)?
A. Cả hai đều dịch mã nguồn sang mã máy và thực thi ngay lập tức.
B. Bộ biên dịch dịch toàn bộ mã nguồn thành mã máy trước khi thực thi, trong khi bộ thông dịch dịch và thực thi từng dòng lệnh một.
C. Bộ thông dịch dịch toàn bộ mã nguồn thành mã máy trước khi thực thi, trong khi bộ biên dịch dịch và thực thi từng dòng lệnh một.
D. Cả hai đều không liên quan đến việc chuyển đổi mã nguồn.
197. Trong lập trình, ‘tham số’ (parameter) của một hàm là gì?
A. Giá trị mà hàm trả về sau khi thực thi.
B. Tên của hàm.
C. Một biến được truyền vào hàm khi nó được gọi, cho phép hàm nhận dữ liệu từ bên ngoài.
D. Một khối mã được thực thi lặp đi lặp lại.
198. Phát biểu nào mô tả đúng về ‘chỉ số’ (index) khi làm việc với mảng hoặc chuỗi?
A. Là giá trị thực tế của phần tử trong mảng.
B. Là một số nguyên xác định vị trí của một phần tử trong một tập hợp được sắp xếp, thường bắt đầu từ 0.
C. Là tên của biến mảng.
D. Là kích thước tổng cộng của mảng.
199. Trong lập trình, ‘lỗi cú pháp’ (syntax error) là loại lỗi gì?
A. Lỗi logic khiến chương trình hoạt động sai.
B. Lỗi xảy ra khi mã nguồn không tuân thủ các quy tắc ngữ pháp của ngôn ngữ lập trình.
C. Lỗi liên quan đến việc sử dụng sai kiểu dữ liệu.
D. Lỗi do chương trình hết bộ nhớ.
200. Phát biểu nào mô tả đúng vai trò của ‘lập trình đệ quy’ (recursion)?
A. Tạo ra các vòng lặp vô hạn.
B. Một hàm tự gọi lại chính nó để giải quyết một bài toán bằng cách chia nhỏ bài toán lớn thành các bài toán con tương tự.
C. Gom dữ liệu và phương thức vào một lớp.
D. Quản lý bộ nhớ tự động.