一、現在完成時的概念及構成
(1)現在完成時的概念
現在完成時表示過去發生的動作對現在造成的影響或結果;或表示過去已經開始,持續到現在的動作或狀態。
(2)現在完成時的構成
現在完成時由“助動詞have,has+過去分詞”構成。
規則變化的過去分詞與動詞的過去式的變化規則一樣,在詞尾加上-ed;不規則動詞的過去分詞變化見字典附錄的不規則動詞表。
現在完成時的肯定式、否定式、疑問式及其答語見下表(以work為例)。

二、現在完成時的基本用法
(1)表示過去發生或已經完成的動作對現在造成的影響或結果
常與下列狀語連用:already(多用于肯定句),never(否定句),ever(多用于疑問句),yet(用于否定句或疑問句),just,before。例如:
I've already seen the film.
我已經看過那部電影了。
Have you ever been to London?
你曾經去過倫敦嗎?
She has never lost her way.
她從沒迷過路。
Has she finished cooking yet?
她做完飯了嗎?
2.表示過去已經開始,持續到現在的動作或狀態
常與表示過去某一時刻延續到現在的一段時間狀語連用。如“for+一段時間”,“since+點時間”,“since+一段時間+ago”或“since+從句(謂語動詞用一般過去時)”。例如:
Miss Zhao has taught maths for five years.
趙老師教數學五年了。
His mother has worked in the shop since 1990.
自從1990年他媽媽就在這家商店上班。
The Greens have lived in London since three years ago.
自從三年之前,格林一家人就住在倫敦。
3. 表示到現在為止的一段時間內多次動作的總和或做過的工作的量的積累
Great changes have taken place in the past three years here.
在過去的三年里這兒發生了巨大的變化。
We have learnt over 3,000 words this year.
今年我們學了3000多個單詞。
——How many buildings have you built these years?
這些年來你們蓋了多少樓房?
——We've built over ten buildings.
我們蓋了十多座高樓。
He has been dead for ten years. 他死了十年了。
三、使用現在完成時應注意的事項
1.現在完成時與一般過去時的用法區別
(1)現在完成時強調過去發生的動作對現在造成的影響,而一般過去時不強調過去的動作與現在的關系。如:
I have lost my pen. (強調我現在沒有筆)
I lost my pen. (過去筆掉了,沒說明現在是否有筆)
(2)現在完成時不可和表過去的時間狀語連用(before,just等除外),但一般過去時可和表過去的時間狀語,如yesterday,last week,three days ago,just now等連用。如:
A:Hello,Kate! Have you had supper?
凱特,你好!你吃晚飯了嗎?
B:Yes,I have. 吃了。
A:When did you have it ? 你什么時候吃的?
在此例中,應注意When是一個不確定的過去時間。
2. for和since的運用
for表“經歷(一段時間)”,而since表“自從……以來”。常見結構:“for+一段時間”;“since+一段時間+ago”;“since+一個時間點”;“since+從句”。如:
He has stayed here for 3 hours.
他留在這兒已經3個小時了。
He has stayed here since 3 hours ago.
他3個小時以前就留在這兒了。
He has stayed here since 3 o' clock.
他從3點鐘一直留在這兒。
He has taught English since he came here.
他到這兒以后就教英語。
3. 短暫動詞怎樣和表示一段時間的狀語連用
英語中的短暫性動詞,也叫做終止性動詞、瞬間動詞或非延續性動詞,只表示一時的動作,在肯定句式中不能與表示延續的時間狀語連用。這類動詞常用的有So,come,leave,find,buy,arrive, give,stop,join,marry,die,pass away等。對這類詞,如果初學者不加分析地隨便使用,會出現不應有的錯誤。如:“這本書我買了三個月了。”誤譯成“I have bought this book for three months.”。為了避免錯誤,在使用這類詞時應學會并掌握“三個變化”。
(1)謂語動詞的變化。把短暫性動詞變為延續性動詞。例如:
leave→have(has) been away from
join→have(has) been(in)
buy→have(has) had
die→have(has) been dead
come(arrive)→have(has)been here
borrow→have(has) kept
begin to work→have(has) worked
open→have(has) been open
get up→have(has) been up
put on→have(has) on
come back→have(has) been back等。請看例句:
①他來這里半小時了。
[誤]He has come here for half an hour.
[正]He has been here for half an hour.
②他猶豫不決,沉默了一會兒。
[誤]He hesitated and gave no reply for a while.
[正]He hesitated and remained silent for a while.
(2)時間狀語的變化。把表時間的狀語“for…”變為“數詞+時間名詞+ago”的短語形式。例如:
①他參軍五年了。
[誤]He has joined the Army for five years.
[正]He has been in the Army for five yean.
[正]He joined the Army five years ago.
②他離開濟南三年了。
[誤]He has left Ji'nan for three years.
[正]He has been away from Ji'nan for three years.
[正]He left Ji'nan three years ago.
(3)句子模式的變化。可把句式變為“It is+時間+since...”的句式。例如:
①我們敬愛的周總理已逝世二十多年了。
[誤]Our beloved and respected Premier Zhou has died for more than twenty years.
[正]Our beloved and respected Premier Zhou has been dead for more than twenty years.
[正]Our beloved and respected Premier Zhou died more than twenty years ago.
[正]It is more than twenty years since our beloved and respected Premier Zhou died.
②中華人民共和國成立多久了?五十五年了。
[誤]—How long was the People's Republic of China founded?
—It was founded for 55 years.
[正]—How long is it since the People's Republic of China was founded?
—It is fifty-five years since it was founded.
4. have(has) been to與have(has) gone to的用法區別
“have/has been to+地名”,表示“某人曾經到過某地,現在已經不在那個地方了”,時間狀語常用 ever,never(否定句)等。例如:
I have ever been to America.我曾去過美國。
(現在I在說話地點,不在美國。去美國是過去的事。)
“have/has gone to+地名”,表示“某人到某地去了,此人現在已不在說話地點”。例如:
—Where's Mr Evans?伊萬先生在哪兒?
—He's gone to Washington.他到華盛頓去了。
5. already和yet的區別
already常用于肯定句中或句末;yet常用于一般疑問句或否定句句末。但表驚訝時already也可用于疑問句。
Tom has already finished his homework.
湯姆已經完成了作業。
Tom hasn't finished his homework yet.
湯姆還沒有做完作業。
What!Have you already finished it?
什么?你已經完成了那個工作?(驚訝)