知識框架
現在完成時表示過去發生或已經完成的動作對現在造成的影響或結果,也可以表示過去已經開始,一直延續到現在的動作或狀態。
現在完成時的結構:助動詞have/has+動詞的過去分詞。當主語是第三人稱單數時,助動詞用has,其否定形式為have/has not+動詞的過去分詞,have not 和has not可縮略為haven't與hasn't.
動詞的過去分詞分規則變化與不規則變化兩種。規則動詞的過去分詞構成與動詞的過去式相同;不規則動詞的過去分詞需要特殊記憶。
現在完成時的用法
1.在未指明具體時間時,現在完成時動詞通常可以表示在說話之前已經完成,而後果或影響至今仍存在的動作。現在完成時吧過去的動作和現在的結果聯繫起來。而過去時只限於表示過去的動作本身,與現在的結果無關。
I have seen the film.我看過這部電影。(對電影內容了解)
He has had his lunch.他吃過午飯了。(現在不餓)
You have grown much taller.你長高了。(現在個子很高)
2.表示總結從過去到現在的情況,行為發生於過去,一直延續到現在,亦有繼續延續下去的可能。可以和since短語,for短語以及表示現在的時間狀語連用。
We have studied English for six years.我們已經學了6年英語了。
I've never return to my school since I left.自從離開學校後,我就沒有回去過。
3.動作在過去完成,表示「經驗」「經歷」。這種經歷不可能為以後的行為抹殺或否定,強調對現在的影響或結果。瞬間動詞和延續性動詞都可以用。
常用的時間狀語有never從沒,ever曾,often常常,once一次,twice兩次,before從前,等。
She has been to France many times.她去過法國好幾次了。(現在不在法國)
It is the second time that he has made the same mistake.
=It wasthe second time that he had made the same mistake.那已經是他第二次犯同樣的錯誤了。
4.It is has been ...since這一結構也常用於現在完成時。
It is has been a long time since they last went to Beijing.自從他上次去北京,已有很長時間了。
5.by短語表示時間意義,用於各種完成時態,表示在某個時間前必然產生某種結果。
By the end of last year they had planted 5000 trees.到去年年底,他們已經種植了5000棵樹。
The doctors have saved more than 100 wounded soldiers by now.醫生們現在已經挽救了100 多個傷兵。
6.在狀語從句中,亦可用現在完成時代替將來時,並強調結果。
You won't get off the bus until it has stopped.車不停你不能下車。
現在完成時態的時間狀語
1.現在完成時常與表示不確定的過去時間或頻度的時間狀語連用,如already,never,ever,just,yet,before等。
already表示「已經」,強調已經完成,常用於肯定句,放在過去分詞前或句尾,在否定句或疑問句中要改為yet;
yet表示「已經」「還」。強調原來計劃做,但是到現在還沒做,常放在句末,用於疑問句和否定句;
ever表示「曾經」,多用於疑問句;
never表示「從不」,一般用於表達否定意義;
just表示「剛剛」,強調剛發生的事情對現在的影響,多用於肯定句。just now表示「剛才」,與一般過去時連用。
2.現在完成時常與for或since引導的表示一段時間的狀語連用。
通常時間狀語的結構:
for+一段時間,即for用來說明動作延續時間長度
since+一個過去的時間點,時間點也可以以一個一般過去時態的從句形式出現。since用來說明動作的起始時間。
如果要對現在完成時態句子中的時間狀語進行提問,通常要用how long.
He has livedin this city since he came to China.自他來到中國,他就住在這個城市。
當現在完成時帶有for或since引導的時間狀語時,謂語必須使用延續性動詞。
在現在完成時態的句子中,短暫性動詞一般不能和時間段連用,但在否定句子中,則一般可以和表示一段時間的for短語連用。
He hasn't cameto school for a week.他一周沒來上學了。
注意:短暫性動詞不能和表示一段時間的時間狀語連用,但如果要保留表示一段時間的時間狀語,必須將短暫性動詞改為延續性動詞。
常見的短暫想動詞轉換為延續性動詞如下:
fall asleep→be asleep
begin/start→be on
buy→have
die→be dead
come→be in
arrive→be here
join→be in/be a member of
finish/end→be over
leave→be away
borrow→keep
come back→be back
3.現在完成時往往還可以同包括現在時間在內的時間狀語連用,如in the past three years,this morning/year,these days,today,so far等。
Have you had breakfast this morning?你今天早上吃早飯了嗎?
have/has been in,have/has been to與have/has gone to的區別
have/has been in表示「一直待在某地」;
have/has been to表示「去過某地」,現已回來,是說話以前的動作;
have/has gone to表示「已去了某地或在去某地的路上」,人已離開,不再說話的現場。
I have been in the USA for two years.我在美國已經兩年了。
I have been to the USA twice.我去過美國兩次。
He has gone to the USA.他去了美國。