Trắc nghiệm Tin học 5 Cánh diều bài 13: Chạy thử, phát hiện và sửa lỗi chương trình
1. Khi trình biên dịch (compiler) báo lỗi cú pháp, điều đó có nghĩa là gì?
A. Chương trình không thể được dịch sang mã máy để chạy.
B. Chương trình sẽ chạy chậm hơn bình thường.
C. Chương trình sẽ chạy sai kết quả.
D. Chương trình đã chạy thành công.
2. Khi phát hiện lỗi trong chương trình, việc đầu tiên cần làm là gì để đảm bảo an toàn cho công việc?
A. Sao lưu (backup) lại phiên bản chương trình hiện tại.
B. Xóa ngay lập tức đoạn mã nghi ngờ gây lỗi.
C. Chỉ sửa lỗi trên bản gốc mà không sao lưu.
D. Chỉ tìm kiếm giải pháp trên mạng.
3. Lỗi logic (logic error) trong lập trình là loại lỗi gì?
A. Lỗi do chương trình thực hiện sai các bước logic đã định sẵn, dẫn đến kết quả không mong muốn.
B. Lỗi do người lập trình quên đóng dấu ngoặc kép.
C. Lỗi do máy tính bị quá tải.
D. Lỗi do chương trình bị virus tấn công.
4. Nếu một chương trình tính chu vi hình vuông nhưng lại sử dụng công thức tính diện tích (cạnh * cạnh) thay vì chu vi (cạnh * 4), đây là loại lỗi gì?
A. Lỗi logic, vì công thức tính sai.
B. Lỗi cú pháp, vì sai ký tự.
C. Lỗi dữ liệu, vì nhập sai số.
D. Lỗi hệ thống, vì máy chậm.
5. Khi tìm thấy một lỗi, việc tiếp theo sau khi xác định được nguyên nhân là gì?
A. Sửa lỗi trong mã nguồn.
B. Chạy thử lại với bộ dữ liệu cũ.
C. Viết báo cáo về lỗi.
D. Tạm dừng công việc.
6. Ví dụ nào sau đây mô tả một lỗi logic trong chương trình tính tổng hai số a và b, nếu người lập trình viết a - b thay vì a + b?
A. Chương trình vẫn chạy được nhưng cho ra kết quả là hiệu số thay vì tổng số.
B. Chương trình báo lỗi cú pháp và không chạy được.
C. Chương trình chạy rất nhanh.
D. Chương trình yêu cầu nhập lại dữ liệu.
7. Khi chạy thử một chương trình máy tính, nếu phát hiện chương trình hoạt động không đúng như mong đợi, hành động đầu tiên cần thực hiện là gì để tìm ra nguyên nhân?
A. Kiểm tra lại từng bước thực hiện của chương trình, so sánh với kết quả mong muốn.
B. Thay đổi toàn bộ mã nguồn chương trình để thử nghiệm.
C. Hỏi bạn bè xem họ có gặp lỗi tương tự không.
D. Bỏ qua lỗi và tiếp tục sử dụng chương trình.
8. Khi sửa lỗi cú pháp, hành động nào sau đây là phù hợp nhất?
A. Đọc kỹ thông báo lỗi từ trình biên dịch và sửa đúng chỗ bị sai.
B. Thêm nhiều lệnh print() vào chương trình.
C. Chạy lại chương trình nhiều lần mà không sửa gì.
D. Tìm kiếm trên mạng với từ khóa lỗi chương trình.
9. Nếu trình biên dịch báo lỗi Undefined variable (biến chưa được định nghĩa), đây là lỗi thuộc loại nào?
A. Lỗi cú pháp, vì biến chưa được khai báo đúng cách.
B. Lỗi logic, vì sử dụng biến sai mục đích.
C. Lỗi chạy, vì máy tính quá nóng.
D. Lỗi người dùng, vì nhập sai.
10. Trong quá trình sửa lỗi, nếu sửa một lỗi làm phát sinh thêm một lỗi mới, hiện tượng này được gọi là gì?
A. Regression bug (lỗi hồi quy).
B. Syntax error (lỗi cú pháp).
C. Logic error (lỗi logic).
D. Runtime error (lỗi chạy).
11. Lỗi cú pháp (syntax error) trong lập trình là loại lỗi gì?
A. Lỗi do người lập trình viết sai quy tắc của ngôn ngữ lập trình.
B. Lỗi do chương trình thực hiện sai các bước đã định sẵn.
C. Lỗi do máy tính bị hỏng phần cứng.
D. Lỗi do người dùng nhập sai dữ liệu.
12. Nếu một chương trình yêu cầu người dùng nhập tuổi, và khi người dùng nhập abc (không phải số), chương trình bị dừng đột ngột, đây có thể là lỗi gì?
A. Lỗi logic, do chương trình không xử lý đúng dữ liệu nhập không hợp lệ.
B. Lỗi cú pháp, do sai ký tự trong mã lệnh.
C. Lỗi phần cứng, do bàn phím bị hỏng.
D. Lỗi hệ điều hành, do hệ thống không ổn định.
13. Một chương trình không hiển thị thông báo lỗi nhưng lại cho ra kết quả sai, điều này thường chỉ ra loại lỗi nào?
A. Lỗi logic.
B. Lỗi cú pháp.
C. Lỗi kết nối mạng.
D. Lỗi phần cứng.
14. Khi một chương trình yêu cầu nhập tên người dùng, và người dùng nhập tên quá dài, chương trình bị lỗi hiển thị hoặc chạy sai, đây là lỗi gì?
A. Lỗi logic, do chương trình không giới hạn độ dài tên hợp lệ.
B. Lỗi cú pháp, do ký tự đặc biệt trong tên.
C. Lỗi mạng, do kết nối yếu.
D. Lỗi bộ nhớ, do thiếu RAM.
15. Khi sửa lỗi trong chương trình, việc quan trọng sau khi sửa xong là gì?
A. Chạy thử lại chương trình với các trường hợp dữ liệu liên quan đến lỗi vừa sửa.
B. Ngay lập tức công bố chương trình.
C. Tìm kiếm lỗi khác.
D. Đóng chương trình.
16. Đâu là tên gọi chung cho các lỗi trong chương trình máy tính, có thể là lỗi cú pháp hoặc lỗi logic?
A. Bug
B. Feature
C. Algorithm
D. Variable
17. Việc kiểm tra từng dòng lệnh của chương trình để tìm lỗi mà không cần chạy chương trình được gọi là gì?
A. Đọc mã (Code reading) hoặc xem xét mã (Code inspection).
B. Biên dịch mã (Code compiling).
C. Chạy thử mã (Code testing).
D. Lập trình mã (Code programming).
18. Nếu một chương trình tính toán kết quả sai lệch một chút so với giá trị thực tế (ví dụ: sai số thập phân nhỏ), đây có thể là dấu hiệu của loại lỗi nào?
A. Lỗi logic liên quan đến cách làm tròn hoặc biểu diễn số thực.
B. Lỗi cú pháp.
C. Lỗi do người dùng nhập sai.
D. Lỗi phần cứng của máy tính.
19. Trong quá trình sửa lỗi logic, việc thêm các lệnh hiển thị giá trị của biến (ví dụ: lệnh print trong Python) tại các điểm khác nhau của chương trình được gọi là gì?
A. Debug bằng cách theo dõi giá trị biến.
B. Compile lại chương trình.
C. Code review.
D. Unit testing.
20. Đâu là một ví dụ về trường hợp biên (edge case) khi kiểm thử chương trình?
A. Nhập giá trị lớn nhất hoặc nhỏ nhất mà chương trình cho phép.
B. Nhập dữ liệu thông thường, ở giữa phạm vi cho phép.
C. Nhập dữ liệu ngẫu nhiên.
D. Nhập dữ liệu có định dạng sai.
21. Đâu là một công cụ hỗ trợ lập trình viên phát hiện và sửa lỗi một cách hiệu quả, cho phép đặt điểm dừng (breakpoint) để kiểm tra giá trị biến tại từng bước?
A. Trình gỡ lỗi (Debugger).
B. Trình soạn thảo văn bản (Text Editor).
C. Trình duyệt web (Web Browser).
D. Máy tính bỏ túi (Calculator).
22. Việc thử nghiệm chương trình với các bộ dữ liệu đầu vào khác nhau để đảm bảo chương trình hoạt động đúng đắn trong mọi tình huống được gọi là gì?
A. Kiểm thử (Testing).
B. Biên dịch (Compiling).
C. Gỡ lỗi (Debugging).
D. Lập trình (Programming).
23. Để phát hiện lỗi logic, người lập trình thường sử dụng phương pháp nào sau đây?
A. Chạy thử chương trình với nhiều bộ dữ liệu đầu vào khác nhau và so sánh kết quả.
B. Xóa hết mã nguồn và viết lại từ đầu.
C. Chỉ chạy chương trình với một bộ dữ liệu duy nhất.
D. Đóng băng máy tính để tránh lỗi.
24. Khi viết mã chương trình, việc đặt tên biến rõ ràng và có ý nghĩa giúp ích gì cho quá trình phát hiện và sửa lỗi sau này?
A. Giúp dễ dàng hiểu mục đích của biến và theo dõi luồng dữ liệu.
B. Làm cho chương trình chạy nhanh hơn.
C. Giảm số lượng lỗi cú pháp.
D. Tự động sửa tất cả các lỗi.
25. Việc kiểm tra xem một chương trình có hoạt động đúng như yêu cầu của người dùng hay không được gọi là gì?
A. Kiểm thử chấp nhận (Acceptance Testing).
B. Kiểm thử đơn vị (Unit Testing).
C. Kiểm thử tích hợp (Integration Testing).
D. Kiểm thử hiệu năng (Performance Testing).