“must+have+done”表示对过去事情的肯定推测,译成“一定做过某事”,该结构只用于肯定句。
“cant+have+done”表示对过去事情的否定推测,译成“不可能做过某事”。
“could+have+done”是虚拟语气,表示对过去事情的假设,意思是本来能够做某事而没有做。
“may+have+done”表示对发生过的事情的推测,意思是“可能已经”或“也许已经”,用于肯定句中。
—What has happened to George?
—I don't know. He may have got lost.
—乔治发生了什么事?
——我不知道,他可能迷路了。
“might+have+done”表示对过去事情的推测,might与may意思相同,但可能性更小。多用于虚拟语气结构中。
1. He might have given you more help, even though he was busy. (MET90) 他或许会多给你一些帮助,即使他很忙。
2. She might have achieved greater progress, if you had given her more chances. 如果你多给她点机会,她可能已经取得更大的成绩。
“would+have+done”虚拟语气,表示对过去事情的假设,意思是“本来会做”。
1. I would have told you all about the boy's story, but you didn't ask me. 我本来会告诉你这个小男孩的故事,但是你没有问我。
2. Without your help, I wouldn't have achieved so much. 没有你的帮助,我是不会取得如此大的成绩。
“should+have+done”意思是“本来应该做某事,而实际没做。” “shouldn't+have+done”表示本来不应该做某事,而实际做了。含有指责对方或自责的含意。
1. Tom, you are too lazy. The work should have been finished yesterday. 汤姆,你太懒惰了,这项工作本来应该昨天就做完的。
2. Look, Tom is crying. I shouldn't have been so harsh on him. 看,汤姆哭了,我本来不应该对他如此严厉。
“ought to+have+done”表示过去应该做而实际并没有做,译成“理应做……”,往往表示遗憾。与“should+have+done”用法基本一样。
I ought to have gone home last Sunday. 我理应上星期日回家。
You ought not to have given him more help. 你不应该帮助他那么多。
“need+have+done”表示本来需要做某事而没有做。“needn't+have+done”则表示“本来不需要做某事而做了”。
I needn't have bought so much wine—only five people came. 我本来没有必要买这么多酒,只来了五个人。
He need have hurried to the station. In that case, be wouldn't have missed the train. 他本来需要快点去车站,那样的话,他就不会误了火车。
下一篇
考研试卷可以用红笔吗