I saw Mr.Zhang just now.He couldn't have gone to Beijing.
b.may/might+have done一般只用于肯定句或否定句,不用于疑问句,表示对过去情况不肯定的
推测,意为\也许已经(没有)……\。might have done还可用来表示\本来可
能……,\但实际上没发生的事。如:
He may (might) have gone
home.
He may not have finished the work.
You should not have
climbed that hill.You might have killed yourself. 另外,might+ have done还可以表达\本来应该或可以做但没有做某事\之意,含有轻微的责备口吻。如:
You might have given him more help,though you were busy.
c.must+ have done只用于肯定句,表示对过去情况肯定的推测,意为\想必,一定做了某事\。如:
It must have rained last night,for the road was quite muddy.
注意:如果要表示对过去情况否定的推测,不能用mustn't,要用can't have done或couldn't have done来表示:\不可能做了某事\。如:
He can't have been to Beijing,for he knows too little about it.
d. needn't+ have done通常用于否定句或疑问句中,表示不必须做的事情却做了。如:
You needn't have told her the news, for I had told her earlier.
注意:didn't need to do表示\没必要做而实际上也没有做某事\。如: