一、“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. 他本来需要快点去车站,那样的话,他就不会误了火车。
在虚拟语气中的用法
1. should have done 表示“过去本应该做某事却未做。”其否定结构 shouldn't have done 表示 “过去本不该做某事却做了。”
2. ought to have done 表示“过去本应该做某事却未做。”其否定结构 oughtn't to
have done 表示 “过去本不该做某事却做了。”
3. need have done 表示“过去本有必要做某事却未做。”其否定结构 needn't have done 表示 “过去本没必要做某事却做了。”
4. could (不能用 can) have done 表示“过去本能够做某事却未做。”注意:其否定形式 couldn't have done 没有虚拟语气的用法,couldn't have done 只能表推测,相当于 can't have done,意为:“过去不可能做了某事。”
5. might (不能用 may) have done 表示“过去本可以做某事却未做。” 注意:其否定形式 might not have done 没有虚拟语气的用法,might not have done 只能表推测,相当于 may not have done,意为:“过去可能没有做某事。”
should have done:本应该做而没做某事,强调“本来应该”;
could have done:本可以做却没做某事,强调“本来可以”;
might have done: 可能已经作了某事,强调猜测。
前两个都是假设,是与实际情况相反的假设。第三个是猜测。除此之外,should have done还明显含有懊悔或责怪之意。
举例来讲:
小明把家里的钥匙放在教室忘记带了。回到家打不开门一直蹲在门口等到晚上10点多加班的爸爸妈妈回来,很晚才进了家门。此场景下
1. 小明到家后发现钥匙忘带很懊悔。此时他可能会抱怨自己:I should have brought the key with me.
2. 那时的小明除了在门外等待爸爸妈妈回来,还有别的解决方案却没做:He could have come back to school to get the key but he didn't.
又如,当爸爸妈妈那么晚回来发现小明在门外,问明原因后,爸爸妈妈问他为什么当时不返回学校拿钥匙。爸爸妈妈认为若小明当时返回学校拿了钥匙的话可能早就进去了。爸爸妈妈可能会说:You could have come in much ealier if you came back school to get the key then.
3. 关于为什么当时没有返回学校拿钥匙,小明解释到:I thought the gate might have already been closed by that time.(学校大门那时候可能早已经关了)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务