Bạn có thể làm việc ngược lại thông qua quy trình xóa:
1) Bạn có thể kết thúc bằng một bộ chia bằng 0 không? Không có khả năng. Nếu b là 0, biểu thức cuối cùng là 0 và nếu nó không bằng 0, bạn sẽ không nhận được số chia cho 0.
2) Bạn có thể cung cấp số lượng đối số không chính xác và sự cố khi truy cập mảng không? Không thực sự vì kiểm tra trước đó của argc
3) Nếu đối số của bạn không chuyển thành một số, thì hãy gọi trả về giá trị số. Tôi nghĩ rằng đây là một phần của đặc tả thư viện và do đó không mở để thay đổi thực hiện nhưng tôi có thể sai.
Vì vậy, tôi không thấy cách bạn gặp sự cố tại đây.
Điều duy nhất tôi thích về câu hỏi này là chia cho phần không - nó kiểm tra rằng bạn hiểu toán tử ?: và 0 là sai. Tôi không thích phần atoi mà không cho bạn truy cập vào một tài liệu tham khảo hướng dẫn sử dụng. Tôi phải kiểm tra tài liệu để chắc chắn.
Tiềm năng cho tràn/tràn quá IMHO quá phức tạp. Thật tuyệt vời nếu bạn đang phỏng vấn một kỹ sư bảo mật phần mềm, nhưng tôi sẽ không hỏi một ứng cử viên cấp nhập cảnh hoặc thậm chí chỉ cho một công việc lập trình chuẩn. Nếu bạn đến từ các ngôn ngữ khác (ví dụ: Python), điều này đặc biệt khó khăn.
Cập nhật: Tôi đã thực hiện tìm kiếm trực tuyến về một số tham chiếu và có vẻ như atoi sẽ trả về 0 trên đầu vào kém. Ví dụ, từ MSDN:
Mỗi chức năng trả về giá trị int sản xuất bằng cách giải thích đầu vào nhân vật như một số. Giá trị trả về là 0 cho atoi và _wtoi, nếu không thể chuyển đổi đầu vào thành giá trị của loại đó.
@Stacker: Không có ý tưởng, có vẻ giống như một số câu hỏi phỏng vấn đã được đặt trước. – Quixotic
tôi đoán là không thể ... – Kasturi
Tôi có nhận được cookie nếu tôi trả lời đúng không? Nếu họ hỏi bạn điều này trong một cuộc phỏng vấn, hy vọng họ không cung cấp cho bạn công việc. Nếu họ làm, chạy. –