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

现在完成时用于过去发生的动作或状态与现在的联系,包括对现在的影响、造成的结果以及动作的持续等。现在完成时的形式是由“have/has + 过去分词”构成。

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

现在完成时

1.2 现在完成时的肯定句
句型:主语(第三人称单数以外的人称) + have
主语(第三人称单数)+ has +
现在完成时的肯定句由助动词have/has加过去分词构成:

He's gone shopping.他去买东西了。
I've never been to Paris.我从未到过巴黎。

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

I haven't seen him for a long time.我已经很久没见到他了。
The road hasn't been cleaned since it snowed.自下过雪以后这条路一直没有清扫过。

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

Have you done it? —Yes,I have./No,I haven't.你做这件事了吗? ——是的,我做完了。/不,我没有。
Have you ever been to India? —Yes,I have./No,I haven't.你去过印度吗? ——是的,我去过。/不,我没去过。
Have you met your new neighbors? —Not so far.你见过你的新邻居没有? ——至今还没有。

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

Where have you been all this while? 这一阵子你在哪里?
What book shave you read on this subject? 你读过哪些关于这方面的书?
What have you been busy with recently? 最近你在忙什么?


1.6 现在完成时的用法
1.表示结束、结果

现在完成时表示一个过去发生并结束的动作对现在产生的影响。这一类情况可以细分为下述两种情况:
表示开始于过去的动作刚刚结束。常和already(已经),just(刚刚),now(现在),yet(迄今、还),not...yet(还没有)等连用:I've already read that book.我已经读过那本书。

You're too late;the train has just left.你来得太完了,火车刚开走。
表示过去动作的结果,现在仍残留着;一般不用时间状语:
It has just snowed.刚刚下过雪。(地上有积雪)
I have lost my watch.我把手表丢了。(现在仍未找到)
The concert has started. We have to look for our seats in the dark.音乐会已经开始了,我们得在黑暗中找座位。
The president's sudden death has left the country leaderless.总统突然去世,使该国处于无领袖状态。
2.表示继续
表示过去已经开始,持续到现在,仍要继续下去的动作或状态。往往和表示一段时间包括现在时间在内的状语连用,如today(今天),this week/month(本周/月),lately(最近),recently(最近),these days(这些日子),in the past few years(在过去的几年里),since(从……以来),since yesterday(从昨天以来),for a long time(很长时间),for a month/several years(一个月/几年),so far(迄今为止),up to now(直到现在),till/until now(直到现在)等:
He's known me for over twenty years.他和我相识已20多年了。
Has he studied French very long? 他学习法语很久了吗?
How long have you studied English? 你学英语多久了? (现在仍在学)
Up to now/Until now we've had no problems.直到现在为止,我们没有碰到任何问题。
3.表示经历和经验
表示从过去到现在之间经历过的事情。常和often(常常),never(从来没有),ever(曾经),once(一次),twice(两次),three times(三次),before(在……之前),since(自……以来)等连用:
Haven't I seen you before? 我以前见过你吧?
He has known both grief and happiness.悲伤和欢乐的滋味他都尝过。
We have not been to the cinema recently.我们最近没有去过电影院。
I have not seen that film yet.我还没有看过那部电影。
Her husband died ten years ago,but she has since remarried.她丈夫10年前去世,她后来又嫁人了。
I've read the novel twice.这部小说我看了两遍。
I've never been so annoyed in all my life!(=I was extremely annoyed)我这一生从没有这样恼火过!

4.用于状语从句
在时间或条件状语从句中,通常用现在完成时代替将来完成时,表示将来某一时刻前业已完成的动作:
Tell me what you think of the book when you've read it.你看完这本书后,告诉我你的想法。
We'll start at2 o'clock pm if it has stopped raining by then.我们将于下午2点开始,如果那时雨停了的话。

1.7 关于现在完成时用法的补充说明
1.关于短暂动作动词的用法

终止性动词(亦称点动词)如come(来),go(去),leave(离开),buy(买),borrow(借),join(参加),die(去世),marry(结婚),lose(失去),begin(开始),stop(停止),get up(起床)等表示的动作有一个终点,到了终点就不再延续。也就是说,此类动词只表示短暂的动作,因此不能与表示延续的时间状语连用:
不可以说:I've left New York for three days.
可以说:I've been away from New York for three days.(这时需要 使用be动词来表示延续的状态)
可以说:I left New York three days ago.我是3天前离开纽约的。
如果现在完成时的谓语动词是持续较短的动态动词(点动词),通常用否定结构;在这种情况下可以和表示一段时间的短语连用。因为点动词的这种否定结构构成一种状态,而这一状态是可以持续的:
They haven't written to me for3years.他们有3年没有给我写信了。
She hasn't left home for several days.她已有几天没有出门了。(表示“足不出户”这一状态)
They haven't visited us since2000.自2000年以来他们就没有拜访过我们。
表示短暂动作的动词用于完成时,通常表示目前的结果:
She's recovered from her illness.她已经痊愈。(含义是:目前状况良好)
I must go back;I've left(=forgotten to bring)my car keys(be-hind).我必须回去,我忘了带汽车钥匙。(含义是:我现在开不了汽车门。)
English has borrowed words from many languages.英语借用了很多其他语言的词汇。(含义是:仍会借用其他语言的词汇。)

现在完成时