一、should/ought to +have+v-ed和shouldn’t/ought not to+have+v-ed
“should/ought to+have+v-ed”表示过去应该做的事情却没有做,常含有后悔、责备、埋怨的口吻,常译作“本应当…..”,“应当….就好了”。“shouldn’t/ought not to+have+v-ed”表示过去不该做的事却做了,也常含有责备、不满的意思,常译为“本不应该….”。
例:With all the work finished, I should have gone to the party last night.
昨天晚上当所有的工作完成之后,我本来应该去参加聚会的。
例:You should not have gone back to work yesterday without the doctor’s permission.
你昨天没有得到医生的允许,不应该回去工作的。
二、may/might+have+v-ed
“may/might+have+v-ed”表示对过去事情的推测,但不十分肯定。Might比may语气缓和,口气更委婉;常译为“可能(或许)已经….”。
例:A traffic accident happened yesterday and a driver may have been hurt.
昨天发生了一场交通事故,可能有个司机受了伤。
三、could+have+v-ed
“could+have+v-ed”表示过去有可能或有能力做某事,而实际未做、未能实现的事;有时也表示轻度批评,可译为“本来可以”。
经典练习:
1、I didn’t send out my application form last week, but I _____.
A)had
B)would do
C)should have
D)might have to
2、With all his work on hand, he_____to the cinema last night.
A)mustn’t go
B)wouldn’t go
C)oughtn’t go
D)shouldn’t have gone
3、By next summer he_____at Harvard University for five years.
A)will have been studying
B)will study
C)have studied
D)will be studying
4、When Jim____his own house, he will install built-in stereo speakers in every room.
A)has
B)will have
C)had
D)had been
解析:
1、答案选C。本题第一句意义为:我上星期没有发出申请表。根据前后的逻辑意义,后一句应表示“我本应该发出”才是。C项省略了sent out,正合题意。
2、答案选D。shouldn’t have gone 表示“本来不该去的,但实际去了”的含义,符合语法规则,所以D为正确选项。
3、答案选A。“by(the end of )+将来时间”出现在句子中,句中谓语动词要用将来完成时或将来完成进行时来表达。所以A符合语法规则。
4、答案选A。当主句以将来时出现时,从句采用一般现在时来表示一般将来时,采用现在完成表示将来完成时。只有A符合语法规则。