should、would、could、need加have done时,肯定形式下的意思,都是情态动词的本意,加上还没做的事;否定形式下的意思,都是情态动词的本意,加上已经做了的事。
一、“must+have+done”表示对过去事情的肯定推测,译成“一定做过某事”,该结构只用于肯定句.
You must have been mad to speak to theservant.你和仆人说话,一定是发疯了.
二、“can't+have+done”表示对过去事情的否定推测,译成“不可能做过某事”.
Mary can't have stolen your money.She hasgone home.玛丽不可能偷你的钱,她回家去了.
三、“can+have+done”表示对过去行为的怀疑,用于疑问句,译成“可能做过……吗?”
There is no light in the room.Can theyhave gone out?屋里没有灯,他们可能出去了吗?
四、“could+have+done”是虚拟语气,表示对过去事情的假设,意思是本来能够做某事而没有做.
He could have passed the exam,but he wastoo careless.本来他能够通过考试,但是他太粗心.
五、“may+have+done”表示对发生过的事情的推测,意思是“可能已经”或“也许已经”,用于肯定句中.
—What has happened to George?
—I don't know.He may have got lost.
—乔治发生了什么事?
——我不知道,他可能迷路了.
六、“might+have+done”表示对过去事情的推测,might与may意思相同,但可能性更小.多用于虚拟语气结构中.
He might have given you more help,eventhough he was busy.他或许会多给你一些帮助,即使他很忙.
七、“would+have+done”虚拟语气,表示对过去事情的假设,意思是“本来会做”.
Without your help,I wouldn't haveachieved so much.没有你的帮助,我是不会取得如此大的成绩.
八、“should+have+done”意思是“本来应该做某事,而实际没做.”“shouldn't+have+done”表示本来不应该做某事,而实际做了.含有指责对方或自责的含意.
Look,Tom is crying.I shouldn't have beenso harsh on him.看,汤姆哭了,我本来不应该对他如此严厉.
九、“ought to+have+done”表示过去应该做而实际并没有做,译成“理应做……”,往往表示遗憾.与“should+have+done”用法基本一样.
I ought to have gone home last Sunday.我理应上星期日回家.
十、“need+have+done”表示本来需要做某事而没有做.“needn't+have+done”则表示“本来不需要做某事而做了”.
I needn't have bought so much wine—only fivepeople came.我本来没有必要买这么多酒,只来了五个人.
7.program和programme的区别 常见用法及搭配