篇章导语:
▶ 本篇章针对have done【现在完成时主动语态】、
▶ have been doing【现在完成进行时】、
▶ have been done【现在完成时被动语态】
三大易混淆结构,进行综合对比辨析与专项练习。通过考点对比、例句解析、正误对照、专项训练,
帮助大家区分三者用法,规避时态语态常见误区,巩固语法知识点。
了解更多相关语法知识请点击链接英语语法体系25篇目录
一、三大结构核心用法对比
助动词have/has统一用法规则
▶ have:用于主语为第一人称【I / we】、第二人称【you】、复数主语的情况。
▶ has:用于主语为第三人称单数【he/she/it、单个的人或事物】的情况,简称三单用法。
1. have done 现在完成时(主动语态)
基本结构:have / has + 动词过去分词。
核心含义:动作发生在过去,目前已经结束,重点突出动作所带来的结果,以及对当下造成的影响。
常用时间标志:already、yet、just、ever、never、for+时间段、since+时间点。
2. have been doing 现在完成进行时
基本结构:have / has + been + 动词现在分词。
核心含义:动作从过去某一时刻开始,持续或者反复发生直至现在,现阶段动作仍在进行,
侧重强调动作不间断的持续过程。
常用时间标志:for+时间段、since+时间点、all day、recently、lately。
3. have been done 现在完成时(被动语态)
基本结构:have / has + been + 动词过去分词。
核心含义:句子主语是动作的承受者,动作在过去完成,或是状态从过去延续到现在,侧重体现被动关系与现存状态。
常用时间标志:already、yet、just、for+时间段、since+时间点。
了解更多相关语法知识请点击链接十六种时态用法详解目录
二、分场景综合辨析与例句解析
场景1:主动语态 have done 与 have been doing 辨析
核心区别:
▶ have done 侧重动作已经结束,强调最终结果;
▶ have been doing 侧重动作尚未结束,强调持续的过程。
✅ I have read this book.
【我已经读完这本书了。】
用法解析:读书的动作已经全部完成,当下结果是知晓书的内容,符合have done完成型语义;主语I,使用have.
✅ I have been reading this book for 3 days.
【这本书我已经读了3天了。】
用法解析:读书的动作从3天前开始,持续到现在,此刻仍在读,符合have been doing持续型语义;主语I,使用have.
❌ I have been reading this book.
解析:本句无持续时间标志,无法体现“仍在进行”的含义,若表达“读完了”,应使用have done结构。
❌ I read this book for 3 days.
解析:一般过去时仅表示过去的动作,无法体现“持续到现在”的含义,不符合现在完成时用法。
✅ She has worked here for 5 years.
【她在这里工作过5年。】
用法解析:她曾在这里工作5年,现在已经离职,动作已结束,符合have done完成型语义;
主语she,第三人称单数,简称三单,使用has.
✅ She has been working here for 5 years.
【她在这里已经工作5年了。】
用法解析:她从5年前开始在这里工作,现在仍在职,符合have been doing持续型语义;
主语she,第三人称单数,简称三单,使用has.
❌ She worked here for 5 years.
解析:一般过去时仅陈述过去的经历,无法体现和现在的关联,不符合现在完成时用法。
反复发生场景辨析:▼
✅ He has called you many times.
【他给你打过很多次电话。】
用法解析:多次打电话的动作已结束,强调“打过多次”的结果,符合have done用法;
主语he,第三人称单数,简称三单,使用has.
✅ He has been calling you all day.
【他一整天都在给你打电话。】
用法解析:打电话的动作从早上开始,反复发生到现在,此刻可能还在打,符合have been doing反复发生型语义;
主语he,第三人称单数,简称三单,使用has.
❌ He called you all day.
解析:一般过去时仅表示过去的动作,无法体现“持续到现在、仍有趋势”的含义,不符合用法要求。
场景2:主动语态与被动语态 have done 与 have been done 辨析
核心区别:
▶ have done 为主动语态,句子主语是动作的发出者;
▶ have been done 为被动语态,句子主语是动作的承受者。
✅ I have finished the homework.
【我已经做完作业了。】
用法解析:“我”是“完成”动作的发出者,主动语态,符合have done用法;主语I,使用have.
✅ The homework has been finished.
【作业已经做完了。】
用法解析:“作业”是“完成”动作的承受者,被动语态,符合have been done用法;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ The homework has finished.
解析:作业无法自主发出“完成”的动作,语态错误,必须使用被动语态have been done结构。
❌ I have been finished the homework.
解析:本句为主动语态,误用被动结构,句式错误。
✅ We have completed the project.
【我们已经完成了这个项目。】
用法解析:“我们”是“完成”动作的发出者,主动语态,符合have done用法;主语we,复数,使用have.
✅ The project has been completed.
【这个项目已经被完成了。】
用法解析:“项目”是“完成”动作的承受者,被动语态,符合have been done用法;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ The project completed.
解析:一般过去时主动语态,既无被动含义,也无法体现对现在的影响,不符合用法要求。
场景3:三大结构混合辨析
✅ I have written 3 articles this week.
【这周我已经写了3篇文章。】
用法解析:“我”是“写”的发出者,3篇文章已写完,强调完成结果,用have done;主语I,使用have.
✅ I have been writing this article for 2 hours.
【这篇文章我已经写了2个小时了。】
用法解析:“我”是“写”的发出者,动作从2小时前开始,现在仍在写,用have been doing;主语I,使用have.
✅ This article has been written.
【这篇文章已经写完了。】
用法解析:“文章”是“写”的承受者,被动语态,动作已完成,用have been done;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ I have been written 3 articles this week.
解析:本句为主动语态,误用被动结构,句式错误。
❌ This article has been writing for 2 hours.
解析:文章无法自主发出“写”的动作,语态错误,同时无法体现被动含义。
❌ This article wrote.
解析:一般过去时主动语态,语态、时态均错误。
✅ They have built 5 houses here.
【他们在这里已经建了5栋房子。】
用法解析:“他们”是“建造”的发出者,5栋房子已建成,强调结果,用have done;主语they,复数,使用have.
✅ They have been building this house for 6 months.
【这栋房子他们已经建了6个月了。】
用法解析:“他们”是“建造”的发出者,动作从6个月前开始,现在仍在建,用have been doing;
主语they,复数使用have.
✅ This house has been built.
【这栋房子已经建成了。】
用法解析:“房子”是“建造”的承受者,被动语态,动作已完成,用have been done;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ This house has been building for 6 months.
解析:房子无法自主发出“建造”的动作,语态错误。
❌ They built this house for 6 months.
解析:一般过去时仅表示过去的动作,无法体现“持续到现在”的含义,不符合用法要求。
了解更多相关语法知识请点击第三人称单数【三单】14篇目录
三、专项正误对照强化训练
训练1:时态与语态判断
1. ✅ He has learned English for 10 years.
【他已经学了10年英语。】
用法解析:主动语态,强调学英语的经历已积累10年,符合have done用法;
主语he,第三人称单数,简称三单,使用has.
❌ He has been learning English for 10 years.
解析:若表达“仍在学”可用此句,若表达“学过10年”(现在不学了),则用have done更准确,需结合语境区分。
❌ He learned English for 10 years.
解析:一般过去时无法体现和现在的关联,不符合现在完成时用法。
2. ✅ He has been learning English for 2 hours.
【他已经学了2个小时英语了。】
用法解析:主动语态,动作从2小时前开始,现在仍在学,符合have been doing用法;
主语he,第三人称单数,简称三单,使用has.
❌ He learned English for 2 hours.
解析:一般过去时仅表示过去的动作,无法体现“持续到现在”的含义。
3. ✅ English has been learned by him for 10 years.
【英语已经被他学了10年了。】
用法解析:被动语态,英语是“学”的承受者,符合have been done用法;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ English has learned for 10 years.
解析:英语无法自主发出“学”的动作,语态错误。
训练2:动词形式与结构判断
1. ✅ I have been doing my homework.
【我一直在做作业。】
用法解析:have been doing结构,动词用现在分词doing,符合现在完成进行时规则;主语I,使用have.
❌ I have been do my homework.
解析:been后必须接现在分词,用原形do属于结构错误。
❌ I have doing my homework.
解析:结构缺少been,属于现在完成进行时的典型错误。
2. ✅ The homework has been done.
【作业已经被做完了。】
用法解析:have been done结构,been后接过去分词done,符合现在完成时被动语态规则;
主语为单数事物,第三人称单数,简称三单,使用has.
❌ The homework has been do.
解析:been后必须接过去分词,用原形do属于结构错误。
❌ The homework has done.
解析:结构缺少been,同时语态错误。
3. ✅ I have done my homework.
【我已经做完作业了。】
用法解析:have done结构,have后接过去分词done,符合现在完成时主动语态规则;主语I,使用have.
❌ I have do my homework.
解析:have后必须接过去分词,用原形do属于结构错误。
四、时间标志词专项区分
▶ for + 时间段、since + 时间点/过去动作,这两类时间短语可以搭配三大结构使用。
▶ all day、recently、lately 这类词汇,主要搭配 have been doing 使用。
▶ already、yet、just、ever、never 这类词汇,可搭配 have done 与 have been done 使用。
▶ yesterday、last week、just now 等明确的过去时间状语,三大结构均不可以搭配使用。
✅ I have lived here since 2020.
【我从2020年起就住在这里。】 →(have done)
✅ I have been living here since 2020.
【我从2020年起就一直住在这里。】 →(have been doing)
✅ This house has been lived in since 2020.
【这栋房子从2020年起就一直有人住。】 →(have been done)
❌ I lived here since 2020.
解析:since引导的延续性时间状语,不能搭配一般过去时。
✅ She has been crying all day.
【她一整天都在哭。】 →(have been doing)
❌ She has cried all day.
解析:all day强调持续过程,用have been doing更贴合语境。
❌ She has been cried all day.
解析:语态错误,哭是主动动作,不能用被动语态。
了解更多相关语法知识请点击链接主动与被动语态25篇用法详解目录
知识要点总结:
1. 三大结构核心公式
▶ have done:have / has + 动词过去分词。
▶ have been doing:have / has + been + 动词现在分词。
▶ have been done:have / has + been + 动词过去分词。
2. 助动词用法
▶ 第一人称、第二人称、复数主语用have;
▶ 第三人称单数主语用has。
3. 语态区分
▶ have done和have been doing为主动语态,主语是动作发出者;
▶ have been done为被动语态,主语是动作承受者。
4. 语义区分
▶ have done 强调动作完成的结果;
▶ have been doing 强调动作持续、反复的过程;
▶ have been done 强调被动关系与现存状态。
5. 时间状语区分: ▼
严格区分可搭配的时间标志词,三类结构都不可搭配纯粹表示过去的时间状语。
6. 动词变形区分: ▼
熟记规则动词与不规则动词的不同变形形式,避免拼写和结构错误。
下一篇:现在完成时三大结构易混专项纠错
请点击返回首页现在完成时三大核心解析目录
