1. Một chương trình tính tổng các số từ 1 đến 100 nhưng lại tính tổng từ 1 đến 99. Đây là lỗi gì?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại lệ.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại lệ.
2. Khi một chương trình gặp lỗi runtime (runtime error), điều đó thường có nghĩa là:
A. Lỗi cú pháp trong mã nguồn chưa được sửa.
B. Chương trình đã được biên dịch thành công nhưng gặp sự cố trong quá trình thực thi.
C. Lập trình viên đã viết sai thuật toán cơ bản.
D. Chương trình không thể truy cập vào internet.
A. Lỗi cú pháp trong mã nguồn chưa được sửa.
B. Chương trình đã được biên dịch thành công nhưng gặp sự cố trong quá trình thực thi.
C. Lập trình viên đã viết sai thuật toán cơ bản.
D. Chương trình không thể truy cập vào internet.
3. Đâu là một phương pháp hiệu quả để xác định lỗi logic trong một chương trình phức tạp?
A. Chỉ đọc lại toàn bộ mã nguồn nhiều lần.
B. Sử dụng trình gỡ lỗi để theo dõi từng bước thực thi và giá trị biến.
C. Yêu cầu người dùng báo cáo tất cả các vấn đề họ gặp.
D. Chạy chương trình với các trường hợp nhập liệu ngẫu nhiên.
A. Chỉ đọc lại toàn bộ mã nguồn nhiều lần.
B. Sử dụng trình gỡ lỗi để theo dõi từng bước thực thi và giá trị biến.
C. Yêu cầu người dùng báo cáo tất cả các vấn đề họ gặp.
D. Chạy chương trình với các trường hợp nhập liệu ngẫu nhiên.
4. Việc sử dụng một biến chưa được khai báo hoặc chưa được gán giá trị trong một biểu thức là lỗi thuộc loại nào?
A. Lỗi logic.
B. Lỗi cú pháp.
C. Lỗi runtime (ví dụ: "undefined variable").
D. Lỗi thiết kế.
A. Lỗi logic.
B. Lỗi cú pháp.
C. Lỗi runtime (ví dụ: "undefined variable").
D. Lỗi thiết kế.
5. Khi một chương trình yêu cầu nhập một chuỗi ký tự nhưng người dùng lại nhập một số, điều này có thể dẫn đến:
A. Lỗi cú pháp ngay lập tức.
B. Lỗi logic trong xử lý.
C. Lỗi runtime (ví dụ: "type mismatch" hoặc "invalid input").
D. Chương trình hoạt động bình thường vì hệ thống tự động chuyển đổi kiểu dữ liệu.
A. Lỗi cú pháp ngay lập tức.
B. Lỗi logic trong xử lý.
C. Lỗi runtime (ví dụ: "type mismatch" hoặc "invalid input").
D. Chương trình hoạt động bình thường vì hệ thống tự động chuyển đổi kiểu dữ liệu.
6. Đâu là ví dụ về lỗi cú pháp (syntax error) phổ biến nhất?
A. Tính tổng hai số nguyên ra một số thực.
B. Quên dấu chấm phẩy (;) ở cuối câu lệnh trong một số ngôn ngữ lập trình.
C. Vòng lặp vô hạn do điều kiện thoát vòng lặp sai.
D. Chương trình trả về kết quả âm khi lẽ ra phải là số dương.
A. Tính tổng hai số nguyên ra một số thực.
B. Quên dấu chấm phẩy (;) ở cuối câu lệnh trong một số ngôn ngữ lập trình.
C. Vòng lặp vô hạn do điều kiện thoát vòng lặp sai.
D. Chương trình trả về kết quả âm khi lẽ ra phải là số dương.
7. Khi chạy một chương trình, nếu chương trình đột ngột kết thúc mà không có thông báo lỗi rõ ràng, nguyên nhân có thể là:
A. Lỗi cú pháp nghiêm trọng.
B. Lỗi logic dẫn đến vòng lặp vô hạn.
C. Lỗi runtime do truy cập bộ nhớ không hợp lệ.
D. Lỗi cú pháp chưa được sửa.
A. Lỗi cú pháp nghiêm trọng.
B. Lỗi logic dẫn đến vòng lặp vô hạn.
C. Lỗi runtime do truy cập bộ nhớ không hợp lệ.
D. Lỗi cú pháp chưa được sửa.
8. Trong quá trình gỡ lỗi, việc đặt các câu lệnh in giá trị của biến tại các điểm khác nhau trong chương trình được gọi là:
A. Kiểm thử đơn vị (Unit testing).
B. Gỡ lỗi bằng cách in (print debugging).
C. Tối ưu hóa mã nguồn.
D. Biên dịch mã nguồn.
A. Kiểm thử đơn vị (Unit testing).
B. Gỡ lỗi bằng cách in (print debugging).
C. Tối ưu hóa mã nguồn.
D. Biên dịch mã nguồn.
9. Phát biểu nào sau đây là đúng về mối quan hệ giữa lỗi cú pháp và lỗi runtime?
A. Lỗi runtime luôn xảy ra trước lỗi cú pháp.
B. Lỗi cú pháp phải được sửa trước khi lỗi runtime có thể xảy ra.
C. Lỗi cú pháp và lỗi runtime là hai loại lỗi độc lập, không liên quan.
D. Lỗi runtime chỉ xảy ra khi không có lỗi cú pháp nào.
A. Lỗi runtime luôn xảy ra trước lỗi cú pháp.
B. Lỗi cú pháp phải được sửa trước khi lỗi runtime có thể xảy ra.
C. Lỗi cú pháp và lỗi runtime là hai loại lỗi độc lập, không liên quan.
D. Lỗi runtime chỉ xảy ra khi không có lỗi cú pháp nào.
10. Khi một chương trình thực hiện phép chia cho 0, đây là ví dụ điển hình của:
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại lệ (exception).
Lưu ý: Lỗi ngoại lệ là một dạng của lỗi runtime.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại lệ (exception).
11. Một lỗi logic (logic error) trong chương trình có thể dẫn đến:
A. Chương trình bị dừng đột ngột với thông báo lỗi.
B. Chương trình chạy đúng cú pháp nhưng cho kết quả sai hoặc hoạt động không như mong đợi.
C. Máy tính bị treo hoặc khởi động lại.
D. Không có bất kỳ ảnh hưởng nào đến hoạt động của chương trình.
A. Chương trình bị dừng đột ngột với thông báo lỗi.
B. Chương trình chạy đúng cú pháp nhưng cho kết quả sai hoặc hoạt động không như mong đợi.
C. Máy tính bị treo hoặc khởi động lại.
D. Không có bất kỳ ảnh hưởng nào đến hoạt động của chương trình.
12. Một chương trình tính diện tích hình chữ nhật bằng công thức `chiều dài + chiều rộng` thay vì `chiều dài * chiều rộng` là lỗi thuộc loại nào?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại tuyến.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi ngoại tuyến.
13. Lỗi nào sau đây không thể được phát hiện bởi trình biên dịch (compiler)?
A. Thiếu dấu ngoặc nhọn.
B. Sử dụng toán tử không hợp lệ.
C. Chia một số nguyên cho một số nguyên khác và làm tròn kết quả.
D. Khai báo sai kiểu dữ liệu cho biến.
A. Thiếu dấu ngoặc nhọn.
B. Sử dụng toán tử không hợp lệ.
C. Chia một số nguyên cho một số nguyên khác và làm tròn kết quả.
D. Khai báo sai kiểu dữ liệu cho biến.
14. Trong các loại lỗi sau, loại nào thường khó phát hiện và sửa chữa nhất?
A. Lỗi cú pháp.
B. Lỗi runtime.
C. Lỗi logic.
D. Lỗi thiết kế.
A. Lỗi cú pháp.
B. Lỗi runtime.
C. Lỗi logic.
D. Lỗi thiết kế.
15. Phát biểu nào sau đây mô tả đúng nhất về "lỗi bán cú pháp" (semi-syntax error)?
A. Lỗi xảy ra khi chương trình chạy quá chậm.
B. Lỗi mà trình biên dịch không nhận ra nhưng gây ra hành vi sai lệch.
C. Lỗi cú pháp nghiêm trọng đến mức không thể biên dịch.
D. Lỗi logic chỉ xuất hiện ở một số trường hợp cụ thể.
A. Lỗi xảy ra khi chương trình chạy quá chậm.
B. Lỗi mà trình biên dịch không nhận ra nhưng gây ra hành vi sai lệch.
C. Lỗi cú pháp nghiêm trọng đến mức không thể biên dịch.
D. Lỗi logic chỉ xuất hiện ở một số trường hợp cụ thể.
16. Khi một chương trình thực hiện lặp vô hạn (infinite loop), điều này chủ yếu là do:
A. Lỗi cú pháp trong câu lệnh lặp.
B. Lỗi logic trong điều kiện thoát hoặc cập nhật biến lặp.
C. Lỗi runtime do tràn bộ nhớ.
D. Lỗi không khai báo biến đếm.
A. Lỗi cú pháp trong câu lệnh lặp.
B. Lỗi logic trong điều kiện thoát hoặc cập nhật biến lặp.
C. Lỗi runtime do tràn bộ nhớ.
D. Lỗi không khai báo biến đếm.
17. Khi lập trình viên cố gắng truy cập một phần tử mảng bằng một chỉ số âm hoặc quá lớn, chương trình có khả năng gặp phải:
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime (index out of bounds).
D. Lỗi biên dịch.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime (index out of bounds).
D. Lỗi biên dịch.
18. Công cụ nào sau đây chủ yếu giúp lập trình viên tìm và sửa lỗi trong mã nguồn?
A. Trình soạn thảo văn bản.
B. Trình biên dịch.
C. Trình gỡ lỗi (debugger).
D. Hệ quản trị cơ sở dữ liệu.
A. Trình soạn thảo văn bản.
B. Trình biên dịch.
C. Trình gỡ lỗi (debugger).
D. Hệ quản trị cơ sở dữ liệu.
19. Trong quá trình phát triển phần mềm, việc kiểm tra xem mỗi thành phần nhỏ của chương trình có hoạt động đúng độc lập hay không được gọi là:
A. Kiểm thử tích hợp (Integration testing).
B. Kiểm thử hệ thống (System testing).
C. Kiểm thử đơn vị (Unit testing).
D. Kiểm thử chấp nhận (Acceptance testing).
A. Kiểm thử tích hợp (Integration testing).
B. Kiểm thử hệ thống (System testing).
C. Kiểm thử đơn vị (Unit testing).
D. Kiểm thử chấp nhận (Acceptance testing).
20. Một chương trình được thiết kế để tính chu vi hình tròn nhưng lại tính diện tích, đây là lỗi thuộc loại nào?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi giao diện người dùng.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi giao diện người dùng.
21. Mục tiêu chính của việc "kiểm thử" (testing) một chương trình là gì?
A. Tăng tốc độ thực thi của chương trình.
B. Phát hiện và sửa lỗi trước khi phát hành.
C. Giảm dung lượng bộ nhớ chương trình sử dụng.
D. Tự động hóa việc viết mã nguồn.
A. Tăng tốc độ thực thi của chương trình.
B. Phát hiện và sửa lỗi trước khi phát hành.
C. Giảm dung lượng bộ nhớ chương trình sử dụng.
D. Tự động hóa việc viết mã nguồn.
22. Trong lập trình, lỗi cú pháp (syntax error) thường được phát hiện bởi:
A. Người dùng cuối khi chạy chương trình.
B. Trình biên dịch (compiler) hoặc trình thông dịch (interpreter) trước khi chương trình thực thi.
C. Trình gỡ lỗi (debugger) trong quá trình chạy.
D. Hệ điều hành khi chương trình yêu cầu tài nguyên bất hợp pháp.
A. Người dùng cuối khi chạy chương trình.
B. Trình biên dịch (compiler) hoặc trình thông dịch (interpreter) trước khi chương trình thực thi.
C. Trình gỡ lỗi (debugger) trong quá trình chạy.
D. Hệ điều hành khi chương trình yêu cầu tài nguyên bất hợp pháp.
23. Nếu bạn nhập `print("Hello, " + 5)` vào một trình thông dịch Python, bạn sẽ gặp loại lỗi nào?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime (type error).
D. Không có lỗi, chương trình sẽ chạy.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime (type error).
D. Không có lỗi, chương trình sẽ chạy.
24. Khi bạn viết một hàm tính bình phương của một số, nhưng lại quên không trả về giá trị (return value), thì lỗi này thuộc loại nào?
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi biên dịch.
A. Lỗi cú pháp.
B. Lỗi logic.
C. Lỗi runtime.
D. Lỗi biên dịch.
25. Trong quá trình gỡ lỗi (debugging), bước nào sau đây thường được thực hiện đầu tiên khi nghi ngờ có lỗi?
A. Viết lại toàn bộ chương trình.
B. Thay đổi cấu trúc dữ liệu.
C. Tái hiện (reproduce) lỗi để quan sát.
D. Phân tích hiệu năng của chương trình.
A. Viết lại toàn bộ chương trình.
B. Thay đổi cấu trúc dữ liệu.
C. Tái hiện (reproduce) lỗi để quan sát.
D. Phân tích hiệu năng của chương trình.