1. Phát biểu nào sau đây là đúng về tính dừng của thuật toán?
A. Thuật toán phải thực hiện một số lượng hữu hạn các bước.
B. Thuật toán phải cho ra kết quả đúng với mọi trường hợp.
C. Mỗi bước trong thuật toán phải được mô tả rõ ràng.
D. Thuật toán phải có khả năng xử lý được dữ liệu lớn.
2. Trong quá trình giải bài toán tin học, bước nào đóng vai trò xác định rõ ràng các yêu cầu, điều kiện ràng buộc và kết quả mong muốn?
A. Lập thuật toán
B. Xác định bài toán
C. Viết chương trình
D. Kiểm thử và gỡ lỗi
3. Ngôn ngữ lập trình nào sau đây thường được sử dụng cho các ứng dụng web, có khả năng tương tác với trình duyệt và máy chủ?
A. Assembly Language
B. Fortran
C. JavaScript
D. COBOL
4. Nếu một chương trình được viết bằng ngôn ngữ bậc cao, nó cần được xử lý bởi công cụ nào trước khi máy tính có thể thực thi?
A. Trình biên dịch hoặc trình thông dịch
B. Hệ điều hành
C. Trình gỡ lỗi (Debugger)
D. Trình soạn thảo văn bản
5. Thuật toán là một dãy hữu hạn các thao tác, mỗi thao tác phải được xác định rõ ràng và thực hiện được. Đặc điểm này của thuật toán được gọi là gì?
A. Tính đúng đắn
B. Tính dừng
C. Tính rõ ràng (Tính xác định)
D. Tính hiệu quả
6. Khi phân tích bài toán, việc xác định đầu ra (output) của bài toán tập trung vào yếu tố nào?
A. Các bước xử lý cần thiết.
B. Các thông tin ban đầu.
C. Kết quả cuối cùng cần đạt được.
D. Các ràng buộc về hiệu năng.
7. Việc sử dụng ngôn ngữ lập trình trong quá trình giải bài toán tin học nhằm mục đích gì?
A. Chỉ để hiển thị kết quả.
B. Để giao tiếp trực tiếp với phần cứng.
C. Để diễn đạt thuật toán một cách dễ hiểu cho máy tính.
D. Để phân tích yêu cầu của bài toán.
8. Việc xác định điều kiện ràng buộc trong phân tích bài toán có ý nghĩa gì?
A. Xác định các hành động cần thực hiện.
B. Xác định các giới hạn hoặc quy tắc mà lời giải phải tuân theo.
C. Xác định kết quả cuối cùng của bài toán.
D. Xác định ngôn ngữ lập trình phù hợp.
9. Phát biểu nào sau đây KHÔNG phải là một đặc điểm của thuật toán?
A. Mỗi bước phải rõ ràng.
B. Phải có ít nhất một đầu ra.
C. Phải có khả năng tự học và cải thiện.
D. Phải kết thúc sau một số hữu hạn bước.
10. Đâu là một ví dụ về dữ liệu đầu vào (input data) cho bài toán tính diện tích hình chữ nhật?
A. Công thức tính diện tích
B. Giá trị của chiều dài và chiều rộng
C. Kết quả diện tích
D. Thuật toán tính diện tích
11. Trong quá trình giải bài toán, lập trình là bước nào?
A. Xác định yêu cầu và mục tiêu.
B. Thiết kế các bước giải quyết vấn đề.
C. Viết mã lệnh theo thuật toán đã có bằng một ngôn ngữ lập trình.
D. Kiểm tra xem chương trình có chạy đúng như mong đợi không.
12. Trong các bước giải bài toán tin học, bước nào là quan trọng nhất để đảm bảo chương trình hoạt động đúng và hiệu quả trước khi bàn giao?
A. Xác định bài toán
B. Lập thuật toán
C. Viết chương trình
D. Kiểm thử và gỡ lỗi
13. Ngôn ngữ lập trình nào thường được ưa chuộng trong các lĩnh vực khoa học dữ liệu, học máy và trí tuệ nhân tạo nhờ thư viện phong phú và cú pháp dễ đọc?
A. Assembly
B. Fortran
C. Python
D. Pascal
14. Phát biểu nào sau đây mô tả đúng nhất về tính hiệu quả của thuật toán?
A. Thuật toán phải sử dụng ít bộ nhớ nhất có thể.
B. Thuật toán phải thực hiện càng ít phép tính càng tốt để đạt kết quả.
C. Thuật toán phải dễ hiểu và dễ cài đặt.
D. Thuật toán phải có khả năng xử lý được mọi loại dữ liệu.
15. Ngôn ngữ lập trình nào được xem là ngôn ngữ máy tính hiểu trực tiếp hoặc gần nhất, cho phép điều khiển phần cứng một cách chi tiết?
A. Python
B. C++
C. Ngôn ngữ máy (Machine Language)
D. Java
16. Đâu là một ví dụ về kết quả đầu ra (output) cho bài toán tính chu vi hình tròn với bán kính cho trước?
A. Giá trị bán kính
B. Giá trị của số Pi
C. Công thức tính chu vi
D. Giá trị chu vi hình tròn
17. Để một chương trình có thể chạy trên máy tính, mã nguồn viết bằng ngôn ngữ bậc cao cần trải qua quá trình gì?
A. Chỉ cần sao chép vào bộ nhớ.
B. Biên dịch hoặc thông dịch sang ngôn ngữ máy.
C. Chạy trực tiếp bởi hệ điều hành.
D. Nén lại để giảm dung lượng.
18. Khi phân tích một bài toán, việc xác định đầu vào (input) của bài toán là gì?
A. Các hành động mà máy tính cần thực hiện để đạt kết quả.
B. Các thông tin ban đầu cần thiết để giải bài toán.
C. Các yêu cầu về định dạng của kết quả cuối cùng.
D. Các điều kiện ràng buộc mà bài toán phải tuân thủ.
19. Khi một thuật toán được thiết kế, việc đảm bảo rằng nó sẽ luôn kết thúc sau một số bước hữu hạn được gọi là?
A. Tính rõ ràng
B. Tính đúng đắn
C. Tính dừng
D. Tính hiệu quả
20. Ngôn ngữ lập trình nào sau đây được coi là ngôn ngữ bậc thấp?
A. Python
B. C#
C. Assembly Language
D. Ruby
21. Trong các bước giải bài toán tin học, bước nào tập trung vào việc mô tả một cách tuần tự các hành động để máy tính thực hiện?
A. Xác định bài toán
B. Lập trình
C. Kiểm thử
D. Lập thuật toán
22. Phát biểu nào sau đây mô tả đúng nhất mục đích của việc sử dụng ngôn ngữ lập trình bậc cao?
A. Giúp máy tính hiểu lệnh trực tiếp mà không cần biên dịch.
B. Cho phép lập trình viên viết mã gần với ngôn ngữ tự nhiên và dễ hiểu hơn.
C. Tăng tốc độ thực thi chương trình lên mức tối đa.
D. Yêu cầu người lập trình hiểu sâu về cấu trúc phần cứng.
23. Phát biểu nào sau đây mô tả đúng nhất về tính đúng đắn của thuật toán?
A. Thuật toán phải có thời gian thực thi nhanh.
B. Thuật toán phải cho ra kết quả chính xác với mọi bộ dữ liệu đầu vào hợp lệ.
C. Thuật toán phải sử dụng ít bộ nhớ nhất.
D. Thuật toán phải dễ đọc, dễ hiểu.
24. Khi một chương trình máy tính gặp lỗi và dừng hoạt động, quá trình tìm và sửa lỗi này được gọi là gì?
A. Phân tích bài toán
B. Thiết kế thuật toán
C. Kiểm thử và gỡ lỗi (Debugging)
D. Mã hóa chương trình
25. Mục đích chính của việc biên dịch (compilation) một chương trình viết bằng ngôn ngữ bậc cao là gì?
A. Tăng cường bảo mật cho chương trình.
B. Chuyển đổi mã nguồn thành ngôn ngữ máy để máy tính có thể thực thi.
C. Giúp lập trình viên dễ dàng đọc hiểu mã nguồn.
D. Tự động sửa lỗi cú pháp trong chương trình.