1. Khi một chương trình máy tính cần thực hiện một tác vụ lặp đi lặp lại nhiều lần, cấu trúc điều khiển nào thường được ưu tiên sử dụng?
A. Vòng lặp (ví dụ: for, while). Kết luận Lý giải
B. Câu lệnh điều kiện (if-else). Kết luận Lý giải
C. Câu lệnh gán (assignment statement). Kết luận Lý giải
D. Cấu trúc switch-case. Kết luận Lý giải
2. Phát biểu nào sau đây mô tả đúng nhất về "trình biên dịch" (compiler)?
A. Một chương trình dịch mã nguồn 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 và thực thi trực tiếp. Kết luận Lý giải
B. Một chương trình dùng để chạy các ứng dụng đã được biên dịch. Kết luận Lý giải
C. Một công cụ để sửa lỗi trong mã nguồn. Kết luận Lý giải
D. Một hệ điều hành quản lý tài nguyên máy tính. Kết luận Lý giải
3. Phát biểu nào sau đây mô tả đúng nhất về "trình thông dịch" (interpreter)?
A. Một chương trình dịch và thực thi mã nguồn từng dòng một hoặc từng khối một, thay vì dịch toàn bộ mã trước khi chạy. Kết luận Lý giải
B. Một chương trình dùng để biên dịch mã nguồn thành mã máy. Kết luận Lý giải
C. Một công cụ để quản lý cơ sở dữ liệu. Kết luận Lý giải
D. Một thiết bị lưu trữ dữ liệu. Kết luận Lý giải
4. Phân tích đoạn mã giả sau: "Nếu nhiệt độ > 30 thì in "Trời nóng"." Phát biểu nào mô tả đúng nhất logic của đoạn mã này?
A. Đây là một ví dụ về câu lệnh điều kiện "if", thực hiện hành động in ra màn hình khi điều kiện về nhiệt độ thỏa mãn. Kết luận Lý giải
B. Đây là một ví dụ về vòng lặp "while", lặp lại hành động in cho đến khi nhiệt độ không còn lớn hơn 30. Kết luận Lý giải
C. Đây là một ví dụ về việc gán giá trị cho biến "nhiệt độ". Kết luận Lý giải
D. Đây là một ví dụ về hàm trả về giá trị boolean dựa trên nhiệt độ. Kết luận Lý giải
5. Khi làm việc với các cấu trúc dữ liệu như danh sách (list) hoặc mảng, thao tác "truy cập phần tử" thường được thực hiện bằng cách nào?
A. Sử dụng chỉ số (index) của phần tử đó, bắt đầu từ 0 cho phần tử đầu tiên. Kết luận Lý giải
B. Duyệt qua tất cả các phần tử cho đến khi tìm thấy phần tử mong muốn bằng cách so sánh giá trị. Kết luận Lý giải
C. Sử dụng tên biến đại diện cho toàn bộ cấu trúc dữ liệu. Kết luận Lý giải
D. Thực hiện phép toán "tìm kiếm tuyến tính" trên toàn bộ cấu trúc. Kết luận Lý giải
6. Khi làm việc với chuỗi ký tự (string), thao tác nào thường được sử dụng để lấy một phần của chuỗi (ví dụ: 3 ký tự đầu tiên)?
A. Cắt chuỗi (slicing). Kết luận Lý giải
B. Ghép chuỗi (concatenation). Kết luận Lý giải
C. Tìm kiếm chuỗi (searching). Kết luận Lý giải
D. Đếm ký tự (counting). Kết luận Lý giải
7. Phát biểu nào sau đây mô tả đúng nhất về "giao diện lập trình ứng dụng" (API - Application Programming Interface)?
A. Một tập hợp các quy tắ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à tương tác với nhau. Kết luận Lý giải
B. Một loại phần cứng máy tính. Kết luận Lý giải
C. Một công cụ để thiết kế giao diện người dùng. Kết luận Lý giải
D. Một ngôn ngữ lập trình mới. Kết luận Lý giải
8. Trong lập trình, "cú pháp" (syntax) của một ngôn ngữ đề cập đến điều gì?
A. Các quy tắc về cách viết các câu lệnh, từ khóa và cấu trúc để chương trình có thể được hiểu bởi trình biên dịch hoặc thông dịch. Kết luận Lý giải
B. Ý nghĩa hoặc mục đích của một câu lệnh lập trình. Kết luận Lý giải
C. Tốc độ thực thi của chương trình. Kết luận Lý giải
D. Cách đặt tên cho các biến và hàm. Kết luận Lý giải
9. Trong ngôn ngữ lập trình Python, toán tử nào được sử dụng để kiểm tra xem hai giá trị có bằng nhau hay không?
10. Trong lập trình, "lỗi logic" (logic error) là loại lỗi gì?
A. Lỗi xảy ra khi mã nguồn được viết đúng cú pháp nhưng thuật toán hoặc cách triển khai lại không chính xác, dẫn đến kết quả sai. Kết luận Lý giải
B. Lỗi cú pháp khiến chương trình không thể biên dịch hoặc chạy được. Kết luận Lý giải
C. Lỗi liên quan đến việc sử dụng quá nhiều bộ nhớ. Kết luận Lý giải
D. Lỗi do người dùng nhập sai dữ liệu. Kết luận Lý giải
11. Trong lập trình điều khiển, câu lệnh "if-else" được sử dụng để làm gì?
A. Thực hiện một khối lệnh nếu điều kiện là đúng, và một khối lệnh khác nếu điều kiện là sai. Kết luận Lý giải
B. Lặp lại một khối lệnh một số lần xác định trước. Kết luận Lý giải
C. Thực hiện một khối lệnh mà không cần kiểm tra điều kiện. Kết luận Lý giải
D. Khởi tạo một biến với một giá trị ban đầu. Kết luận Lý giải
12. Trong lập trình, "hằng số" (constant) là gì và khác biệt chính với "biến" (variable) là gì?
A. Hằng số là một định danh đại diện cho một giá trị không đổi, trong khi biến có thể thay đổi giá trị trong quá trình thực thi. Kết luận Lý giải
B. Hằng số luôn có kiểu dữ liệu số, còn biến có thể có nhiều kiểu dữ liệu khác nhau. Kết luận Lý giải
C. Hằng số chỉ được sử dụng trong các phép toán toán học, còn biến dùng cho các mục đích khác. Kết luận Lý giải
D. Hằng số luôn được khai báo bằng chữ hoa, còn biến thì không. Kết luận Lý giải
13. Phát biểu nào sau đây mô tả đúng nhất về "ngôn ngữ lập trình"?
A. Một hệ thống các quy tắc, ký hiệu và từ vựng được sử dụng để viết các chỉ dẫn cho máy tính thực hiện. Kết luận Lý giải
B. Một loại phần mềm dùng để xem video trên mạng. Kết luận Lý giải
C. Một thiết bị phần cứng dùng để kết nối mạng internet. Kết luận Lý giải
D. Một phương pháp để tạo ra đồ họa 3D. Kết luận Lý giải
14. Khi bạn cần thực hiện một hành động lặp lại một số lần cố định (ví dụ: 10 lần), cấu trúc vòng lặp nào thường được sử dụng hiệu quả nhất?
A. Vòng lặp "for" với bộ đếm hoặc phạm vi xác định. Kết luận Lý giải
B. Vòng lặp "while" với điều kiện phức tạp. Kết luận Lý giải
C. Câu lệnh "if" lồng nhau. Kết luận Lý giải
D. Câu lệnh "break". Kết luận Lý giải
15. Trong lập trình, khi bạn muốn một khối lệnh được thực thi lặp đi lặp lại chừng nào một điều kiện còn đúng, bạn sẽ sử dụng cấu trúc nào?
A. Vòng lặp "while". Kết luận Lý giải
B. Câu lệnh "if". Kết luận Lý giải
C. Câu lệnh "for". Kết luận Lý giải
D. Câu lệnh "else". Kết luận Lý giải
16. Trong lập trình, khái niệm "vòng lặp vô hạn" là gì và tại sao nó cần được tránh?
A. Một vòng lặp luôn luôn thực thi một hoặc nhiều câu lệnh mà không có điều kiện dừng, dẫn đến chương trình bị treo hoặc tiêu tốn tài nguyên không kiểm soát. Kết luận Lý giải
B. Một vòng lặp chỉ thực thi đúng một lần, sau đó dừng lại. Kết luận Lý giải
C. Một vòng lặp có điều kiện dừng rõ ràng và được kiểm tra sau mỗi lần lặp. Kết luận Lý giải
D. Một vòng lặp lồng nhau được sử dụng để duyệt qua các phần tử của mảng hai chiều. Kết luận Lý giải
17. Tại sao việc sử dụng tên biến có ý nghĩa và dễ hiểu lại quan trọng trong lập trình?
A. Giúp người lập trình (và người khác đọc mã) dễ dàng hiểu mục đích và chức năng của biến, cải thiện khả năng đọc và bảo trì mã nguồn. Kết luận Lý giải
B. Giúp chương trình chạy nhanh hơn vì máy tính xử lý tên biến có ý nghĩa tốt hơn. Kết luận Lý giải
C. Bắt buộc phải đặt tên biến theo quy tắc nghiêm ngặt của ngôn ngữ lập trình. Kết luận Lý giải
D. Làm cho mã nguồn trông chuyên nghiệp hơn mà không ảnh hưởng đến hoạt động của chương trình. Kết luận Lý giải
18. Trong lập trình, "mảng" (array) và "danh sách" (list) có điểm gì chung?
A. Cả hai đều là các cấu trúc dữ liệu dùng để lưu trữ một tập hợp các phần tử có cùng hoặc khác kiểu dữ liệu. Kết luận Lý giải
B. Cả hai đều chỉ có thể lưu trữ một phần tử duy nhất tại một thời điểm. Kết luận Lý giải
C. Cả hai đều yêu cầu các phần tử phải được sắp xếp theo thứ tự tăng dần. Kết luận Lý giải
D. Cả hai đều không thể thay đổi kích thước sau khi tạo. Kết luận Lý giải
19. Tại sao việc "khai báo biến" trước khi sử dụng lại là một thực hành tốt trong nhiều ngôn ngữ lập trình?
A. Giúp trình biên dịch hoặc thông dịch hiểu rõ kiểu dữ liệu và phạm vi của biến, từ đó phát hiện sớm lỗi và tối ưu hóa bộ nhớ. Kết luận Lý giải
B. Làm cho mã nguồn trông dài hơn và phức tạp hơn. Kết luận Lý giải
C. Chỉ là một quy tắc không quan trọng, có thể bỏ qua. Kết luận Lý giải
D. Tăng cường bảo mật cho chương trình bằng cách che giấu tên biến. Kết luận Lý giải
20. Khi thiết kế một chương trình, việc "gỡ lỗi" (debugging) có vai trò quan trọng nhất là gì?
A. Tìm và sửa các lỗi (bugs) trong mã nguồn để chương trình hoạt động chính xác như mong đợi. Kết luận Lý giải
B. Tăng tốc độ xử lý của chương trình bằng cách tối ưu hóa mã. Kết luận Lý giải
C. Thêm các tính năng mới và giao diện người dùng hấp dẫn cho chương trình. Kết luận Lý giải
D. Viết tài liệu hướng dẫn sử dụng chi tiết cho chương trình. Kết luận Lý giải
21. Trong lập trình, "hàm" (function) hoặc "phương thức" (method) là gì và vai trò của chúng?
A. Là một khối mã có tên, thực hiện một nhiệm vụ cụ thể và có thể được gọi lại nhiều lần từ các phần khác nhau của chương trình, giúp tái sử dụng mã và tổ chức chương trình. Kết luận Lý giải
B. Là một biến lưu trữ giá trị duy nhất và không thể thay đổi. Kết luận Lý giải
C. Là một cấu trúc dữ liệu dùng để lưu trữ nhiều giá trị cùng lúc. Kết luận Lý giải
D. Là một câu lệnh điều kiện để rẽ nhánh chương trình. Kết luận Lý giải
22. Khái niệm "biến" trong lập trình đề cập đến điều gì?
A. Một vùng nhớ được đặt tên để lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình. Kết luận Lý giải
B. Một hàm hoặc thủ tục thực hiện một tác vụ cụ thể. Kết luận Lý giải
C. Một hằng số có giá trị không bao giờ thay đổi. Kết luận Lý giải
D. Một cấu trúc dữ liệu phức tạp như cây hoặc đồ thị. Kết luận Lý giải
23. Khi một chương trình cần thực hiện một hành động chỉ khi một điều kiện cụ thể là đúng, cấu trúc điều khiển nào là phù hợp nhất?
A. Câu lệnh "if". Kết luận Lý giải
B. Vòng lặp "for". Kết luận Lý giải
C. Câu lệnh "while". Kết luận Lý giải
D. Câu lệnh "return". Kết luận Lý giải
24. Phát biểu nào sau đây mô tả đúng nhất về "thuật toán"?
A. Một tập hợp các bước hữu hạn, rõ ràng và có thứ tự để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ cụ thể. Kết luận Lý giải
B. Một chương trình máy tính phức tạp được viết bằng ngôn ngữ lập trình bậc cao. Kết luận Lý giải
C. Một thiết bị phần cứng có khả năng xử lý thông tin. Kết luận Lý giải
D. Một phương pháp để lưu trữ dữ liệu trên đĩa cứng. Kết luận Lý giải
25. Trong lập trình, "kiểu dữ liệu" (data type) đóng vai trò gì?
A. Xác định loại giá trị mà một biến có thể lưu trữ (ví dụ: số nguyên, số thực, văn bản) và các phép toán có thể thực hiện trên giá trị đó. Kết luận Lý giải
B. Quyết định tốc độ chạy của chương trình. Kết luận Lý giải
C. Chỉ định tên của biến. Kết luận Lý giải
D. Xác định số lần một vòng lặp sẽ chạy. Kết luận Lý giải