了解更多托福:插入语短语词汇目录

知识导引

本篇章针对have done【现在完成时主动语态】、

have been doing【现在完成进行时】、

have been done【现在完成时被动语态】

三大易混淆结构,进行综合对比辨析与专项练习。

通过考点对比、例句解析、正误对照、专项训练,

帮助大家区分三者用法,规避时态语态常见误区,巩固语法知识点。

了解更多现在完成时核心解析目录

一、三大结构核心用法对比

助动词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 + 动词过去分词

语态:主动语态

含义:主语自己完成动作,侧重动作已做完、对现在有影响

拆解:无be动词,直接搭配实义动词过去分词

例句:I have cleaned the room.

我打扫完房间了。

2. have been doing

完整结构:have/has + been + 动词现在分词(doing)

语态:主动语态

含义:动作从过去持续到现在,还在进行或反复发生

拆解:be动词变形为been,后面搭配doing,表持续、主动

例句:He has been cleaning the room all afternoon.

他一下午都在打扫房间。

3. have been done

完整结构:have/has + been + 动词过去分词

语态:被动语态

含义:主语是动作的承受者,某物“被……”,且动作已完成

拆解:be动词变形为been,搭配实义动词过去分词,been是被动标志

例句:The room has been cleaned. 房间已经被打扫干净了。

下一篇:现在完成时三大结构易混纠错

请点击返回首页现在完成时三大核心解析目录

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注