一、“can(could)+不定式的完成式”的疑问或否定形式表示对过去发生的行为的怀疑或不肯定。例如:
He cannot have been to that town. 他根本不可能去过那座城市。
Can he have got the book? 他会有那本书吗?
二、“may(might)+不定式的完成式”表示对过去发生的行为的推测,意思是“可能已经”或“也许已经”。例如:
He may not have finished the work.他可能还没有完成那项工作。
-Whatever has happened to George?
-I don't know. He may have got lost.
-乔治发生了什么事?
-我不知道,他可能迷路了。
*might 表示的可能性比may小,语气较委婉。例如:
How quickly time passed!It might have happened yesterday. 时间过得好快啊!这事好像就发生在昨天。
He might have seen the surprise in my face. 他或许已经看到了我惊异的表情。
三、“must+不定式的完成式”常用在肯定句中,表示对过去发生的行为的推测,意为“一定;想必”。例如:
You must have seen the film Titanic.你一定看过电影《泰坦尼克号》。
He must have been to Beijing. 他肯定去过北京。
It must have rained last night, for the ground is wet. 昨天晚上一定下过雨了,因为地面是湿的。
四、“needn't+不定式的完成式”表示本来不必做某事而实际上却做了某事。例如:
You needn't have watered the flowers, for it is going to rain. 你本不需要浇花,因为天就要下雨了。
五、“should+不定式的完成式”表示本应该做而实际上没有做,其否定式表示某种行为本不该发生但却发生了。例如:
You should have started earlier, but you didn't. 你本应该早点儿出发,但是你没有。
She shouldn't have taken away my dictionary, for I wanted to use it. 她本不应该拿走我的词典,因为我要用它。
六、“ought to+不定式的完成式”表示过去应做某事而实际未做,其否定形式表示本不应该做某事却做了(同should用法)。例如:
You ought to have helped him, but you didn't. 你本应该帮助他但你没有。
He ought not to have stopped his work halfway.他本不应该做这项工作时半途而废。