英语学习 / 语法进阶   ← 返回语法目录
知识点深化 · 语法进阶 · 情态动词完成式(FCE B2)

情态动词 + have done:对过去的推测与后悔

他肯定已经到家了、不可能见过我、你本该早告诉我的、本不必带伞——这些对「过去」的判断和懊悔,都用 情态动词 + have + 过去分词。这一页带你分清四种高频含义。

这一课怎么学(约 45 分钟)

拆成 4 步,一步都别跳:

1记结构(10 分钟)
核心就一条:情态动词 + have + 过去分词,have 用原形。
2辨含义(10 分钟)
区分 must/can't(推测)、should/needn't(责备与白做)。
3做题(15 分钟)
完成 3 道题,重点区分 can't have 与 mustn't have。
4讲出来(10 分钟)
用费曼三问讲清:为什么否定推测用 can't have。

一图看懂本课

情态动词 + have done:对过去的推测与后悔
→
肯定推测
must have done
一定做了
→
否定推测
can't have done
不可能做了
→
本应/本不必
should have done
本该没做
needn't have done
白做了
→
不确定
may have done
might have done
could have done
必背核心规则
1. must have done:肯定推测过去「一定做了」。
2. can't have done:否定推测「不可能做了」。
3. should have done:本该做却没做(责备 / 后悔)。
4. needn't have done:本不必做却做了(白做了)。
5. may / might have done:过去「也许做了」(不确定)。
6. 结构铁律:情态动词 + have + 过去分词,have 永远用原形。
7. 对现在的推测用「情态动词 + be」:He must be at home.
8. needn't have done 与 didn't need to do 的区别:前者做了,后者没做。
9. might have done 比 may have done 更没把握。

用法速查:规则与例句对照

结构含义语气例句 (en)中文
must have done过去一定做了肯定推测The lights are on. He must have come home.灯亮着,他肯定到家了。
can't have done过去不可能做了否定推测He can't have heard the news; he's been away.他不可能听说这消息,他一直不在。
should have done本该做(却没做)责备 / 后悔You should have told me earlier.你本该早点告诉我的。
needn't have done本不必做(却做了)白做了You needn't have brought an umbrella; it's sunny.你本不必带伞,天是晴的。
may / might have done过去也许做了不确定推测She may have missed the bus.她也许没赶上公交。
could have done本能够做(却没做)遗憾I could have won, but I got nervous.我本可以赢,可我紧张了。

must have done vs can't have done(一对反义推测)

肯定否定
推测「一定 / 不可能」must have left(一定走了)can't have left(不可能走了)
注意对过去的否定推测用 can't have,不能用 mustn't have(mustn't 表禁止)。

高频情态完成式速记

英文例句中文
He must have left.他肯定走了。
She can't have done it alone.她不可能独自做的。
You should have told me.你本该告诉我。
You needn't have worried.你本不必担心。
They may have missed the bus.他们也许没赶上车。
I could have been a doctor.我本可以当医生。
He might have forgotten.他也许忘了。
She must have been tired.她当时肯定累了。

考点清单(FCE)

考点常见考法
must have done对过去肯定推测
can't have done对过去否定推测
should have done责备/后悔,本该没做
needn't have done本不必做却做了
may/might have done不确定推测
could have done本能够做却没做
have 不漏情态 + have + p.p.
mustn't 不表推测否定推测用 can't

易混点辨析

表达区别
must have / can't have肯定推测 vs 否定推测
mustn't / can't禁止 vs 不可能
should have / shouldn't have本该做 vs 本不该做
needn't have / didn't need to做了白做 vs 不必也没做
may have / might havemight 更没把握
must be / must have been对现在 vs 对过去推测
shouldn't have done本不该做却做了
ought to have done= should have done
can't have been对过去状态否定推测
may not have done也许没做
couldn't have done当时不可能做到
need have done本有必要(少见)

例句精讲

The ground is wet. It must have rained last night.
地面是湿的,昨晚肯定下雨了。(must have done 肯定推测)
She can't have finished the report in ten minutes.
她不可能十分钟就写完报告。(can't have done 否定推测)
You needn't have cooked so much food; only three people came.
你本不必做这么多菜,只来了三个人。(needn't have done 白做了)
防坑三则① 对过去的否定推测用 can't have done,不用 mustn't have done——mustn't 是「禁止」,不表推测。
② should have done 是「本应做却没做」,带责备;别和「应该做」混。
③ needn't have done 是「做了但其实没必要」;didn't need to do 则是「当时没必要、也确实没做」。

补充对照

推测 vs 责备 语气对照

结构语气感情色彩
must have done有把握肯定冷静推测
can't have done有把握否定冷静推测
may/might have done没把握猜测
should have done责备 / 后悔带情绪
needn't have done白做了松一口气 / 无奈

中国学生高频错误诊断

错误 1:否定推测用 mustn't
✗ He mustn't have heard it. → ✓ He can't have heard it. mustn't 表禁止,不表推测。
错误 2:should have 当应该做
✗ You should have done it tomorrow.(指将来)→ ✓ You should do it tomorrow. should have done 只指过去。
错误 3:漏 have
✗ You should told me. → ✓ You should have told me. 情态动词+过去必须有 have。

记忆口诀

三句口诀① 情态加 have 加过分,全是对过去的判断。② 肯定推测 must have,否定推测 can't have,mustn't 是禁止别乱认。③ should have 是本该没做,needn't have 是做了白做。

口语跟读:说出来才算会

跟读 · 互译练习
灯亮着,他肯定到家了:He must have arrived home.
他不可能做完:He can't have finished it.
你本该早说:You should have told me earlier.
挑战:用 needn't have done 说一件你「白做了」的小事。

自测三题(点击按钮对答案)

basic填空:The phone is on the desk. He ___ (must / can't) have forgotten it at home.(他不可能忘在家)
can't have forgotten。东西就在桌上,对过去作否定推测用 can't have done。
mid填空:You ___ (should) have told me you were sick. I was worried.(本该告诉我却没说)
should have told。本该做却没做,带责备。
hard辨析:You needn't have watered the flowers — it rained later. 意思是「浇了还是没浇?」
浇了,但后来下雨了,白浇了。needn't have done = 本不必做却做了。

费曼三问:用你自己的话讲清楚

用你自己的话回答这三问① must have done 和 can't have done 怎么构成一对「肯定 / 否定推测」?② should have done 和 needn't have done,哪个带「责备」、哪个带「白忙活」?③ 为什么说「他一定没做」不能用 mustn't have done?

7 天复习计划

天任务自检
第 1 天背 must/can't/should/needn't have done 含义四个含义不混
第 2 天练对过去的推测 5 句否定用 can't have
第 3 天练责备/白做句 5 句have 不漏
第 4 天重做自测 + mustn't 辨析mustn't 不误用
第 5-7 天用情态完成式点评一件昨天的事语气自然
第 6 天重看思维导图与必背卡能默写出核心公式
第 7 天不看笔记做 3 道自测 + 错题本正确率 90% 以上

本课一句话总结

情态 + have + 过分全是对过去的判断:must have 肯定、can't have 否定、should have 责备、needn't have 白做。

← 上一篇 · 动名词与不定式 语法目录 下一篇 · 虚拟语气 →