[Cánh diều] Trắc nghiệm Tin học 5 bài 13: Chạy thử, phát hiện và sửa lỗi chương trình
1. Khi một chương trình yêu cầu người dùng nhập tuổi, nhưng người dùng nhập một chuỗi ký tự không phải là số (ví dụ: abc). Nếu chương trình dừng đột ngột với thông báo lỗi liên quan đến chuyển đổi kiểu dữ liệu, đó là lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi nhập liệu (Input Error).
2. Khi chạy thử một chương trình xử lý ảnh, chương trình bị chậm đi đáng kể khi xử lý các ảnh có kích thước lớn. Mặc dù chức năng vẫn đúng, nhưng hiệu suất kém. Đây có thể là dấu hiệu của loại lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error) liên quan đến hiệu suất.
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi nhập liệu (Input Error).
3. Khi phát triển một ứng dụng nhỏ để tính tổng các số nhập vào, lập trình viên quên xử lý trường hợp người dùng nhập số âm. Chương trình vẫn chạy nhưng kết quả có thể không như mong đợi đối với các số âm. Đây là lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi ngoại lệ (Exception Error).
4. Khi bạn viết mã và gặp lỗi như TypeError: unsupported operand type(s) for +: int and str, điều này có nghĩa là gì?
A. Bạn đã sử dụng sai cú pháp của phép cộng.
B. Bạn đang cố gắng thực hiện phép cộng giữa một số nguyên và một chuỗi ký tự.
C. Chương trình không có đủ bộ nhớ để thực hiện phép tính.
D. Biến được sử dụng trong phép cộng chưa được khai báo.
5. Trong quá trình kiểm thử, khi một chương trình gặp sự cố và dừng hoạt động đột ngột, ví dụ như thông báo chương trình đã dừng hoạt động hoặc màn hình xanh, đó thường là loại lỗi nào?
A. Lỗi logic (Logic Error).
B. Lỗi cú pháp (Syntax Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi thiết kế (Design Error).
6. Phát hiện lỗi trong quá trình chạy thử chương trình giúp đảm bảo chất lượng sản phẩm. Loại lỗi nào thường liên quan đến việc chương trình không thực hiện đúng các phép tính toán học hoặc logic?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi cú pháp thời gian chạy (Compile-time Error).
7. Giả sử bạn có một chương trình tính toán chu vi hình tròn với bán kính r. Công thức đúng là `2 * pi * r`. Nếu bạn vô tình viết mã là `2 + pi + r`, chương trình sẽ chạy nhưng cho kết quả sai. Đây là loại lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi nhập liệu (Input Error).
8. Khi chạy thử một chương trình máy tính, việc phát hiện ra các lỗi là một bước quan trọng. Lỗi chương trình có thể xuất hiện dưới nhiều dạng khác nhau. Đâu là khái niệm mô tả chính xác nhất về lỗi chương trình trong ngữ cảnh phát triển phần mềm?
A. Một bộ phận của chương trình không hoạt động theo đúng yêu cầu của người dùng.
B. Một tính năng mới được thêm vào chương trình.
C. Một thay đổi nhỏ về giao diện người dùng.
D. Một đoạn mã có chức năng bổ sung.
9. Việc chạy thử (testing) chương trình có vai trò gì quan trọng nhất trong chu trình phát triển phần mềm?
A. Để làm cho chương trình trông đẹp mắt hơn.
B. Để đảm bảo chương trình hoạt động đúng theo yêu cầu và không có lỗi.
C. Để giảm dung lượng của chương trình.
D. Để thêm các chức năng mới phức tạp.
10. Khi chạy thử một chương trình tính toán diện tích hình chữ nhật, người dùng nhập chiều dài là 10 và chiều rộng là 5. Chương trình hiển thị kết quả là 15 thay vì 50. Lỗi này thuộc loại nào?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi ngoài phạm vi (Out-of-bounds Error).
11. Trong một chương trình duyệt web, khi bạn nhấp vào một liên kết, trang web mới không tải mà thay vào đó trình duyệt hiển thị một thông báo lỗi về kết nối mạng. Đây có thể là lỗi gì?
A. Lỗi logic (Logic Error).
B. Lỗi cú pháp (Syntax Error).
C. Lỗi thời gian chạy (Runtime Error) liên quan đến mạng.
D. Lỗi nhập liệu (Input Error).
12. Việc kiểm tra chương trình có thể được thực hiện bởi chính người lập trình hoặc bởi một nhóm chuyên gia kiểm thử. Ai thường là người chịu trách nhiệm chính trong việc phát hiện và sửa lỗi ban đầu?
A. Người quản lý dự án.
B. Người lập trình viên.
C. Người dùng cuối.
D. Nhà thiết kế giao diện.
13. Trong một chương trình, có một biến lưu trữ số lượng người dùng trực tuyến. Nếu biến này không được cập nhật đúng cách khi có người dùng đăng nhập hoặc đăng xuất, kết quả hiển thị sẽ sai lệch. Đây là lỗi thuộc loại nào?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi bảo mật (Security Error).
14. Khi kiểm tra một chương trình, bạn nhận thấy rằng một vòng lặp while của bạn không bao giờ kết thúc. Điều này có thể dẫn đến tình trạng chương trình bị treo. Đây là biểu hiện của loại lỗi nào?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi vô hạn lặp (Infinite Loop Error).
15. Trong các bước phát hiện và sửa lỗi, việc tái hiện lỗi (reproducing the bug) quan trọng như thế nào?
A. Giúp làm cho lỗi trở nên rõ ràng hơn.
B. Là bước đầu tiên và cần thiết để hiểu và sửa lỗi.
C. Chỉ cần thiết khi lỗi đó rất nghiêm trọng.
D. Không quan trọng bằng việc sửa lỗi ngay lập tức.
16. Một lập trình viên viết một hàm để sắp xếp một danh sách các số theo thứ tự tăng dần. Khi thử với danh sách `[3, 1, 4, 2]`, hàm trả về `[3, 4, 1, 2]` thay vì `[1, 2, 3, 4]`. Lỗi này thuộc loại nào?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi định dạng dữ liệu (Data Formatting Error).
17. Khi phát hiện một lỗi trong chương trình, việc ghi lại chi tiết về lỗi (ví dụ: các bước để tái hiện, kết quả mong đợi, kết quả thực tế) là rất quan trọng. Điều này giúp ích gì cho quá trình sửa lỗi?
A. Giúp người dùng hiểu rõ hơn về chương trình.
B. Tăng tốc độ và hiệu quả của việc sửa lỗi.
C. Làm cho chương trình có vẻ chuyên nghiệp hơn.
D. Thay đổi cách chương trình hoạt động.
18. Một lập trình viên viết mã và khi nhấn nút biên dịch (compile), trình biên dịch báo lỗi missing semicolon (thiếu dấu chấm phẩy) ở cuối một câu lệnh. Đây là loại lỗi gì?
A. Lỗi logic (Logic Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi cú pháp (Syntax Error).
D. Lỗi ngoại lệ (Exception Error).
19. Giả sử bạn đang viết một chương trình và bạn muốn in ra màn hình giá trị của một biến diem. Bạn viết `print(diem)` nhưng quên khai báo biến diem trước đó. Trình thông dịch (interpreter) có thể báo lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi chưa khai báo biến (Undefined Variable Error).
D. Lỗi thời gian chạy (Runtime Error).
20. Trong quá trình phát triển phần mềm, gỡ lỗi (debugging) là một hoạt động thiết yếu. Mục đích chính của việc gỡ lỗi là gì?
A. Thêm các tính năng mới cho chương trình.
B. Tối ưu hóa tốc độ chạy của chương trình.
C. Xác định và loại bỏ các lỗi trong mã nguồn.
D. Thay đổi giao diện người dùng cho hấp dẫn hơn.
21. Khi sửa một lỗi trong chương trình, việc quan trọng tiếp theo sau khi đã sửa mã là gì để đảm bảo việc sửa lỗi đã thành công và không gây ra lỗi mới?
A. Biên dịch lại chương trình.
B. Chạy lại thử nghiệm các trường hợp đã bị lỗi và các trường hợp liên quan.
C. Xóa bỏ đoạn mã vừa sửa.
D. Thêm nhiều chức năng mới vào chương trình.
22. Khi một chương trình yêu cầu người dùng nhập tên tệp tin để mở, nhưng người dùng nhập một tên tệp tin không tồn tại trong hệ thống. Nếu chương trình báo lỗi File not found (Tệp không tìm thấy), đây là loại lỗi gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi logic (Logic Error).
C. Lỗi thời gian chạy (Runtime Error).
D. Lỗi kiểm soát truy cập (Access Control Error).
23. Một lập trình viên đang kiểm tra một chức năng tìm kiếm trong ứng dụng. Khi nhập một từ khóa hợp lệ, chức năng này không trả về kết quả nào, mặc dù biết chắc chắn có dữ liệu khớp với từ khóa đó. Lỗi này có khả năng là gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi giao diện người dùng (UI Error).
24. Một chương trình có chức năng lưu thông tin người dùng vào một tệp. Khi người dùng nhập thông tin và nhấn nút Lưu, chương trình không báo lỗi nhưng thông tin không hề được ghi vào tệp. Lỗi này có khả năng là gì?
A. Lỗi cú pháp (Syntax Error).
B. Lỗi thời gian chạy (Runtime Error).
C. Lỗi logic (Logic Error).
D. Lỗi bộ nhớ (Memory Error).
25. Sau khi sửa một lỗi trong chương trình, điều quan trọng là phải kiểm tra lại. Nếu việc kiểm tra lại cho thấy vấn đề ban đầu đã được khắc phục nhưng lại xuất hiện một vấn đề mới ở một phần khác của chương trình, hiện tượng này được gọi là gì?
A. Kiểm thử hồi quy (Regression Testing).
B. Gỡ lỗi (Debugging).
C. Kiểm thử đơn vị (Unit Testing).
D. Kiểm thử tích hợp (Integration Testing).