沪江英语 > 英语时态 > 现在完成进行时

现在完成进行时表示过去发生的动作或状况一直持续到现在,这个动作可能仍在继续进行或刚刚结束。现在完成进行时由“have/has + been + 现在分词”构成。

1.1 现在完成进行时的构成
肯定句:主语 + have/has + been + 现在分词...
否定句:主语 + have/has + not + been + 现在分词...
疑问句:Have/Has + 主语 + been + 现在分词...?
疑问代词/疑问副词 + have/has + 主语 + been + 现在分词...?

现在完成进行时

1.2 现在完成进行时的肯定句
句型:主语 + have/has + been + 现在分词...
现在完成进行时的肯定句由“助动词have/has + been(been是be动词的过去分词)+ 现在分词”构成:

I've been trying to find out her telephone number.我一直在查问她的电话号码。
They have been widening the road.他们在拓宽这条路。
She is very tired. She's been typing letters all day.她很累了。她整天都在录入信件。

1.3 现在完成进行时的否定句
句型:主语 + have/has + not + been + 现在分词...
现在完成进行时的否定句是在助动词have/has后加not,之后是“be动词的过去分词been + 现在分词”:

I've not been feeling very well for the past few days.这几天以来,我一直感到不太舒服。
It hasn't been working properly for three weeks.它已有3个星期运作不正常了。

1.4 现在完成进行时的一般疑问句
句型: Have/Has + 主语 + been + 现在分词...?
回答方式:Yes,主语 + have/has(been + 现在分词...).
No,主语 + have/has + not(been + 现在分词...).
现在完成进行时的一般疑问句是将助动词have/has置于主语之前(大写have/has的第一个字母),在句尾加问号;这种语序是倒装语序:

Have you been writing books for long? 你写书已经很长时间了吗?
Have you been working all morning? —Yes,we've been working4hours without a break.你们一上午都在工作吗? ——是,我们连续工作了4个小时没有休息。

1.5 现在完成进行时的特殊疑问句
句型:疑问代词/疑问副词 + have/has + 主语 + been + 现在分词...?
现在完成进行时的特殊疑问句是将疑问代词/疑问副词置于助动词have/has之前(have/has的第一个字母无需大写),和一般疑问句差不多;这种语序是倒装语序。就主语提问时,将疑问代词或带有疑问限定词的名词词组置于助动词have/has之前,在句尾加问号;这种语序是陈述句语序:

You look dirty. What have you been doing? —I've been cleaning the garage.你看上去很脏,干什么了? ——我一直在清扫车库。
You've taken your time! What on earth have you been doing? 你可真够慢的!你到底一直在干什么?


1.6 现在完成进行时的用法
1.表示过去发生并持续到现在的动作

现在完成进行时表示现在以前这一段时间里一直在进行的一个动作,这个动作可能仍在进行,也可能停止了一会儿:
How long have you been learning English? 你学习英语多久了?
How long has it been snowing? 雪下多久了? (还在下雪)
How long have you been studying here? —I've been studying here for five years.你在这里学习多久了? ——我在这里学习了5年了。(未间断过)
2.表示现在经常重复的动作
Jack has been phoning Jane every night for the last week.上星期杰克天天晚上给简打电话。
We've been seeing quite a lot of each other recently.最近我们常常见面。
3.用于得出结论
现在完成进行时可以表示根据直接或间接的证据而得出结论:
His eyes are red. He has been working too hard recently.他眼睛红了,准是最近工作太紧张了。

1.7 现在完成进行时与现在完成时的区别
现在完成进行时强调动作在某一时刻内一直在进行,而且动作现在有结果。到目前为止,该动作可能已不再继续进行,也可能还在继续进行,这要根据上下文来确定。句子中常含有“all + 表示时间的词语”,如all day(一整天),all morning(一上午),for(有……多久)和since(自……以来)。现在完成进行时通常表示尚未完成的动作;现在完成时则表示已完成的动作。有些动词如learn(学习),lie(躺),live(居住),rain(下雨),sleep(睡),study(学习),wait(等候),work(工作)等本身就有持续性,其现在完成进行时形式和现在完成时形式可以互换,惟一的区别是前者更强调动作的持续性:
Where have you been? What have you been doing? 你到哪里去了? 干什么去了?
I've been doing my homework.我一直在做作业。(还在做)
I've finished my homework.我已做完作业了。(已完成)
We've been talking to him all morning.我们今天一上午都在同他谈话。(可能还没谈完)
We've talked to him this morning.我们今天上午同他谈过话。 (已谈完)
现代英语,特别是口语,对于像lie(躺),sit(坐),stay(暂住),wait(等候)等动词,用现在完成进行时比用现在完成时更合习惯:
He has been sitting there studying all evening.他整个晚上都坐在那儿学习。
I've been waiting for you since morning.我从上午一直在等你。
We've been staying in a hotel since we came here.自从到这里以后,我们一直住在旅馆。

现在完成进行时