一、現在完成時的構成
現將行為動詞(以work為例)的現在完成時的肯定式,否定式和疑問式的構成列表如下:
動詞 | 肯定式 | 否定式 |
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.) |
現在完成時是由助動詞have(has)+過去分詞構成。過去分詞是在規則動詞后加ed構成,方法與過去時加ed相同,不規則動詞的過去分詞要查表。
二、現在完成時的用法
1.過去所發生的某一動作對當前造成影響或結果。如:
I have done my homework now.
我已經做完作業了。
(“做作業”是過去發生的動作,對當前造成的結果是“我不必再做了”。)
I don't want to go to Beijing. I have been there twice.
我不想去北京,我去過那里兩次。
(“到北京”是過去發生的動作,對當前的影響是“我不想再去了”。)
He has seen the film.
他看了這個電影。
(“看電影”是過去的動作,對當前的影響是“他知道電影的內容”。)
2.從過去某時開始的一個動作或狀態,一直持續到現在。如:
She has been a teacher for 5 years.
她已當了五年教師。
We have learned English since1998.
我們從1998年起一直學英語。
3.在時間和條件狀話從句中,可用現在完成時代替將來完成時。如:
When you have learned English, you will find it a bridge to so much knowledge.
當你學會英語時,你會發現它是通往如此豐富知識的橋梁。
We'll start at five o'clock, if it has stopped raining by then.
如果五點雨停了的話我們就動身。
三、和現在完成時連用的時間狀語
1.和表示不確定的時間狀語 already, never,not.ryet,ever,just, before等連用。如:
We have never met her before.
我們從來沒有見過她。
The train has just left the station.
火車剛剛離開車站。
2.和包含現在時間意義的時間狀語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.現在完成時的時間狀語還有表示一段時間的時間狀語or,以及 since+過去的時間點或從句(表示過去事情發生的時間)。如:
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.
他已經參軍了。
如要說“他參軍已三年。”要用:
He has been in the army for 3 years.
或He Joined the army 3 years ago.
而不能說 He has joined the army for3 years.
四、現在完成時和一般過去時的區別
1.現在完成時和一般過去時所講的都是在說話前發生的事情,但兩者不一樣。一般過去時用于一個與目前無聯系的過去的行為;而現在完成時強調過去發生的事與現在的聯系。所以一般過去時著眼于動作的時間、地點,而現在完成時著眼于動作發生的情況,以及動作對現在的影響。如:
Tom has been to Beijing twice。
湯姆去過北京兩次。(強調他曾去過,了解北京。)
Tom went to Beijing in 1977 and 1979.
湯姆在1977和1979年去過北京。(強調具體1977和1979年,湯姆所做的事。)
John has cut his finger.
約翰割破了他的手指。
John cut his finger this morning.
約翰早上割破了他的手指。
2.一般過去時和表示過去時間的狀語連用,in1977, yesterday等。與現在完成時連用的時間狀語一定在意義上與現在有關。如:
He has lived here since 1980.
1980年以來他一直住在這里。(現在還住在這里。)
He lived here in 1980.
他1980年住在這里。(不管他現在住不住。)
He has taught English for 5 years.
他已教了5年英語。(現在仍在教。)
He taught English for 5 years.
他教過5年英語。(現在不教了。)
注:have/has been和have/ has gone的用法區別:用have/ has been時,主語在場;而用have/has gone時,主語不在場。因此某人要表示“曾到過某地”時,要用“have/ has been”,而不能用 have/has gone”如:
Where have you been?
你去哪里了?(現已回來。)
Where has he gone?
他去哪里了?(他現在不在。)
He has been to Shanghai.
他去過上海。(現不在上海。)
He has gone to Shanghai
他去上海了。(現在上海,或在路上。)