句法句型 · 虚拟语气固定触发

情态动词 + have done 双解

情态完成体 + have done

推测义 vs 虚拟义双解, 靠单焦点 prompt 辨

本页先把情态动词 + have done 双解讲透——7 个小节说清这个标志是什么、有哪些结构变体、容易错在哪、怎么与近似结构区分,并配 6 句教学例句;之后按英语四级、英语六级、考研英语分节列出真题命中例句,共精选 48 句,每句高亮标志在原句中的位置,附中文翻译、实例解析与出处试卷,并可进入单句详情页看结构树逐层拆解。

GUIDE · 知识点讲解

情态动词 + have done 双解详解

  • 情态动词 + have done 有两大语义方向:推测过去(must/can't/may 系)与虚拟过去(should/would/could/might 系),区分关键在于句子焦点是「判断已发生之事」还是「对比现实与未实现可能」。
  • 推测过去义:说话人对过去事实作出有把握程度不同的判断,must have done 把握最大(肯定做了),can't have done 否定推测(不可能做了),may/might/could have done 把握较小(可能做了)。
  • 虚拟过去义:表示与过去事实相反或未实现的情况,should/ought to have done 指本该做却没做(带责备),would have done 用于主句表虚拟结果,could/might have done 指过去本有可能但未发生。
  • 辨析单焦点 prompt:若句中有「but 实际...」「if 当时...」等明示现实对比的成分,或上下文强调「本应/本可以」,则为虚拟义;若句子在基于线索推断「那时发生了什么」,则为推测义。
  • must have done 只表推测(肯定做了),没有虚拟用法;对过去虚拟的否定用 shouldn't/needn't have done,不用 mustn't have done。

核心结论

情态动词 + have done 结构在中国考生中是高频误读点,因为同一外壳承载两套截然不同的语义系统。第一套是推测过去(epistemic past):说话人站在现在时点,对过去某个已完成事件的真实性作出判断,核心是「我认为那时 X 发生了/没发生」。第二套是虚拟过去(counterfactual past):说话人对比现实与某个未实现的过去可能性,核心是「X 本可以发生但没有」或「X 本该发生但没有」。

推测过去义包含三个把握度梯队:must have done 表示基于证据的强推测(肯定做了,近乎确信),can't/couldn't have done 表示强否定推测(不可能做了),may/might/could have done 表示弱推测(可能做了,不确定)。这些用法都是对过去事实的认识论判断,事件本身已经发生或未发生,说话人只是不掌握全部信息。

虚拟过去义涵盖四种典型情态:should/ought to have done 表示过去的义务或期待未履行(本该做却没做,常带责备或遗憾),would have done 用于虚拟条件句主句(如果当时...就会...),could have done 表示过去具备能力或条件但未实现(本可以做但没做),might have done 表示过去存在可能性但未发生(本可能做但没做)。这些用法的共同特征是明确指向「与事实相反」,需要上下文或逻辑上有现实对比点。

结构公式与变体

基础公式:情态动词 + have + 过去分词。情态动词包括 must, can/can't, may, might, could, should, ought to, would, need 等,have 后接动词过去分词形式。

否定式:情态动词 + not + have done,缩写常见 couldn't/shouldn't/mightn't have done。注意 must 的否定推测不用 mustn't have done(该形式极罕用且意义模糊),而用 can't/couldn't have done。

疑问式:情态动词提前,Can/Could/Might he have done...? 推测义疑问句在考试阅读中少见,更多出现在听力或完形语境。

ought to have done 是 should have done 的正式同义表达,ought to 作为固定组块,否定式为 ought not to have done。

易错点与直译陷阱

最大陷阱:混淆推测与虚拟,导致对句子时间逻辑的误判。典型错误是把 could have done 一律当「本可以做」(虚拟),忽略其在推测语境中表示「可能做了」,如 He could have left early(他可能早走了)vs. He could have left early, but he didn't(他本可以早走但没走)。前者推测,后者虚拟,but 分句是关键线索。

must have done 只有推测义,没有虚拟义。考生常误以为 must have done 可表示「必须做了」(义务),实际上表达过去义务已完成要用 had to do,而 must have done 只能表示「肯定做了」(推测)。

对过去的否定推测必须用 can't/couldn't have done,不用 mustn't have done。mustn't 表示现在或将来的禁止,不表示对过去的否定推测。考生易受 must have done 影响,误造 mustn't have done 表示「肯定没做」。

should have done 的责备语气容易过度解读。该结构确实常含责备或遗憾,但在正式或客观语境中也可仅表示「按理说应该发生了」(接近推测),判断需结合上下文情感色彩,不可见到就自动加上「责怪」含义。

虚拟义 could/might have done 与推测义的区分依赖上下文对比点。若句中无 but/otherwise/if 等显性对比标记,且语境未强调「未实现」,则默认理解为推测义。考生易忽略隐性对比(如前文已说明实际情况),导致误判为推测。

近似结构辨析

must have done vs. should have done:前者推测义(肯定做了),后者虚拟义(本该做而未做)。She must have finished the report(她肯定完成了报告,基于证据推测)vs. She should have finished the report(她本该完成报告,暗示实际未完成)。

could have done 推测义 vs. 虚拟义:推测义译为「可能做了」,虚拟义译为「本可以做」。They could have missed the train(他们可能错过了火车,不确定推测)vs. They could have caught the train if they had hurried(他们本可以赶上火车,如果当时快点的话,虚拟)。虚拟义通常有 if 从句或 but 对比。

can't have done vs. shouldn't have done:前者推测义(不可能做了),后者虚拟义(本不该做却做了)。He can't have stolen the money(他不可能偷了钱,否定推测)vs. He shouldn't have stolen the money(他本不该偷钱,实际偷了,责备)。

may have done vs. might have done(推测义):二者在推测义上几乎同义,might 把握度略低或语气更试探,但差异微弱,考试中可视为等价。在虚拟义中,might have done 更常见,may have done 的虚拟用法较罕见。

would have done 与 could/might have done(虚拟义):would have done 用于主句表示虚拟结果(If..., S would have done),强调「那样的话就会...」;could have done 强调能力或条件(本有能力做),might have done 强调可能性(本可能发生)。I would have helped you if you had asked(如果你问了我就会帮,结果)vs. I could have helped you if you had asked(如果你问了我本有能力帮,能力)。

理解与翻译方法

第一步:定位句子焦点 —— 句子是在「推断过去事实」(认识论判断)还是「对比现实与未实现可能」(虚拟对比)。寻找单焦点 prompt:推测义句子通常有证据词(因为...、一定、看起来)、疑问语气(会不会...?)或不确定标记(也许、可能);虚拟义句子通常有对比标记(but 实际、if 当时、otherwise)或「本该/本可以」的隐含对比。

第二步:确认情态动词语义倾向 —— must/can't 只做推测,没有虚拟义;should/ought to 主要做虚拟(本该),偶做推测需明确语境;would 主要做虚拟主句,could/might 两义均可,需结合第一步判断。若第一步已明确是虚拟语境,则 could/might 取虚拟义;若是推测语境,则取推测义。

第三步:检验时间逻辑一致性 —— 推测义句子的言外之意是「我不知道当时真相,但我判断...」,前后文应有不确定性或证据链;虚拟义句子的言外之意是「我知道实际情况,但我设想如果...」,前后文应有现实情况描述或对比暗示。若译文与前后逻辑冲突,回到第一步重新判断。

第四步:翻译落地 —— 推测义用「肯定/可能/不可能 + 做了」,保持对过去事件的判断语气;虚拟义用「本该/本可以/本会 + 做」,强调未实现与现实对比。翻译中加上「但实际...」「如果当时...」等补充说明,可帮助显化虚拟逻辑。

考法提示

阅读理解中常考虚拟义辨识:给出含 should/could have done 的句子,问「作者暗示了什么」或「可以推断出什么」,正确选项需识别出「实际未发生」这一隐含信息。错误选项常设置为「已经发生」,诱导未识别虚拟的考生。

完形填空中常考情态动词选择:给出「... have done」挖空情态动词,需根据上下文判断是推测还是虚拟。若前文有证据描述或不确定语气,选 must/may/might;若前文有对比或遗憾语气,选 should/could。

翻译题中常考 should have done 的准确翻译:不可译为「应该做了」(会误导为已完成),必须译为「本该做」或「本应做」,体现未实现含义。评分点在于是否准确传达虚拟语义。

写作中避免误用:表达「必须做了」(义务完成)不用 must have done,应用 had to do;表达「可能做了」(推测)可用 may/might/could have done,但需确保语境无对比暗示,否则会被误读为虚拟。

记忆技巧

推测义记忆:推测是「我猜过去发生了 X」,关键词「猜」,must(肯定猜)、can't(否定猜)、may/might/could(不确定猜)。

虚拟义记忆:虚拟是「X 本可以但没有」,关键词「本」,should(本该)、would(本会)、could(本能)、might(本可能)。

must 只推测不虚拟:记住 must have done 永远是「肯定做了」,没有「必须做了」或「本该做」的意思,后两者分别用 had to do 和 should have done。

but/if 是虚拟信号:看到 could/might have done 不确定时,找 but 或 if,有则虚拟,无则推测。

教学例句

  • The experiment must have failed, because the data shows no significant change.

    实验肯定失败了,因为数据没有显示显著变化。

    must have done 推测义,基于数据证据作出强推测。

  • She can't have received the email; otherwise, she would have replied by now.

    她不可能收到邮件了;否则她现在应该已经回复了。

    can't have done 否定推测,逻辑推理她未收到。

  • You should have informed us earlier about the policy change.

    你本该早点通知我们政策变化。

    should have done 虚拟义,暗示实际未及时通知,带责备。

  • If the government had invested more in education, unemployment might have decreased significantly.

    如果政府当时在教育上投资更多,失业率本可能显著下降。

    might have done 虚拟义,与过去事实相反的假设,主句表示未实现的可能结果。

  • The team could have won the championship, but their key player was injured in the final.

    团队本可以赢得冠军,但他们的关键球员在决赛中受伤了。

    could have done 虚拟义,but 分句明确对比现实,表示未实现的可能。

  • Researchers suggest that early humans may have migrated to the region around 10,000 years ago.

    研究者认为早期人类可能在一万年前迁徙到该地区。

    may have done 推测义,学术语境中对历史事件的不确定判断。

HITS · 英语四级

情态动词 + have done 双解的英语四级真题命中例句(命中 59 处,精选 16 句)

每句以高亮标出情态动词 + have done 双解在原句中的位置,附中文翻译、实例解析与出处试卷。

CEFR B2 7 词

The boy should have called an expert.

那个男孩本应该打电话给一位专家。

解析

"should have done" 表示「本应该做某事但实际没做」,是对过去行为的批评或遗憾。

识别要点:看到 should + have + 过去分词,立即判断说话者在评价一个已经过去、无法改变的行为。

翻译技巧:中文常译为「本应该…」「早该…」「应该…(但没有)」,暗含责备或惋惜的语气。

本句 "should have called" 表示男孩过去本该打电话给专家(但实际没打),说话者对此表示批评或遗憾。

可迁移方法:遇到 should/ought to have done,在脑海中补全隐含的转折「但实际上没有」,理解说话者对过去未做之事的态度。

CEFR B2 5 词

But we needn't have worried.

不过,我们本来没必要担心。

解析

"needn't have worried" 由情态动词 "needn't"、完成体 "have" 和过去分词 "worried" 构成,形式上属于“情态动词 + have + 过去分词”。

该结构表示过去没有必要做某事,但实际上做了;本句意为“但我们本来不必担心(可是确实担心了)”。

判断这类结构时,先确认情态词后是否为 "have + 过去分词",再根据情态词判断语义。"needn't have done" 特别表示“过去做了某事,但其实没有必要”。

CEFR B2 8 词

It may have caused the diversification of communities.

这可能导致了社区的多样化。

解析

"may have caused" 的结构是情态动词 "may" + "have" + 过去分词 "caused",属于情态完成体。

情态动词后接 "have + 过去分词",通常用于对过去发生的事情进行推测。"may have caused" 表示“可能已经导致了”,说明说话者认为过去某事有可能产生了某种结果,但并不完全确定。

判断这类结构时,可以先找情态动词,再检查其后是否为 "have + 过去分词"。如果 "have" 后接的是过去分词,而不是名词或其他成分,就可能构成情态完成体。

该结构与现在完成时 "have caused" 不同:情态完成体的核心是前面的情态动词 "may",它增加了对过去事件的不确定推测。

CEFR B2 5 词

It might have got lost.

它可能已经丢失了。

解析

"might have got lost" 是情态动词 might + have + 过去分词(got)的结构,表达对过去事件的推测。

情态动词 might 表示「可能」,与 have done 结合时,表示对过去某个时间点发生事件的不确定推测,语气比 must have done 弱得多。

识别要点:看到 might/may/must/can't 等情态动词后紧跟 have + 过去分词,就要识别出这是在谈论过去,而非现在或将来。

本句的 "might have got lost" 意为「它可能已经丢失了」,推测的是过去某个时间点它丢失的可能性,而非虚拟语气中的「本可能」。

区分推测与虚拟:might have done 既可表推测(可能做了),也可表虚拟(本可能做但未做)。判断依据是语境——若在陈述客观可能性,是推测;若在对比「实际未发生」与「本可发生」,是虚拟。本句是前者。

可迁移方法:遇到情态动词 + have done,先判断说话人是在推测过去(客观陈述可能性)还是表达虚拟(对比现实与假设)。推测类常用 must/may/might/can't,虚拟类常用 should/could/would。

CEFR C1 15 词

I would have thought America made the best jeans because it's a typical American garment.

我本会认为美国制作最好的牛仔裤,因为它是一种典型的美国服装。

解析

"would have done" 是情态完成体的典型虚拟用法,表达与过去事实相反的假设或本应发生却未发生的情况。

本句 "would have thought" 表示说话者原本会这样认为(但实际情况可能并非如此),是一种委婉的、带有假设性的表达,暗示这个想法可能是错误的或需要修正的。

识别方法:看到 "would have + 过去分词" 结构时,判断其是否表达对过去的虚拟假设或与事实相反的推测。本句中说话者并未真正持有这个观点,而是假设性地提出,因此属于虚拟过去用法。

迁移规律:"would have done" 常用于:(1) 表示过去本会做但未做的事;(2) 委婉地表达原本的想法或预期(实际可能不同);(3) 虚拟条件句的主句,表示与过去事实相反的结果。

CEFR B2 8 词

She should have repainted her house much earlier.

她本应该更早地重新粉刷她的房子。

解析

"should have done" 表示过去本应该做但实际未做的事情,带有遗憾、责备或批评的语气。

识别方法:看到 "should/ought to + have + 过去分词" 结构时,判断其是否指向过去某个时间点本该发生却未发生的动作。

本句 "should have repainted" 表示她本应该更早粉刷房子(但实际上没有),体现了对过去行为的批评或遗憾。

时间标志:句中的 "much earlier" 明确指向过去,强化了 "本应更早做" 的虚拟语义。

可迁移方法:遇到此结构时,重点关注说话人对过去未发生之事的态度(遗憾/责备),而非对过去的推测。

CEFR B2 12 词

She could have asked a friend for help with the paint job.

她本可以请一位朋友帮忙做油漆活。

解析

**情态完成体的虚拟用法识别**:当看到 "could have done" 结构时,核心是判断它表达的是「过去的可能性推测」还是「与过去事实相反的虚拟」。

**判断依据**:观察语境中是否有对比或遗憾的暗示。本句 "She could have asked a friend for help with the paint job" 隐含的逻辑是「她本可以请朋友帮忙刷漆,但实际上没有」,表达未实现的可能性或错失的机会,属于虚拟语气。

**与推测的区别**:如果是推测过去,句子会表达「她可能已经请了朋友帮忙」这样的不确定判断,语境中不会有遗憾或对比的意味。

**could/might have done 的特点**:这两个结构在虚拟用法中,强调的是「过去某个时间点存在但未被采取的可能性」,常译为「本可以……但没有」。

**可迁移方法**:遇到 "could/might have done" 时,先看句子是在陈述一个未发生的可能(虚拟),还是在推测一个不确定的过去事实(推测)。前者常伴随遗憾、批评或假设语境,后者则是纯粹的不确定判断。

CEFR B2 12 词

As you said, there must have been some confusion with the order.

正如你所说,关于这个订单一定有一些混淆。

解析

"must have done" 结构表示对过去发生事情的肯定推测,说话人根据现有证据或迹象,判断过去某事几乎确定发生了。

识别要点:情态动词 must 后接 have + 过去分词(been/done/gone 等),构成完成体形式。must 在此不表示"必须"的义务含义,而是"一定、肯定"的强推测含义。

语义迁移:这个结构的核心是"现在对过去的确信推断"。说话人站在现在时间点,回望过去,基于某些线索得出高把握度的结论。例如:"The ground is wet. It must have rained."(地面湿了,过去一定下过雨)。

与其他情态完成体对比:must have done 表示肯定推测(certainty);may/might have done 表示可能性推测(possibility);can't have done 表示否定推测(impossibility)。本句用 must 表明说话人认为"订单出现混乱"这件事在过去确实发生了。

应用方法:当你需要表达"根据现在的情况,我确信过去发生了某事"时,使用 must have done。判断依据通常是:现在观察到的结果 + 逻辑推理 → 过去一定发生了什么。

CEFR C1 6 词

The site should have been protected.

这个地点本应该被保护。

解析

本句触发"情态动词 should + have + 过去分词(been protected)"结构,核心表达虚拟语气中的"本应发生却未发生"。

解析步骤:① 识别情态动词 should;② 确认紧跟 have + 过去分词 been;③ been 后接 protected 构成被动语态的过去分词形式。整体结构完整命中"should have done"。

语义判定:should have done 在虚拟语气中特指"过去本应该做某事但实际未做",带有责备、遗憾或建议的意味。本句"The site should have been protected"表达"这个遗址本应受到保护(但实际没有)",符合虚拟过去的核心语义。

与假阳性区分:若 should 后的 have 作实义动词"拥有"讲(如 "You should have a plan"),则不属本知识点;若 have done 前无情态动词(如 "They have protected the site"),属现在完成时而非情态完成体。本句 should 明确为情态动词,have 后直接接过去分词 been,无歧义。

迁移方法:看到"情态动词 + have + 过去分词"时,先确认情态动词身份(非实义动词),再通过情态动词类型判断语义方向——should/ought to 指向"本应未做"的责备或遗憾;must/can't 指向对过去的推测;could/might/would 指向未实现的可能性。结合上下文语境,判断是表达推测还是虚拟。

CEFR C1 11 词

Back then, you would have been your child's most influential teachers.

那时候,你本会是你孩子最有影响力的老师。

解析

"would have done" 结构表示对过去的虚拟假设,描述与过去事实相反的情况或未实现的可能性。

识别要点:这个结构通常出现在虚拟条件句中,或者通过时间状语(如 "back then", "at that time")暗示过去的时间背景。

本句中 "Back then" 明确指向过去某个时间点,"would have been" 表达的是:在那个过去的时间点,如果情况不同(暗含的条件),你本会是孩子最有影响力的老师——但实际上可能并非如此。

理解关键:"would have done" 承载着「反事实」或「未实现」的语义核心,不是简单的过去推测,而是表达「本可以/本会……但实际没有」的遗憾或假设。

迁移方法:遇到 "would have + 过去分词" 时,首先寻找时间标志词定位过去时间点,然后理解其表达的是与实际相反的假设或未实现的可能性,而非对过去的客观陈述。

CEFR B1 10 词

Anybody in that situation would have done what I did.

任何处于那种情况下的人都会做我所做的事。

解析

"would have done" 属于虚拟语气中的情态完成体结构,用于表达与过去事实相反的假设或推测。

本句通过 "Anybody in that situation" 设定了一个假设的过去情境,"would have done" 表达的是:如果当时任何人处在那个情况下,都会做出同样的行为。这是对过去未发生情况的虚拟推测。

识别要点:看到 "would have + 过去分词" 时,先确认语境是否在讨论过去的假设情况。常见搭配包括条件从句(if引导)或情境描述(如本句的 in that situation)。

可迁移方法:遇到 "would have done" 结构时,问自己两个问题:1) 这是在谈论过去吗?2) 这是在谈论实际发生的事还是假设的事?如果答案是「过去+假设」,那就是虚拟语气的情态完成体。

与 "would do" 的区别:"would do" 表示过去的习惯或将来的推测,而 "would have done" 专指对过去的虚拟假设。

CEFR C1 15 词

As communities diversified, mutual support could have broadened to include individuals not linked by blood.

随着社群日益多元化,互助的范围本可以扩大到没有血缘关系的个人。

解析

"could have + 过去分词"属于情态动词完成体,表示过去本来可能发生、但实际未必发生或没有发生的情况。句中"could have broadened"表示随着社区变得多样化,互助本来可能扩大到包括没有血缘关系的个人。

识别这类结构时,先找情态动词"could",再确认其后是否为"have + 过去分词";这里"broadened"是"broaden"的过去分词,因此构成"could have broadened"。

不要把"could have"一律理解为"能够拥有"。如果"have"后接名词,如"could have a chance","have"是实义动词,不属于情态完成体;只有"have"后接过去分词时,才构成该知识点。

CEFR B2 17 词

The first public exhibit of animals may have been created by Egypt's Queen Hatshepsut around 1480 B.C.

第一批动物公开展览可能是由埃及女王哈特谢普苏特在公元前1480年左右创建的。

解析

情态动词 + have + 过去分词用于表达对过去事件的推测。本句 "may have been created" 表示说话人对历史事实的不确定推测——第一个公共动物展览「可能」是由埃及女王哈特谢普苏特创建的。

识别要点:may 表示可能性推测(约50%把握),have been created 是 create 的被动语态完成体形式。整个结构表达「过去可能发生了某事」,但说话人无法完全确定。

可迁移方法:遇到 may/might/must/can't + have done 时,先判断是否在谈论过去(时间标志如 around 1480 B.C.),再判断语义是推测(可能/必定/不可能发生过)还是虚拟(本应该但未发生)。本句有明确过去时间点且表达历史推测,属于推测过去用法。

与假阳性的区分:若 have 后不是过去分词而是名词,如 "may have animals"(可能拥有动物),则 have 是实义动词,不属于本知识点。本句 have 后跟 been created,确认是完成体结构。

CEFR B2 8 词

It might have been abandoned by its owner.

它可能已经被它的主人遗弃了。

解析

本句 "might have been abandoned" 是情态完成体的被动语态形式,核心结构为 "might + have + been + 过去分词"。

这里 "might have been" 表达对过去事件的推测,意为"可能已经被……"。情态动词 might 表示不太确定的推测,have been abandoned 构成完成体的被动形式。

识别要点:看到 "情态动词 + have + been + 过去分词" 时,首先判断这是情态完成体的被动语态。其中 have 不是实义动词"拥有",而是完成体的助动词;been 是 be 的过去分词,与后面的过去分词 abandoned 构成被动语态。

语义理解:might have been abandoned 表示"可能已经被遗弃了",是对过去某个动作或状态的不确定推测。推测的时间点在过去,而不是现在。

可迁移方法:遇到 "情态动词 + have + been + 过去分词" 结构时,按以下步骤分析:(1) 识别情态动词表达的语气(推测、虚拟等);(2) 判断 have + 过去分词构成完成体,指向过去时间;(3) 识别 been + 过去分词构成被动语态,表示主语是动作的承受者;(4) 综合理解为"对过去被动动作的推测或虚拟"。

类似例句:"The letter might have been lost in the mail"(这封信可能已经在邮寄过程中丢失了)、"He could have been injured in the accident"(他可能在事故中受伤了)。

CEFR B2 8 词

He must have felt self-conscious and insecure, perhaps.

他当时一定感到了不自在和缺乏安全感,或许。

解析

情态动词 + have + 过去分词构成情态完成体,用于表达对过去情况的推测或判断。

"must have done" 表示对过去发生事情的肯定推测,说话人根据现有证据或逻辑判断某事在过去一定发生了。把握两个要点:(1) must 表示推测的确定程度很高,相当于中文的"一定、肯定";(2) have done 将推测的时间锁定在过去。

本句 "must have felt" 表示说话人根据某些迹象推测:他(在过去某个时刻)一定感到局促不安和缺乏自信。perhaps 进一步表明这是一种带有不确定性的推测。

可迁移的识别方法:看到 must/can't/may + have + 过去分词时,先判断 have 是否为实义动词"拥有"——如果后面紧跟过去分词(如 felt, been, done),则构成情态完成体;如果后面是名词(如 a rest, money),则 have 是实义动词,不属于此知识点。

推测过去的其他常见形式:can't have done(不可能做过)表示否定推测,may/might have done(可能做过)表示较低确定性的推测。

CEFR B1 15 词

With £10 to spend, they could have bought a fascinating children's toy called "Dazzle Racer".

有10英镑可花,他们本可以买一个叫做“炫光赛车”的有趣的儿童玩具。

解析

本句中的 "could have bought" 是情态动词 could 加 have done 结构,表达对过去的虚拟假设。

关键识别点:could have done 表示"过去本可以做某事但实际没做"或"过去有能力/机会做某事"。这是与过去事实相反的假设,强调一种未实现的可能性。

本句语境:有 10 英镑可花时,他们本可以买到一个叫 Dazzle Racer 的玩具——言下之意是他们实际上没有买,或者没有把钱花在这上面。这是对过去未实现情况的假设。

辨别要点:could have done 不是对过去的推测(那是 must/can't/may have done 的功能),而是表达"过去的可能性但未发生"这一虚拟含义。

可迁移方法:遇到 could/might have done 时,首先判断是否在描述过去某个实际发生的事件。如果语境暗示"本可以但没有"或"可能但未必",就是虚拟用法;如果是对已发生事件的不确定推测,才考虑其他情态完成体的可能。

与 should/ought to have done 的区别:后者强调"本应该做而未做",带有责任或遗憾的情感色彩;could have done 更中性,仅陈述一种过去存在但未实现的可能性或选择。

HITS · 英语六级

情态动词 + have done 双解的英语六级真题命中例句(命中 80 处,精选 16 句)

每句以高亮标出情态动词 + have done 双解在原句中的位置,附中文翻译、实例解析与出处试卷。

CEFR C1 12 词

It would have halted if company and government had not worked together.

如果公司和政府没有共同合作,它就会停止了。

解析

本句 "would have halted" 是典型的与过去事实相反的虚拟条件句主句形式。

虚拟条件句的识别要点:当句中出现 "would have done" 结构时,它通常表达「过去本该发生但实际未发生」的假设情况。这种结构必然对应一个与过去事实相反的假设条件。

本句完整逻辑:「如果公司和政府当时没有合作(事实是合作了),它就会停滞(事实是没有停滞)」。would have halted 表达的是反事实的结果。

结构拆解:would(情态动词,表虚拟语气)+ have(完成体助动词)+ halted(过去分词)。三者缺一不可,共同构成对过去的虚拟推断。

可迁移方法:遇到 "would have done" 时,立即寻找条件从句(通常是 if 从句,使用 had done 形式)。两者配对出现,共同表达「与过去事实相反的假设」。主句说「本会怎样」,从句说「如果当时怎样」,而现实恰恰相反。

与其他虚拟形式的区分:should/ought to have done 侧重「本应做而未做」的责任或遗憾;could/might have done 侧重「本有可能做」的不确定推测;would have done 则侧重「在某假设条件下必然会发生」的因果关系,最常搭配虚拟条件从句。

CEFR C1 8 词

Think how different we could have made them.

想想我们本可以把它们做得多么不同。

解析

这是一个典型的"情态动词 + have + 过去分词"结构,表示对过去的虚拟假设。

could have done 的核心含义是"本来能够做但实际上没做"或"过去存在的可能性但未实现",表达一种与过去事实相反的假设或遗憾。

本句 "could have made" 表示"本可以使他们变得(不同)",暗示实际上并没有这样做,体现了一种未实现的可能性。

识别方法:看到 could/might + have + 过去分词时,要理解这不是在描述已发生的事实,而是在描述"本来可能但未发生"的情况,往往带有假设、遗憾或反思的语气。

与推测过去(must have done)的区别:could have done 强调"能力上可以但未做",而 must have done 强调"推断过去一定发生了"。

迁移应用:遇到 could/might have done 时,翻译要体现"本可以/本能够"的虚拟语气,而不是"可能已经"的推测语气。

CEFR C1 12 词

We would have lost the valuable knowledge from the lessons we learned.

我们就会失去从我们学到的教训中获得的宝贵知识。

解析

"would have done" 是虚拟语气在过去时态的典型结构,表示与过去事实相反的假设。其核心含义是:如果过去某个条件成立(但实际不成立),就会产生某个结果(但实际未发生)。

识别要点:1) 必须有 "would + have + 过去分词" 的完整结构;2) 通常出现在虚拟条件句的主句中,表示与过去事实相反的结果;3) 隐含的逻辑是 "实际上没有失去"。

本句 "We would have lost the valuable knowledge" 表达的完整逻辑是:在某个过去未发生的假设条件下,我们会失去宝贵的知识——但因为该条件未成立,所以我们实际上没有失去这些知识。这是对过去的反事实推断。

可迁移的识别方法:看到 "would have + 过去分词" 时,立即思考两个问题:1) 这个动作在过去实际发生了吗?(答案通常是没有);2) 什么条件如果成立会导致这个结果?(这个条件在过去实际上不成立)。掌握这个逻辑链,就能准确理解此类虚拟语气的真实含义。

CEFR C1 12 词

It would have been achieved with the complete erasure of gender biases.

它本可以通过完全消除性别偏见来实现。

解析

本句使用 "would have been achieved" 表达与过去事实相反的虚拟假设,属于虚拟语气在过去时态的应用。

"would have done" 结构的核心含义是:如果过去某个条件成立,就会产生某个结果,但实际上条件未成立,结果也未发生。本句隐含的完整逻辑是:如果某些条件满足了(比如采取了某些措施),性别偏见就会被完全消除,但实际上这些条件没有满足,性别偏见也没有被消除。

识别要点:看到 "would have + 过去分词",要立即反应这是在谈论 "本可以但实际没有" 的过去情况。本句还使用了被动语态 "been achieved",表示 "被实现",整体构成 "would have been + 过去分词" 的被动式虚拟结构。

迁移方法:遇到 "would have done" 时,在脑海中补全隐含的条件句 "If... (过去完成时), ... would have done",理解其表达的反事实含义。常见搭配还有 "If I had known..., I would have told you" (如果我当时知道,我就会告诉你了——但实际我不知道,所以没告诉)。

CEFR C1 12 词

It would have been attained with the continuation of the 1980s trend.

它本可以随着20世纪80年代趋势的延续而实现。

解析

这是一个典型的虚拟语气结构,用于表达与过去事实相反的假设。

"would have been attained" 表示「本可以达到/实现(但实际上没有)」,暗示如果 1980 年代的趋势持续下去,这个目标就会实现,但实际情况是趋势没有持续,目标也就没有达成。

这种结构的核心识别标志是:would + have + 过去分词,且句中通常有一个隐含或明示的与过去事实相反的条件。本句中 "with the continuation of the 1980s trend" 即是这个条件——暗示实际上趋势没有持续。

理解此类句子的关键是认清其「反事实」性质:说的是「如果……本会……」,但现实中并未发生。

可迁移的识别方法:看到 would have done,立即寻找句中是否有明示或暗示的过去条件(常以 if 从句、with 介词短语、otherwise 等形式出现),以及判断说话者是否在讨论一个未实现的过去可能性。

CEFR C1 10 词

What would have happened if leave policies hadn't been introduced?

如果休假政策没有被引入,会发生什么事?

解析

本句是一个典型的虚拟条件句,主句使用"would have happened",从句使用过去完成时"hadn't been introduced",共同构成与过去事实相反的假设。

"would have done"是虚拟语气中表达与过去事实相反假设的标准形式。其逻辑是:某事在过去并未发生,现在我们假设如果它发生了会怎样。主句用"would have + 过去分词"表达假设的结果,if从句用过去完成时表达假设的条件。

本句的语义是:休假政策实际上已经被引入了(事实),现在假设如果当时没有引入(与事实相反的假设),会发生什么结果(假设的结果)。

识别要点:1)看到"would have + 过去分词"首先考虑虚拟语气;2)检查上下文或配套的if从句是否使用了过去完成时;3)理解整体表达的是对已发生事实的反向假设。

迁移方法:遇到"would have done"结构时,判断其是否与if从句(明示或暗示)构成虚拟条件关系。若if从句用过去完成时(had done),则整体表达与过去事实相反的假设;若if从句用一般过去时,则表达与现在事实相反的假设(但这不属于本知识点A1)。

CEFR C1 9 词

Trying to recreate their designs would have been futile.

尝试重新创建他们的设计本来会是徒劳的。

解析

"would have done" 是虚拟语气在过去的典型结构,表示与过去事实相反的假设或未实现的可能性。

识别方法:看到 "would have + 过去分词" 时,要理解这是在描述过去某个时间点上「如果当时怎样,就会怎样」的假设场景,但实际并未发生。

本句 "would have been futile" 表示「(如果当时)试图重现他们的设计本会是徒劳的」,隐含的实际情况是:要么没有尝试,要么尝试了但用了其他方式,总之这个假设的尝试并未按这种方式发生。

应用要点:"would have done" 常出现在含蓄虚拟条件句中,条件可能通过不定式短语(如本句的 "Trying to recreate...")、介词短语或上下文暗示,而非显性的 if 从句。

与其他情态完成体对比:"could have done" 强调过去有能力但未做,"should have done" 表示本应做却未做(带责备意味),而 "would have done" 侧重假设结果,常需结合语境理解隐含的条件。

CEFR C1 14 词

Had that trend continued, the gender wage gap would have been closed by 2017.

如果那种趋势继续下去,性别工资差距到2017年就会已经被消除。

解析

"would have done" 是情态完成体的典型结构,用于表达与过去事实相反的虚拟假设或未实现的情况。

本句中 "would have been closed" 表示:如果那个趋势持续下去(但实际上没有持续),性别工资差距本会在2017年被消除(但实际上没有被消除)。这是对过去未发生情况的虚拟推测。

识别要点:"would have + 过去分词" 常出现在虚拟条件句的主句中,与 "Had/If..." 引导的条件从句搭配,表示"本会...但实际并未发生"。

可迁移方法:看到 "would have done" 时,思考两个问题:(1) 实际发生了吗?答案通常是"没有";(2) 什么条件没满足导致它没发生?条件往往在前面的从句中。

CEFR C1 12 词

It would have stalled if those controllable problems had not been addressed.

如果那些可控的问题没有得到解决,它就会停滞不前。

解析

本句包含两个虚拟语气结构,都属于对过去事实相反的假设。主句 "would have stalled" 使用了"would + have + 过去分词"形式,表示与过去事实相反的结果;从句 "had not been addressed" 使用过去完成时表示与过去事实相反的条件。

"would have done" 是虚拟语气中表达"本会发生但实际未发生"的典型结构。理解这一结构需要把握两个要点:第一,它描述的是过去时间点上未发生的情况;第二,它隐含着"因为某种原因,实际上没有发生"的含义。

本句的实际含义是:那些可控问题确实被解决了(had been addressed),所以它没有停滞(didn't stall)。虚拟语气通过反向表达来强调现实:正是因为解决了问题,才避免了停滞。

识别"would have done"结构的方法:找到 would + have + 过去分词的组合,然后判断它是否在表达"本会...但实际没有"的含义。配合 if 引导的虚拟条件句(通常用过去完成时 had done)时,整个句子构成完整的虚拟语气框架。

翻译技巧:将"would have done"译为"本会...

原本会..."或"就会...",体现出与实际情况的反差。本句可译为:如果那些可控问题没有得到解决,它原本会停滞不前。

CEFR C1 19 词

An education makes you a different person from the one you would have been if you hadn't received it.

教育会使你成为一个与你如果没有接受它原本会成为的人不同的人。

解析

"would have been" 是典型的情态完成体结构,由 would + have + 过去分词(been)构成。

本句属于虚拟条件句的主句部分,表达与过去事实相反的假设:如果过去没有接受教育,你会成为另一个人。实际上你接受了教育,所以这个假设的结果并未发生。

would have done 的核心语义是'本会做但实际未做'或'与过去事实相反的结果'。识别方法:

1. 在虚拟条件句中,if从句用过去完成时(had done),主句用 would have done

2. 主句描述的是一个未实现的过去可能性

3. 隐含的逻辑是:因为条件A没有发生,所以结果B也没有发生

可迁移的判断标准:看到 would have done 时,问自己'这个动作实际发生了吗?'如果答案是'没有',就是虚拟过去用法。

CEFR C1 11 词

It would have been the first state to try this initiative.

它本会是第一个尝试这项倡议的州。

解析

"would have done" 结构表达与过去事实相反的虚拟语气,描述在某个过去条件下本会发生但实际未发生的情况。

识别要点:would + have + 过去分词(been/done/tried 等)构成完整结构,整体表达"本会……但实际没有"的含义。

本句 "would have been the first state" 表示在某个未实现的过去条件下,它本会成为第一个州,但实际上并没有成为。这是典型的虚拟过去用法。

与现实对比理解:若用 "It was the first state"(过去式)表示它确实是第一个;而 "would have been" 则明确表示这个"成为第一个"的结果并未发生。

迁移方法:遇到 would have done 时,脑海中补充"本会……但实际没有",帮助准确理解句意的虚拟性质。

CEFR C1 9 词

They would have stripped many students of life's chances.

他们本会剥夺许多学生的人生机会。

解析

"would have done" 是虚拟语气在过去时态的典型结构,表达与过去事实相反的假设或未实现的情况。

识别要点:看到 "would have + 过去分词" 要立即判断这是在谈论过去某个未发生的事情。本句的意思是"(如果当时那样做)他们本会剥夺许多学生的人生机会",但实际上并没有剥夺,这是对过去某种假设情况的推演。

使用场景:常用于 if 条件句的主句部分,即使 if 从句被省略,"would have done" 仍表示"本来会...但实际没有"。

迁移方法:遇到 "would have + 过去分词" 时,问自己两个问题:(1)说的是过去的事吗?(2)这件事实际发生了吗?如果答案是"是"和"没有",那就是虚拟语气,表示与过去事实相反或未实现的可能。

与其他情态完成体的区分:"would have done" 侧重未实现的结果或与事实相反的假设,而 "should have done" 强调本应做却未做(带责备意味),"could have done" 表示过去有能力做但未做,"might have done" 表示过去可能发生但不确定。

CEFR C1 8 词

They would have deducted graduate student loan interest.

他们本会扣除研究生贷款利息。

解析

"would have done" 是虚拟语气的标志性结构,表达与过去事实相反的假设或未实现的可能性。

识别要点:看到 "would have + 过去分词" 时,要立即意识到这是在谈论一个过去没有发生的事情。句子隐含的逻辑是:"本来会......但实际上没有"。

翻译策略:中文需要显化这层虚拟含义,可译为"本会......"、"原本会......"、"本来会......"等,让读者明确这是反事实假设。

本句 "They would have deducted graduate student loan interest" 表达的是:他们原本会扣除研究生贷款利息(但实际上没有扣除)。这种结构常出现在讨论未实现的计划、错失的机会、或与实际情况相反的假设中。

迁移方法:遇到 "would have done" 结构时,三步走:(1)确认是虚拟语气;(2)判断谈论的时间是过去;(3)理解实际情况与假设相反。这个结构经常与条件句搭配(如 if 从句),但也可以单独出现,通过上下文暗示条件。

CEFR C1 9 词

They would have increased the number of tuition waivers.

他们本会增加学费减免的数量。

解析

识别 "would have done" 结构的核心在于理解其表达的虚拟语义:与过去事实相反的假设或未实现的可能性。

本句 "would have increased" 表示在某种假设条件下(通常是与事实相反的条件),本应该增加学费减免名额,但实际上并未增加。这是典型的与过去事实相反的虚拟语气。

"would have done" 的语义特征:(1) 时间指向过去;(2) 表示未实现的动作或状态;(3) 常隐含或明示一个与事实相反的条件。

翻译策略:可译为"本会……"、"原本会……"、"本应该……(但实际没有)"等,强调与实际情况的对比。

迁移方法:遇到 "would have done" 时,需在上下文中寻找隐含或明示的条件,理解该动作为何未发生,从而准确把握句意。

CEFR B2 9 词

They would have added to many students' financial burden.

它们本会增加许多学生的经济负担。

解析

"would have added" 是典型的虚拟语气结构,表示与过去事实相反的假设。这个结构由 would + have + 过去分词构成,核心含义是"本来会……但实际并没有"。

理解这类结构的关键在于把握其反事实性质:说话者在描述一个过去没有发生的情况。在本句中,"They would have added to many students' financial burden" 表示"它们本来会增加许多学生的经济负担(但实际上没有)",隐含的语境可能是某项措施被取消或避免了。

识别方法:看到 would have done 结构时,首先判断是否在讨论过去的情况。如果是,通常表达与过去事实相反的虚拟假设,翻译时可加上"本来会……"或"原本会……"来体现这种反事实含义。

与其他情态完成体的区分:would have done 专注于表达过去未实现的假设性结果,常用于虚拟条件句的主句或隐含虚拟语境中。

CEFR C1 15 词

Had the bell towers' wooden frames burned down, the heavy bells would have crashed down.

如果钟楼的木制框架烧毁了,沉重的钟就会坠落。

解析

"would have done" 是情态完成体的典型形式,由情态动词 would + have + 过去分词构成。

此结构用于虚拟语气主句,表示与过去事实相反的假设结果——即某事本可能发生但实际未发生。

本句完整虚拟结构为:Had...burned down (虚拟条件从句,与过去相反),...would have crashed (虚拟主句,表示相应的过去未发生结果)。

识别要点:看到 "would have + 过去分词" 时,判断其是否处于虚拟语境。若上下文存在与过去事实相反的条件(如倒装虚拟条件句、if 引导的过去虚拟条件等),则该结构表达"本会发生但实际未发生"的结果。

迁移方法:遇到 "would have done" 结构,先找虚拟条件(显性或隐性),再理解主句表达的是"假如那样,就会..."的未实现结果。此结构常与 Had/If...had done 搭配,构成完整的过去虚拟句式。

HITS · 考研英语

情态动词 + have done 双解的考研英语真题命中例句(命中 41 处,精选 16 句)

每句以高亮标出情态动词 + have done 双解在原句中的位置,附中文翻译、实例解析与出处试卷。

CEFR C1 14 词

Zoos should have been closed down as they prioritize money making over animals' wellbeing.

动物园应该已经被关闭,因为它们将赚钱置于动物福利之上。

解析

本句中 "should have been closed down" 是情态完成体的被动语态形式,核心结构是 "should have + been + 过去分词(closed)"。

这个结构表达的是对过去的虚拟假设或遗憾:动物园本应该被关闭(但实际上没有关闭)。说话人认为关闭动物园是过去应该发生但未发生的正确做法。

识别要点:情态动词 should 表示"应该",have been closed 中的 have 不是实义动词"拥有",而是与 been closed 构成完成体的被动式,整体表达"本应被关闭"的虚拟或批评含义。

可迁移方法:遇到 "should/ought to have + been + 过去分词" 时,理解为"本应被...(但实际未...)";遇到 "should/ought to have + 过去分词" 时,理解为"本应...(但实际未...)"。两者都表达对过去未实现情况的遗憾或批评。

CEFR C1 16 词

Teri Byrd: Zoos should have been closed down as they prioritize money making over animals' wellbeing.

泰瑞·伯德:动物园应该被关闭,因为它们把赚钱置于动物福利之上。

解析

本句中的 "should have been closed down" 是"情态动词 should + have + 过去分词(been)"的完成体结构,其中 been 是 be 的过去分词,后接 closed down 构成被动语态的完成形式。

should have done 表示"本应该做某事却没做",带有责备、遗憾或批评的语气,表达的是与过去事实相反的情况或本应采取却未采取的行动。

本句说"动物园本应该被关闭",暗示动物园实际上并未被关闭,说话者认为这是应该发生但没有发生的事,体现了对现状的批评。

识别要点:看到 should/ought to + have + 过去分词,首先判断 have 是否为助动词(后接过去分词),而非实义动词"拥有"。本句 have 后是 been(be 的过去分词),明确为助动词用法。

迁移方法:遇到"情态动词 + have + 过去分词"结构,先识别情态动词类型。should/ought to 侧重"本应",含责备意味;could/might 侧重"本可以",表未实现的可能性;must/can't 侧重对过去的推测。再结合语境判断说话者的态度和言外之意。

CEFR B2 15 词

Failure can also teach us things about ourselves that we would never have learned otherwise.

失败也能教会我们关于我们自己的、否则我们永远不会学到的东西。

解析

**识别情态完成体的核心结构**:"would + have + 过去分词" 是情态完成体的标准形态,表达对过去的虚拟假设。

**理解虚拟语义**:"would have learned" 在此句中表达的是一个与过去事实相反的假设情况——"如果没有失败经历,我们永远不会学到这些关于自己的东西"。这里的 "otherwise"(否则/不然)提供了虚拟假设的条件语境。

**区分 would have done 的两种用法**:(1) 虚拟过去:表示与过去事实相反的假设结果,常出现在含蓄虚拟条件句中;(2) 过去将来完成:表示从过去某时间点看将要完成的动作。本句属于第一种,是含蓄条件句的典型案例。

**含蓄条件的识别**:虚拟条件不一定通过 if 从句表达,可以通过 otherwise、without、but for 等词语暗示。本句 "otherwise" 隐含的完整条件是 "if we had not experienced failure"。

**迁移方法**:遇到 "would have done" 时,先寻找明确的 if 条件从句;若无,则在上下文中寻找 otherwise、without、but for 等含蓄条件标记,理解其暗示的相反假设。

CEFR C1 9 词

The question would have sounded strange not long ago.

这个问题不久前听起来会很奇怪。

解析

"would have done" 是虚拟语气中最常见的结构之一,核心功能是表达「与过去事实相反的假设」或「过去未实现的可能性」。

识别方法:看到 "would have + 过去分词" 立即意识到这是在谈论一个过去的假设情况,实际上并未发生。常见搭配包括条件句(if从句)或上下文暗示的假设前提。

本句 "would have sounded strange" 表示「本来会听起来奇怪」,隐含的意思是:在过去某个时间点,如果有人问这个问题,会显得很奇怪——但现在问就不奇怪了。这里 would have done 对比的是「过去的假设」vs「现在的现实」。

与 "would do" 的区别: "would do" 表示过去的习惯或将来的假设; "would have done" 明确指向已经过去、未能实现的情况。

可迁移方法:遇到 "would have done" 时,问自己两个问题:(1)说话人在谈论什么时间点的假设?(2)这个假设实际发生了吗?答案通常是:谈论过去,且未发生。

CEFR C1 16 词

If circumstances always determined the life and prospects of people, then humanity would never have progressed.

如果环境总是决定人们的生活和前景,那么人类就永远不会进步。

解析

识别情态完成体的核心构成:情态动词 + have + 过去分词。本句中 "would never have progressed" 完整具备该结构,never 作为否定副词插入其中,不影响核心框架。

理解 would have done 在虚拟条件句中的语义:表达与事实相反的假设结果。本句通过 "If circumstances always determined..." 提出假设条件,主句 "would never have progressed" 表达:如果那个假设成立,人类就不会进步(隐含:但实际上人类进步了,所以假设不成立)。

掌握虚拟条件句的逻辑链条:从句用一般过去时表示对现在或一般情况的虚拟假设,主句用 "would + have + 过去分词" 表达相应的虚拟结果。这种结构帮助表达反事实推理:正因为环境不总是决定一切,人类才得以进步。

区分 would have done 的虚拟用法与推测用法:虚拟语气强调反事实(本该如何但实际相反),而推测过去则是对已发生事件的不确定判断。本句属于虚拟用法,通过 if 从句的虚拟条件可明确判断。

CEFR B2 10 词

Since then it may have come down to $50 billion.

从那以后,它可能已经降到了500亿美元。

解析

情态动词 + have + 过去分词构成情态完成体,用于表达对过去情况的推测、判断或假设。

"may have come" 表示对过去事件的不确定推测,译为"可能已经"。come 的过去分词仍是 come(不规则动词变化:come-came-come)。

识别要点:确认 have 后的词是过去分词而非原形或其他形式;确认整体表达的是对过去而非现在或将来的判断。

"may have done" 的推测语气弱于 "must have done"(肯定推测),强于 "might have done"(更不确定的推测)。

应用方法:当需要表达对过去情况的不确定猜测时,使用 may/might/could + have done;当表达肯定推测时用 must have done;当表达否定推测时用 can't/couldn't have done。

CEFR C1 14 词

Only a decade earlier, such an act would have required legislative approval in Virginia.

仅在十年前,这样的法案在弗吉尼亚州本需要获得立法批准。

解析

这是典型的 "would have done" 虚拟过去结构,表达与过去事实相反的假设。

核心识别标志:would + have + 过去分词(required)。

语义理解:句中 "Only a decade earlier"(仅仅十年前)提供了对比的时间点,"would have required" 表示"(如果在那个时候的话)本会需要",暗示现在的情况已经不同——现在不再需要立法批准了。这是对过去某个时间点情况的虚拟描述。

迁移方法:看到 "would have done" 时,寻找两个要素:(1) 明示或暗示的过去时间参照点;(2) 与现实相反或未发生的情况。常见搭配时间标志词:a decade ago, at that time, in those days, back then 等。

与现实的对比:该结构往往暗含"但实际上并非如此"的转折,本句隐含的完整逻辑是"十年前会需要批准,但现在(实际发生时)不需要了"。

CEFR B2 8 词

Wild Bill Donovan would have loved the Internet.

怀尔德·比尔·多诺万本会喜欢互联网。

解析

"would have done" 是虚拟语气在过去时态的典型结构,表达与过去事实相反的假设。本句 "would have loved" 的含义是:如果 Wild Bill Donovan 还活着/处在那个时代,他会喜欢互联网——但事实上他已经不在了,或者他生活的年代没有互联网。

识别要点:1) 结构必须是 "would + have + 过去分词";2) 语义上表达的是一个未实现的过去假设,通常暗含 "但实际上并非如此" 的反事实含义;3) 常见于对已故人物或过去情境的假想评论。

与现在完成时的区别:现在完成时 "have done" 描述已发生的事实(如 "He has loved music since childhood"),而 "would have done" 描述的是未曾发生、与事实相反的假设情况。

可迁移方法:遇到 "would have done" 时,思考两个问题:1) 假设的条件是什么(通常隐含在上下文中)?2) 现实情况是怎样的(通常与假设相反)?这样就能准确理解虚拟语气的真实含义。

CEFR C1 16 词

How many men would have considered the possibility of an apple falling up into the tree?

有多少人会考虑过苹果向上掉进树上的可能性?

解析

本句的 "would have considered" 是典型的虚拟语气结构,表达与过去事实相反的假设。

核心识别点:"would have + 过去分词" 构成虚拟过去式,表示 "本来会做某事(但实际上没做)"。

语义解读:本句问 "有多少人会考虑过苹果向上掉进树里的可能性?",暗含的事实是 "几乎没人会这样想"。这里的 "would have considered" 表达的是一种反事实的假设情况。

与现实的对比:如果用 "How many men considered..." (一般过去时),表示询问实际考虑过的人数;而 "would have considered" 则强调这是一个假设场景,实际上人们不会这样想。

迁移方法:遇到 "would have done" 时,首先判断是否在讨论过去的假设情况。如果句子隐含 "本可以/本会...但实际上没有" 的对比,就是虚拟语气;如果只是单纯描述过去已发生的事实,则不是。

常见搭配:"would have done" 常出现在假设性问句、条件句的主句(if 从句用过去完成时)、或表达遗憾/反事实的陈述中。

CEFR C1 21 词

The NAFSN sites experienced less than a quarter of the number of fires that would have been expected without fire suppression.

NAFSN的地点经历了如果没有火灾抑制本会预期的火灾数量的不到四分之一。

解析

"would have been expected" 是典型的"would have done"结构,属于虚拟语气中与过去事实相反的假设。

这个结构的核心含义是:如果过去某个条件成立(但实际并未成立),就会产生某个结果(但实际也未发生)。

本句中,"without fire suppression" 是一个含蓄条件,相当于 "if there had been no fire suppression"(如果过去没有灭火措施)。在这个虚拟的前提下,火灾数量 "would have been expected"(本来会被预期达到某个数值)。

但现实是有灭火措施,所以实际火灾数量远低于这个虚拟预期,只有不到四分之一。

识别要点:看到 "would have + 过去分词",立即联想"如果过去……就会……"的虚拟假设框架;再寻找句中是否有明示或暗示的过去条件(可能是 if 从句,也可能是 without/but for 等含蓄条件)。

迁移方法:遇到 "would have done" 结构时,问自己两个问题:(1) 过去的假设条件是什么?(2) 这个条件实际发生了吗?答案通常是:条件未发生,结果也未发生。

CEFR C1 12 词

Prehistoric humans may have tamed donkeys to help navigate the expanding Sahara.

史前人类可能已经驯化了驴子,以帮助穿越不断扩张的撒哈拉沙漠。

解析

"may have tamed" 是典型的"情态动词 + have + 过去分词"结构,表达对过去事件的推测。

may have done 的核心含义是"过去可能做了某事",说话人对过去发生的事情不确定,只是根据现有信息进行推测。把握这个语义是理解此结构的关键。

识别方法:看到 may/might/must/can't 等情态动词后紧跟 have + 过去分词,首先判断 have 是否为助动词(构成完成体)还是实义动词(表示"拥有")。本句中 have 后是过去分词 tamed,明确为助动词,构成情态完成体。

翻译时,may have done 通常译为"可能已经做了"或"可能做过"。本句 "may have tamed" 表示"史前人类可能已经驯化了驴",体现对远古事件的不确定推测。

可迁移方法:遇到"情态动词 + have + 过去分词"时,先确认 have 是助动词而非实义动词,再根据情态动词判断是推测过去(may/might/must/can't)还是虚拟过去(should/could/would)。推测类的翻译为"可能/一定/不可能已经做了",虚拟类的翻译为"本应该/本可以/本会做"。

CEFR B2 10 词

Who does the author think should have addressed the problem?

作者认为谁本应该解决这个问题?

解析

"should have addressed" 是典型的「情态动词 + have + 过去分词」结构,其中 should 是情态动词,have 是完成体助动词,addressed 是 address 的过去分词。

此结构表达「虚拟过去」语义:本应该做某事但实际上没做。作者质问「谁本应该解决这个问题」,隐含的意思是该负责的人并未解决。

识别要点:看到 should/ought to + have done 时,立即判断是「本应做而未做」的责备或遗憾语气,而非对过去的推测。

与推测类情态完成体的区别:must have done 表示「肯定做过」的推测,should have done 表示「应该做但没做」的虚拟,语义完全不同。

可迁移方法:遇到情态完成体,先看情态动词——should/ought to 指向「本应」,must/can't/may 指向「推测」,could/might/would 指向「本可能但未发生」。

CEFR C1 14 词

Jealousy and anger, for example, may have evolved to alert us to important inequalities.

例如,嫉妒和愤怒可能已经进化来提醒我们注意重要的不平等。

解析

情态动词 + have done 结构用于表达对过去的推测或虚拟。本句中 "may have evolved" 属于推测过去,表示嫉妒和愤怒这两种情绪可能在进化过程中发展出来了。may 表示不太确定的推测,相当于中文的"也许"、"可能"。

识别要点:看到 may/might/must/can't 等情态动词后紧跟 have + 过去分词,首先判断 have 是否为助动词。如果 have 后面是过去分词(如 evolved),则为情态完成体;如果 have 后面是名词(如 have a rest),则 have 是实义动词"拥有",不属于此结构。

本句用 may have evolved 而非 may evolve,体现了时间差:说话时点在现在,but 谈论的演化过程发生在过去。如果改为 may evolve,则表示对现在或将来的推测,意思就变了。

CEFR C1 21 词

The crash of EgyptAir Flight 804, which terrorists may have downed over the Mediterranean Sea, provides another tragic reminder of why.

埃及航空804航班的坠毁——恐怖分子可能将其击落于地中海之上——提供了另一个悲剧性的提醒,说明了为什么。

解析

"may have downed" 是典型的"情态动词 + have + 过去分词"结构,表示对过去事件的推测。

may have done 表达的是对过去某个动作或事件的不确定推测,语气比 must have done 更弱,译为"可能已经..."或"也许..."。

这里 may have downed 表示"恐怖分子可能已经击落了飞机

说话者对这一过去事件的真实性并不完全确定

只是一种可能性推测。

类似用法还有 might have done(可能性更低)、could have done(本有能力做但不确定是否做了)、must have done(必定已经,推测语气最强)、can't have done(不可能已经)。

识别要点:情态动词 + have + 过去分词,语义指向过去,表达推测、虚拟或未实现。注意区分 have 是否为实义动词"拥有"。

CEFR C1 20 词

It turns out that the peculiar way of conducting the experiments may have led to misleading interpretations of what happened.

事实证明,进行实验的特殊方式可能导致了对所发生事情的误导性解释。

解析

情态动词 + have + 过去分词构成情态完成体,用于对过去情况进行推测或假设。

"may have led" 中,may 表示可能性推测,have led 是 lead 的完成体形式,整体表示对过去事件的不确定推测——"可能已经导致了"。

识别要点:确认 have 后接的是过去分词而非其他形式,且 have 不能理解为实义动词"拥有"。本句中 led 是 lead 的过去分词,have 与 may 配合构成推测语气,不是"拥有"的意思。

可迁移方法:遇到"情态动词 + have + 过去分词"结构,先判断 have 的性质——若后接过去分词且语义上表达对过去的推测或假设,即为情态完成体;若 have 后接名词或其他成分,则可能是实义动词。

CEFR C1 14 词

If he had played last season, however, he would have been one of 42.

然而,如果他上个赛季参加了比赛,他就会是42人中的一个。

解析

这是与过去事实相反的虚拟语气主句,结构为"would + have + 过去分词"。

识别要点:当看到"if + 主语 + had + 过去分词"的条件从句时,主句通常使用"would/could/might + have + 过去分词"表达"如果当时……就会……"的假设。

本句中"If he had played last season"表示他上赛季实际上没有打球,主句"he would have been one of 42"表达的是与事实相反的结果:如果他打了,他就会是42人中的一员(但实际上他不是)。

核心规律:虚拟条件句的"时间倒退"原则——谈论过去的假设时,条件从句用过去完成时(had done),主句用"would/could/might + have done"。

实战应用:遇到此结构时,要理解说话人在描述一个未曾发生的过去情景及其可能产生的结果,这与现实情况相反。

OVERVIEW · 收录数据

情态动词 + have done 双解收录数据

真题命中
180 处
三考试真题句合计
精选例句
48 句
按考试分节展示
出处试卷
27 套
精选例句所在真题卷
教学例句
6 句
讲解区自带,非真题句

情态动词 + have done 双解的知识点画像

3 个维度各 1–10 分,说明这个标志为什么值得单独记,以及记它的收益在哪。

易错倾向 8 / 10
同一形式承载推测与虚拟两套语义系统,且虚拟义需通过单焦点prompt(if从句/wish/would rather等)触发,缺失触发时中文母语者习惯性按推测义理解,导致系统性误读;should/would/could三词的虚拟义更易被当作推测义。
泛化价值 7 / 10
覆盖六个核心情态动词的完成体用法,推测义迁移至所有need/may等扩展情态词,虚拟义迁移至全部条件句/含蓄虚拟场景;真题长难句中情态完成体高频出现且常嵌套其他结构。
写作价值 6 / 10
虚拟义的could/would/might have done可替换「如果…就会…」的平庸表达,提升假设论证的语言档次;但推测义在写作中使用场景有限,且易与虚拟义混淆导致表意模糊,需谨慎使用。

情态动词 + have done 双解属于懒笔记英语知识点库的句法句型类、虚拟语气固定触发子类,讲解正文含 7 个小节与 6 句教学例句。该知识点在真题句子库中共命中 180 处(英语四级 59 处、英语六级 80 处、考研英语 41 处),本页按考试分节精选 48 句真题例句(英语四级 16 句、英语六级 16 句、考研英语 16 句),出自 27 套真题卷,句长 5–21 词(平均 12 词),CEFR 等级构成为 C1 31 句、B2 15 句、B1 2 句。同为虚拟语气固定触发子类的另有 10 个知识点条目。

FAQ · 情态动词 + have done 双解

常见问题

关于「情态动词 + have done 双解」的含义、真题出现频次与易错点,最常被问到的问题。

情态动词 + have done 双解(情态完成体 + have done)是什么?
情态动词 + have done 结构在中国考生中是高频误读点,因为同一外壳承载两套截然不同的语义系统。第一套是推测过去(epistemic past):说话人站在现在时点,对过去某个已完成事件的真实性作出判断,核心是「我认为那时 X 发生了/没发生」。第二套是虚拟过去(counterfactual past):说话人对比现实与某个未实现的过去可能性,核心是「X 本可以发生但没有」或「X 本该发生但没有」。 推测过去义包含三个把握度梯队:must have done 表示基于证据的强推测(肯定做了,近乎确信),can't/couldn't have done 表示强否定推测(不可能做了),may/might/could have done 表示弱推测(可能做了,不确定)。这些用法都是对过去事实的认识论判断,事件本身已经发生或未发生,说话人只是不掌握全部信息。
情态动词 + have done 双解在英语真题中出现过多少次?
按懒笔记真题句子库统计,情态动词 + have done 双解(虚拟语气固定触发类知识点)共命中 180 处:英语四级 59 处、英语六级 80 处、考研英语 41 处。懒笔记按考试分节整理了精选命中例句,每句高亮标志在原句中的位置。
情态动词 + have done 双解最容易错在哪里?
最大陷阱:混淆推测与虚拟,导致对句子时间逻辑的误判。典型错误是把 could have done 一律当「本可以做」(虚拟),忽略其在推测语境中表示「可能做了」,如 He could have left early(他可能早走了)vs. He could have left early, but he didn't(他本可以早走但没走)。前者推测,后者虚拟,but 分句是关键线索。 must have done 只有推测义,没有虚拟义。考生常误以为 must have done 可表示「必须做了」(义务),实际上表达过去义务已完成要用 had to do,而 must have done 只能表示「肯定做了」(推测)。
情态动词 + have done 双解在四六级和考研里怎么考?
阅读理解中常考虚拟义辨识:给出含 should/could have done 的句子,问「作者暗示了什么」或「可以推断出什么」,正确选项需识别出「实际未发生」这一隐含信息。错误选项常设置为「已经发生」,诱导未识别虚拟的考生。 完形填空中常考情态动词选择:给出「... have done」挖空情态动词,需根据上下文判断是推测还是虚拟。若前文有证据描述或不确定语气,选 must/may/might;若前文有对比或遗憾语气,选 should/could。
情态动词 + have done 双解的真题例句有多长、难度是什么水平?
懒笔记为情态动词 + have done 双解精选的 48 句真题例句(英语四级 16 句、英语六级 16 句、考研英语 16 句)出自 27 套真题卷,句长 5–21 词,平均 12 词;CEFR 等级构成为 C1 31 句、B2 15 句、B1 2 句。
情态动词 + have done 双解的真题例句是怎么挑的?
从情态动词 + have done 双解在真题句子中的 180 处命中里,按考试分节各挑一批:优先选取句子完整、解析完备、该标志在句中作用清晰的句子,三个考试共选出 48 句。每句都以高亮标出该知识点在原句中的位置,并附中文翻译、逐句实例解析与出处试卷。

本页数据最后更新: