常用于疑问句表示“可能已经……了吗?”和否定陈述句表示“不可能已经……”
may+完成式常用于肯定陈述句,表示“可能已经……”
might/could+完成式可用于各种句型,既可用于陈述句或疑问句,也可用于肯定句或否定句
There is no light in the room. Can he have gone out? 屋子里没有灯光,他可能出去了吧?
可以用might或could代替can,但不能用may
这四个词的可能性程度由低到高依次是might→may→could→can
可以表示过去本来可以做某事,但是却未做
He walked there, but he could have taken a taxi. 他走着去那里的,可当时完全可以坐出租。
couldn’t+完成式可以表示无论无何都不可能做到
I couldn’t have called you. I wasn’t near a telephone. 反正我不可能给你打电话,我附近没有电话。
表示对过去发生动作的“揣测”,翻译成“一定已经”,仅用于肯定句
Her father thought she must have met a fairy. 她父亲认为她一定是遇上了一位仙女。
表示做了本来不必要做的事情
He is sure to come. You needn’t have called him last night. 他肯定会来,你昨晚本没必要给他打电话。
肯定式表示过去应该做却没有做的动作,否定式表示过去不该做却偏偏做了的动作。两者均含有说话人责备和不满的意思。
The wall shouldn’t have been painted blue. 这墙本不该刷成蓝色的。
01. So you have done your homework, ____?
A. haven’t you B. have you C. you have D. do you
题干中的so暗示you在上文中已陈述了自己完成作业的情况,问话人已无需再就此事向对方进行核实,故附加部分不必用否定式,但句尾的“have you”要读降调,不可像haven’t you那样读成升调。
02. John ____ home tomorrow.
A. must have arrived B. may have arrived C. will have arrived D. can have arrived
will可表示对某种进程必然的猜测,可用于现在将来时。其他备选项只能表示对已发生的事情的推测。