一、現(xiàn)在完成時的構(gòu)成
現(xiàn)將行為動詞(以work為例)的現(xiàn)在完成時的肯定式,否定式和疑問式的構(gòu)成列表如下:
動詞 | 肯定式 | 否定式 |
work | I have worked. | I haven't worked. |
He/She/It has worked. | He/She/It hasn't worked. |
We/You/They have worked. | We/You/They haven't worked. |
動詞 | 疑問式 | 簡答 |
work | Have I worked? | Yes,I have.(No.I haven't.) |
Have he/she/it worked? | Yes,he/she/it has.(No,he/she/it hasn't.) |
Have we/you/they worked? | Yes,we/you/they have.(No,we/you they haven't.) |
現(xiàn)在完成時是由助動詞have(has)+過去分詞構(gòu)成。過去分詞是在規(guī)則動詞后加ed構(gòu)成,方法與過去時加ed相同,不規(guī)則動詞的過去分詞要查表。
二、現(xiàn)在完成時的用法
1.過去所發(fā)生的某一動作對當(dāng)前造成影響或結(jié)果。如:
I have done my homework now.
我已經(jīng)做完作業(yè)了。
(“做作業(yè)”是過去發(fā)生的動作,對當(dāng)前造成的結(jié)果是“我不必再做了”。)
I don't want to go to Beijing. I have been there twice.
我不想去北京,我去過那里兩次。
(“到北京”是過去發(fā)生的動作,對當(dāng)前的影響是“我不想再去了”。)
He has seen the film.
他看了這個電影。
(“看電影”是過去的動作,對當(dāng)前的影響是“他知道電影的內(nèi)容”。)
2.從過去某時開始的一個動作或狀態(tài),一直持續(xù)到現(xiàn)在。如:
She has been a teacher for 5 years.
她已當(dāng)了五年教師。
We have learned English since1998.
我們從1998年起一直學(xué)英語。
3.在時間和條件狀話從句中,可用現(xiàn)在完成時代替將來完成時。如:
When you have learned English, you will find it a bridge to so much knowledge.
當(dāng)你學(xué)會英語時,你會發(fā)現(xiàn)它是通往如此豐富知識的橋梁。
We'll start at five o'clock, if it has stopped raining by then.
如果五點(diǎn)雨停了的話我們就動身。
三、和現(xiàn)在完成時連用的時間狀語
1.和表示不確定的時間狀語 already, never,not.ryet,ever,just, before等連用。如:
We have never met her before.
我們從來沒有見過她。
The train has just left the station.
火車剛剛離開車站。
2.和包含現(xiàn)在時間意義的時間狀語these days,today,lately(最近),so far(至今為至),this morning/afternoon/evening/week/month/year,recently,up till now(至今),等連用。如:
Have you seen him lately /recently?
你最近看見過他嗎?
I have written to my brother this week.
我這周給我兄弟寫了封信。
3.現(xiàn)在完成時的時間狀語還有表示一段時間的時間狀語or,以及 since+過去的時間點(diǎn)或從句(表示過去事情發(fā)生的時間)。如:
He has waited for 10 years.
他等了有10年。
I haven,t heard from him since 1990/since he left 3 years ago.
我自1990年以來/自三年前他離開后就沒有收到他的信。
但要注意瞬間動詞(如:come,go, leave, arrive,jin,mary等完成時不能與帶for或since的時間狀語連用。如:
He has joined the army.
他已經(jīng)參軍了。
如要說“他參軍已三年。”要用:
He has been in the army for 3 years.
或He Joined the army 3 years ago.
而不能說 He has joined the army for3 years.
四、現(xiàn)在完成時和一般過去時的區(qū)別
1.現(xiàn)在完成時和一般過去時所講的都是在說話前發(fā)生的事情,但兩者不一樣。一般過去時用于一個與目前無聯(lián)系的過去的行為;而現(xiàn)在完成時強(qiáng)調(diào)過去發(fā)生的事與現(xiàn)在的聯(lián)系。所以一般過去時著眼于動作的時間、地點(diǎn),而現(xiàn)在完成時著眼于動作發(fā)生的情況,以及動作對現(xiàn)在的影響。如:
Tom has been to Beijing twice。
湯姆去過北京兩次。(強(qiáng)調(diào)他曾去過,了解北京。)
Tom went to Beijing in 1977 and 1979.
湯姆在1977和1979年去過北京。(強(qiáng)調(diào)具體1977和1979年,湯姆所做的事。)
John has cut his finger.
約翰割破了他的手指。
John cut his finger this morning.
約翰早上割破了他的手指。
2.一般過去時和表示過去時間的狀語連用,in1977, yesterday等。與現(xiàn)在完成時連用的時間狀語一定在意義上與現(xiàn)在有關(guān)。如:
He has lived here since 1980.
1980年以來他一直住在這里。(現(xiàn)在還住在這里。)
He lived here in 1980.
他1980年住在這里。(不管他現(xiàn)在住不住。)
He has taught English for 5 years.
他已教了5年英語。(現(xiàn)在仍在教。)
He taught English for 5 years.
他教過5年英語。(現(xiàn)在不教了。)
注:have/has been和have/ has gone的用法區(qū)別:用have/ has been時,主語在場;而用have/has gone時,主語不在場。因此某人要表示“曾到過某地”時,要用“have/ has been”,而不能用 have/has gone”如:
Where have you been?
你去哪里了?(現(xiàn)已回來。)
Where has he gone?
他去哪里了?(他現(xiàn)在不在。)
He has been to Shanghai.
他去過上海。(現(xiàn)不在上海。)
He has gone to Shanghai
他去上海了。(現(xiàn)在上海,或在路上。)