1.could have done 表示“本来能做但却没做”。
couldn’t have done 多用于语气强烈的否定,意为“过去不可能做过”
eg:
(1) He could have passed the exam,but he was too careless.
他本来能够及格的,但是他太粗心了。
(2)The accident could have been avoided;the driver couldn’t have slowed down.
这事故本来是可以避免的;司机肯定没减速。
2.may/might have done 意为“可能做过”。
might 所表示的可能性比较弱
might have done 还可表示“本可能做而实际上未做”,含有轻微的责备语气。
eg:
You might have given him more help,though you were busy with your work.
你本来可以给他更多的帮助,尽管你工作很忙。
3.must have done 意为“(过去)一定做过”,只用于肯定句。
eg:It must have rained last night,for the ground is wet.
昨晚一定下雨了,因为地面是湿的。
4.can't have done 意为“(过去)不可能做过”
eg:Mr smith can't have have gone to Beijing,for I saw him in the library just now.
5.should/ought to have done “本该做某事而实际上未做”;
should not have done/ ought not have done 表示“不该做某事反而做了”。
eg: Look, Mary is crying.I should'nt /oughtn't have spoken to her so rudely.
6.needn’t have done “本来不必做某事而实际上却做了”。
eg: I got up early, but I needn’t have done so, because I had no work to do that morning.
我起床起得很早,但我本来不必起那么早的,因为我那天早上没什么事做。
部分材料来源于网络,侵删联系 :15647351257(微信同号)