mustn't have done和can't have done的区别最好有例子

问题描述:

mustn't have done和can't have done的区别
最好有例子

首先have done表示已经做过,这点就不用谈了.
can't have done 表示以前不可能做某事.
例句
---Where____Margaret have put the empty bottles?
---She________them away.They must be somewhere.
A.can;can't have thrown
B.must;must have thrown.
C.must;needn't
D.can;must throw
答案为A.第一个句子是一个疑问句而且表示可能性的推测,所以只能用情态动词can或could,第二句的答语表示对过去的推测,所以用can't have done.
请看常见的“情态动词 + have + 过去分词”的用法:
一、“must + have + 过去分词”表示对过去发生的事情或状态进行推测,语气比较坚定,通常只用于肯定句.如:
It must have rained last night,for the ground is wet.
You must have been mad to speak to the servant.
二、“can / could + have + 过去分词”表示对过去某种情况的怀疑或不确定.can和could一般用于否定句和疑问句,could的语气较can弱.如:
I didn't see her at the meeting this morning; she can't / couldn't have spoken at the meeting.
He can't have finished the work so soon.
三、“may / might + have + 过去分词”表示对已发生的动作或存在的状态进行不肯定的推测,might的语气比may弱一点.这种结构主要用于肯定句和否定句,疑问句改用can或could.如:
They may not have known it beforehand.
You might have read about it in the papers.
四、“need + have + 过去分词”表示过去做了不必做或不需要做的事情,或过去做某事纯属多余.如:
Need they have done it last week?
I needn't have bought so much wine—only five people came.
五、“should / ought to + have + 过去分词”表示过去本该做某事但没做,其否定式表示过去不该做某事但做了,这种句式含有不满或责备之意,ought to的语气比should强一些.如:
You ought to / should have studied harder.你本应该更努力学习的.(但没有)
He oughtn't to / shouldn't have done that.他本来就不该做那件事.(可是做了)
六、“would + have + 过去分词”表示对过去的某种情况进行猜测,或本来要做某事却因某种原因未做成,通常用来说明某一情况,但不像用should或ought to那样含有责备之意.如:
I guess the poet would have been about twenty when she wrote her first poem.
Another worker wouldn't have acted like that.