1)must + have done:用于肯定句,表示推測(cè),意為“一定(已經(jīng))……”。
You must have finished the work. 你一定已經(jīng)完成工作了。
2)can + have done:用于否定句或疑問(wèn)句,表示推測(cè),意為“可能(已經(jīng))……”。
He can’t have left so soon. 他不可能走得這么早。
3)could + have done:可用于肯定句、否定句或疑問(wèn)句,表示推測(cè)、責(zé)備或遺憾等,意為“可能……”、“本來(lái)可以……”、“本來(lái)應(yīng)該……”等。
You could have finished it, but you failed. 你本可以完成,但你失敗了。
4)should [ought to] + have done:可用于肯定句、否定句或疑問(wèn)句,表示責(zé)備或遺憾等,意為“本來(lái)應(yīng)該……”。
You should have helped me, but you just sat and watched there.
你本應(yīng)該幫我的,但你只是在那坐著看。
5)need + have done:用于否定句或疑問(wèn)句,用于否定時(shí)意為“本來(lái)不必”,用于疑問(wèn)句時(shí)意為“有必要……嗎”。
You needn’t have helped me because I could make it.
你本沒(méi)必要幫我的,我自己可以做到。
6)may + have done:用于肯定句或否定句,表示推測(cè),意為“可能(已經(jīng))……”。
She may have seen this film. 她可能已經(jīng)看過(guò)這部電影了。
7)might + have done:用于肯定句或否定句,表示推測(cè),意為“可能(已經(jīng))……(此時(shí)might可換為 may);
She may/ might have seen this film. 她可能已經(jīng)看過(guò)這部電影了。
另外還可以表示過(guò)去可能發(fā)生的事結(jié)果未發(fā)生,意為“本來(lái)會(huì)……”(此時(shí) might不能換為 may)。
Tom might have given you more help, even though he was busy.
盡管湯姆很忙,他或許也會(huì)多給你一些幫助。