情态动词+have done 是一种虚拟语气,和情态动词+动词原形的区别是:用原型表示事情发生在现在或将来,而用have done ,表示事情发生在过去.
例如,You must be tired now.(你现在一定很累)
You must have seen the film.(你一定看过这部电影)指的是你过去一定看过.
考试常考这么几种:
must have done (过去)一定做过某事
It must have rained last night.(昨晚一定下雨了)
cann't have done (过去)一定没有做过某事
He cann't have seen the film,because he doesn's know anying about it.(他一定没看过那部电影,因为他对它一无所知)
注意:千万不能用mustn't ,因为它是“禁止,绝不可以”的意思
could have done (过去)本来可以做成某事实际上却没有
I could have succeeded in the game if I hadn't have a cold.(如果我没感冒的话,我可能已经在比赛中成功了)
should have done (过去)应该做某事而没有做
You should have cleaned your room yesterday.(你昨天就应该把屋子打扫了)而实际上却没有