Chọn đáp án D
Xét nghĩa các phương án:
A. needn’t have phoned: đã không cần gọi điện (nhưng thực tế là đã gọi)
B. must have phoned: hẳn đã gói (suy đoán gần như chắc chắn)
C. oughtn’t have phoned: sai cấu trúc (phải là ought to have done)
D. should have phoned: đã nên gọi điện (nhưng thực tế là đã không gọi)
Vậy trong văn cảnh của câu hỏi này ta chọn phương án phù hợp nhất là D.
Tạm dịch: Tôi đã chờ hàng giờ đồng hồ rồi. Cậu đã nên gọi điện nói với tôi sẽ đến trễ chứ.