现在完成时用法小结
现在完成时用来表示之前已发生或完成的动作或状态,其结果的确和现在有联系。动作或状态发生在过去 但它的影响现在还存在;也可表示持续到现在的动作或 状态。其构成: have (has) +过去分词。不少同学对现在完成时的用法感到困惑,下面我们来对现在完成时的用法以及现在完成时与一般过去时的区别做一个详细分析。现在完成时常与不确定的过去时间状语,如:just, yet, before, recently, once, lately等;也可以同表示濒度的时间状语连用,如often, ever, never, sometimes, twice, on several occasions等;也同包括现在时间在内的时间状语连用,如now, today, this morning, this year, this month等,但不能同特定的时间状语连用(in 1993, last year等)。
(一)表示过去发生或完成的某一动作对现在造成的影响或结果。
如: Have you read that story?
你读过那个故事吗?
(“读”这一动作发生在过去,对现在造成的影响是:是否知道故事的内容。)
I have bought two apples.
我买了两个苹果。
(“买”这一动作发生在过去,对现在造成的结果是:拥有两个苹果。)
在学习这一概念的同时,还应注意常与现在完成时连用的几个副词:already,just,ever,yet,never等。already,just多用于肯定句中,ever,yet,never多用于疑问句和否定句中。
如: I have already finished my homework.我已经做完家庭作业了。 He has just had his meal.他刚吃过饭。 Have you ever sung this English song?你曾唱过这首英文歌吗? They haven't started yet.他们还没有动身。 We have never heard of it.我们从来没有听说过这件事。
(二)表示过去已经开始,一直持续到现在的动作或状态。
1、因为表示的是持续的动作或状态,所以使用的动词通常是延续性动词:be, stay, study, wait, keep, have… 等;
2、使用的时间状语通常由for或since 引导,但二者后接的词有所不同:
for后常跟一个时间段,指某个动作到现在为止已持续了多长时间。
如:for three years, for half an hour等。
since 作介词,后面可以接一个时间点,如since 1980,也可以接“一段时间+ago”,如: since three years ago, since two months ago等。
since 还可用作连词,引导一个过去时态的时间状语从句。
如:We have known each other since we went to college.
3、非延续性动词不能直接和for 或since 连用,但我们可以找一个相应的延续性动词或动词短语来替换这些非延续性动词,
如: come→be, come to→be in / at, go out→ be out, leave→be away,
begin→be on, stop→ be over, buy→ have, borrow→ keep,
open→be open, close→be closed, join→be a member of,
die→be dead, catch a cold→have a cold, get to know→know,
become a teacher →be a teacher, fall asleep→be asleep, fall ill→ be ill等。
4、句型It is the first (second, third...) time that...的that从句中,谓语动词须用现在完成时,表示到说话时为止动作发生过几次。
如:It is the first time that I have been here. 用于This/That/It is the first(second…) time that…句型中。如:
It is the first time that I have visited your beautiful city. 这是我第三次参观这个美丽的城市了。
■用于This/That/It is +the+形容词最高级+名词+that…句型中用在“It(This) is(will be ) the first/second/third…time+ that从句”中
在这种从句中,当主句动词为is/will be时,that-从句的动词用现在完成时,that 可以省略。主句中的主语还可用this, this evening等; 这种结构中的first也可用其他序数词;time也可由其他名词替代。
-Do you know our town at all?你对我们城镇熟悉吗?
-No, this is the first time I have been here.不熟,这是我第一次来这里。
It's the first time I've been here.这是我第一次到这里来。
It'll be the first time I've spoken in public.这将是我第一次当众讲话。That’s the most interesting book I’ve ever read. 这是我看过的最有意思的书。
It (This)is the best( worst, most interesting等) + 名词+从句”结构中的从句要求用现在完成时
This is the best film I’ve ever seen.这是我所看过得最好的一部电影。
This is the most interesting novel he has ever written.这是他写得最好的一部小说。(三)现在完成时与一般过去时的用法比较
1、一般过去时表示过去某个时间发生的事、存在的状态或经常发生的动作。说话的侧重点只在于陈述一件过去的事情,不强调对"现在"产生的影响。
如: He visited Guilin in 1998.
他1998年参观过桂林。(只说明去桂林的时间)
2、 现在完成时表示动作发生在过去,对现在造成了影响或产生了结果。不与确定的过去时间状语连用。
如: Jill has bought a new computer.
吉尔买了一台新电脑。(着重点是现在有了一台新电脑)
3、 两种时态的区分
(1)一般过去时的谓语动词用过去式,而现在完成时的谓语基本构成是"助动词have /has +过去分词"。
(2)一般过去时通常与表示过去的时间状语连用。如:yesterday, last week, two years ago, just now, in 2002等;
而现在完成时则常与just, already, ever, never等副词和these days, this week, since..., for...等表示一段时间的状语连用。
(3)看看以下的几组句子,有什么区别?
① Have you seen the film?(A)
Did you see the film?(B)[说明] 你看过这部电影吗?(A)句强调的是被问者对剧情是否了解;(B)句强调的是看这部电影的动作是否发生过,并不强调是否知道其内容。
② How has he done it?(A)
How did he do it?(B)
[说明]他是怎么做的这件事?(A)句强调的是他做这件事的方式对现在产生了某种影响;(B)句单纯的询问做这件事的方式。
③ He has lived in Beijing for 8 years.(A)
He lived in Beijing for 8 years.(B)
[说明]他在北京住了8年。(A)句讲的是到目前为止他在北京住了8年,可能还会继续在北京住下去。(B)句讲的是他在北京住过8年,现在不在北京了。
5.几点注意事项
(1)have been(to)与have gone( to)的区别:have been(to)表示“去过某地(现在已经回来了)”,可用于各人称;have gone(to)表示“去某地了(说话时某人不在当地)”,常用于第三人称,前者可与once ,never,several times等连用,后者则不能。如:They have been to Beijing twice.他们去过北京两次。
He has gone to Beijing . 他去北京了。
(2)如单纯表示一段时间,或强调一段时间,虽有since一词,也不必用完成时。如:It is two years since his father died. =His father has been dead for two years.他父亲去世已有三年了。
(3)终止性动词现在完成时的否定式,已变成一种可以延续的状态,因此可以和表示一段时间的状语连用。
如:I haven't left here since 1997.自从1997年以来,我一直没有离开过这儿。
(2)现在完成时常见两种句型:
①主语+have / has been+for短语
②It is+一段时间+ since从句
例如:He has been in the League for three years.或It is three years since he joined the League. 他入团已三年了。 在表达一个在过去开始而现在仍在继续或刚刚结束的动作时,某些动词既可以用现在完成时,也可以用现在完成进行时。这样的动词有expect,hope,learn,lie,live,look,rain,sleep,sit,snow,stand,stay,study,teach,wait,want,work等
How long have you learnt English?你学习英语多久了?
How long have you been learning English?(译文同上。)
He has slept for ten hours.他已经睡了十个小时了。
He has been sleeping for ten hours.(译文同上。)
It has snowed for a long time.雪下了好长时间了。
It has been snowing for a long time.(译文同上。)
没有进行式的动词不可能有这样的用法,即现在完成进行时不能代替以下例句中的现在完成时:
They’ve always had a big garden.他们一直有一座大花园。
How long have you known that?你知道这事多久了?
He’s been in hospital since his accident.
他从发生事故之后,一直在医院里。
注意:现在完成进行时可以和时间短语连用,也可以不连用,这一点就有别于现在完成时,因为后者与像for six days,since June,never等一些时间短语连用才能表示这类动作。不用这些时间状语时,现在完成时指的是完成了的一个动作。
B 用现在完成时表示的反复的动作,有时可以作为连续的动作用现在完成进行时表示:
I’ve written six letters since breakfast.早饭后我已经写了六封信。
I’ve been writing letters since breakfast.早饭后我一直在写信。
I have knocked five times.I don’t think anyone’s in.
我敲了五次门。我想屋里没有人。
I’ve been knocking.I don’t think anybody’s in.
我一直在敲门。我想屋里没有人
现在完成进行时与现在完成时的区别
(1) 现在完成时可以表示一个已经完成的动作,而现在完成进行时则表示一个正在进行的动作:
I have read the book. 我读过这本书。I have been reading the book. 我一直在读这本书。
【注】有少数动词(如work, study, live, teach, stay等)在表示持续一时间时用这两种时态含义差不多(只是用现在完成进行进更强调动作的持续性):
How long have you worked [been working] here? 你在这儿工作多久了?
I’ve lived [been living] here since 1988. 自1988年以来我就一直住在这儿。
(2) 现在完成时通常只陈述事实,而现在完成进行时还可表示一种感****彩:
I have waited for two hours. 我等了两小时。(陈述事实)
I have been waiting for two hours. 我等了两个小时。(等得好辛苦)
(3) 现在完成进行时通常用来谈论较短暂的动作或情况,若要谈论时间延续较长的动作或情况或永久性情况,则通常用现在完成时:He has lived in Paris. 他(一直)住在巴黎。He has been living in Paris. 他(目前)住在巴黎。(表暂时性)
(4) 不用于进行时态的动词通常也不用于现在完成进行时,但它们可以用于现在完成时:
I’ve only known her for two day. 我认识她刚刚两天。They’ve been married for twenty years. 他们结婚已二十年了。The war has lasted for a long time. 这场战争持续了很长时间。
(5) 现在完成进行时不用于被动语态,若要用可用现在完成时的被动语态代替:
The house has been painted for a month. 这房子已漆了一个月。
The problem has been studied for five days. 这个问题已研究了五天