【归纳】
★could have done可以表示“过去本来能够做某事而实际上没有做”。如:
I could have come here a little earlier, but I'm late because of the bad traffic.
★must have done表示对过去已经发生过的情况的肯定推测,语气较强。如:
She must have received the book; I sent it a month ago.
★may / might have done表示对已经发生过的情况的肯定推测,语气稍弱。might have done还可表示“本可能做某事而实际上没有做”。如:
She didn't come on time. She may / might have missed the bus.
He might have given you more help, but he was very busy then.
★should / ought to have done表示“本该做某事而实际上没有做”,其否定形式表示“本不该做某事而实际上做了”,通常含有责备的意思。如:
The flowers have died. I should / ought to have watered them often.
You shouldn't / ought not to have told them the truth.
★needn't have done表示“本不必做某事而实际上做了”。如:
It is warm today. You needn't have worn your coat.
注意:didn't need to do与needn't have done都表示“过去不必做某事”,但didn't need to do通常表示“没必要做,实际上也没做某事”,而needn't have done则表示“虽然没必要做,但已经做了某事”。如:
He didn't need to get up early on Sunday, so he stayed in bed until 10 am.
It's only five minutes'walk. We needn't have taken a taxi.
【即学即练】用“情态动词+ have done”结构完成下列句子。
1. You ________ (wash) the wound with cold water, but you used hot water.
2. I am not feeling well in the stomach. I ________ (eat) so much just now.
3. There was enough time. You ________ (hurry).
4. I ________ (lend) you the money. Why didn't you ask me?
5. They ________ (go) out because the light's out.
答案
【即学即练】
1. should / ought to have washed
2. shouldn't / ought not to have eaten
3. needn't have hurried
4. could / might have lent
5. must have gone