Đáp án C
Kiến thức: Modal verb
Giải thích:
must have done sth: chắc hẳn đã làm gì
may have done sth: có thể đã làm gì (chỉ khả năng xảy ra)
should have done sth: nên đã làm gì (nhưng đã không làm)
could have done sth: có thể đã làm gì (chỉ năng lực khả năng)
Tạm dịch: John lẽ ra phải hoàn thành bài tập này sáng hôm qua, nhưng tôi đã làm điều đó cho anh ta. Anh ta nợ tôi một lời cảm ơn.