情态动词加have done都是对过去事情的推测,区别只在于情态动词的不同
一、 “must+have+done”
表示对过去事情的肯定推测,译成“一定做过某事”,该结构只用于肯定句.
1.It must have rained last night,for the ground is wet.昨晚一定下雨了,因为地面还是湿的.
2.You must have been mad to speak to the servant.你和仆人说话,一定是发疯了.
二、 “can't+have+done”
表示对过去事情的否定推测,译成“不可能做过某事”.
1.Mr.Smith can‘t have gone to Beijing,for I saw him in the library just now.史密斯先生不可能去北京了,我刚才还在图书馆见过他.
2.Mary can't have stolen your money.She has gone home.玛丽不可能偷你的钱,她回家去了.
三、 “can+have+done”
表示对过去行为的怀疑,用于疑问句,译成“可能做过……吗?”.
1.There is no light in the room.Can they have gone out?屋里没有灯,他们可能出去了吗?
2.There is nowhere to find them.Where can they have gone?到处找不到他们,他们可能到什么地方去呢?
四、 “could+have+done”
是虚拟语气,表示对过去事情的假设,意思是本来能够做某事而没有做.
He could have passed the exam,but he was too careless.本来他能够通过考试,但是他太粗心.
五、 “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.他本来需要快点去车站,那样的话,他就不会误了火车.