英語時態(tài)總結(jié):現(xiàn)在完成進(jìn)行時態(tài)詳解
一、現(xiàn)在完成進(jìn)行時的定義
現(xiàn)在完成進(jìn)行時表示某動作從過去某個時間開始,一直延續(xù)到現(xiàn)在,并且還有可能持續(xù)下去。如:
Those cats have been screaming for hours. 那些貓叫了半天了。
We have been waiting for him for two hours. 我們等他等了兩個小時。
The dollar has been climbing steadily all week. 整個星期美元一直在穩(wěn)步增值。
二、現(xiàn)在完成進(jìn)行時的結(jié)構(gòu)
?現(xiàn)在完成進(jìn)行時由“have / has been + 現(xiàn)在分詞”構(gòu)成。如:
Sales have been dropping off badly. 銷售量一直減少得很厲害。
I have been waiting for an hour and a half. 我一直等了一個半小時了。
We’ll have been living here for two years by next Sunday. 到下星期日,我們在這里就住了整兩年了。
三、現(xiàn)在完成進(jìn)行時有哪些主要用法
1. 表示“持續(xù)”:
即表示一個從過去某時開始一直持續(xù)的動作,這動作可能剛剛停止,也可能還在進(jìn)行。如:
She has been pruning the roses. 她一直在修剪玫瑰。
He’s been helping himself to my stationery. 他未經(jīng)許可一直用我的文具。
The children have been having a lot of fun. 孩子們一直玩得很開心。
She is very tired. She’s been working all morning. 她很累。她干了一早晨了。
Tom has been seeing about a work permit for you. 湯姆一直在想辦法給你弄一個工作許可證。
The tobacco industry has been trying to improve its image. 煙草行業(yè)一直在試圖改善其形象。
It has come to our knowledge that you have been cheating the company. 據(jù)我們了解你一直欺騙公司。
The group has been living in a remote corner of the Cambodian jungle. 該部落一直居住在柬埔寨的叢林深處。
2. 表示“重復(fù)”
即表示在一段持續(xù)的時間內(nèi)動作的多次重復(fù),而這個重復(fù)的動作在說話時并不一定在進(jìn)行。如:
We’ve all along been making mistakes like this. 我們一直犯這樣的錯誤。
Jim has been phoning Jenny every night for the past week. 一星期以來吉姆每天晚上給詹妮打電話。
四、與現(xiàn)在完成進(jìn)行連用的主要時間狀語
現(xiàn)在完成進(jìn)行時所用的時間狀語:all day / month; this month / week / year; these days; recently / lately; in the past few + 時間段; since +時間點(diǎn); for + 時間段,等等。如:
He has been working all day. 他整天都在工作。
They have been building the bridge for two month. 兩個月來他們一直在修橋。
They have been planting trees this month. 這個月來他們一直在植樹。
?Car sales have been shrinking recently. 汽車銷量近來一直在下降。
Vera has been trying to learn Chinese for years. 維拉努力學(xué)漢語已有好幾年了。
He has been sleeping for ten hours. 他已經(jīng)睡了十個小時了。
Jim has been phoning Jenny every night for the last week. 上星期,吉姆天天晚上都給詹妮打電話。
The two parties have been trying to unite since the New Year. 自從新年以來,雙方就一直在試圖聯(lián)手。
五、現(xiàn)在完成進(jìn)行時與現(xiàn)在完成時的區(qū)別
1.現(xiàn)在完成時強(qiáng)調(diào)動作的完成,而現(xiàn)在完成進(jìn)行時強(qiáng)調(diào)動作的延續(xù),因此,表示動作的完成,只能用現(xiàn)在完成時,而不能用現(xiàn)在完成進(jìn)行時。如:
He has changed his idea. 他改變了想法。(from )
2.在表示動作的延續(xù)時,雖然既可用現(xiàn)在完成時,也可用現(xiàn)在完成進(jìn)行時,但現(xiàn)在完成進(jìn)行時強(qiáng)調(diào)動作的進(jìn)行。因此在需要明確表示動作還要持續(xù)下去時,應(yīng)用現(xiàn)在完成進(jìn)行時。如:
We have been studying here for two years. 我們在這兒已經(jīng)學(xué)習(xí)了兩年了。
3. 在許多情況下,現(xiàn)在完成時表示動作已經(jīng)完成,而現(xiàn)在完成進(jìn)行時卻并非如此。如:
He has cleaned the window. 他把窗戶擦干凈了。(動作已完成)
He has been cleaning the window. 他一直在擦窗戶。(動作不一定完成)
4. 有些靜態(tài)動詞只能用于現(xiàn)在完成時,一般不能用于現(xiàn)在完成進(jìn)行時。如:
I’ve known him for many years. 我認(rèn)識他有許多年了。
The war has lasted for a long time. 這場戰(zhàn)爭持續(xù)了很長時間。
5. 有少數(shù)動詞(如live, work, teach, study等)用兩種時態(tài)都可以,意思差別不大。如:
I’ve lived [been living] here for 30 years. 我在這兒住了30年了。
How long have you worked [been working] here? 你在這里工作多久了?
6.現(xiàn)在完成時與現(xiàn)在完成進(jìn)行時的相通性:在表達(dá)一個從過去開始而現(xiàn)在仍在繼續(xù)或剛剛結(jié)束的動作時,某些動詞既可以用現(xiàn)在完成時,也可以用現(xiàn)在完成進(jìn)行時,如expect, hope, learn, lie, live, look, rain, sleep, sit, snow, stand, stay, study, teach, wait, want, work等。如:
你學(xué)習(xí)英語多久了?
正:How long have yon learnt English?
正:How long have you been learning English?
他已經(jīng)睡了十個小時了。
正:He has slept for ten hours.
正:He has been sleeping for ten hours.
六、現(xiàn)在完成進(jìn)行時例題及講解
1. Tom ______ in the library every night over the last three months.
A. works B. worked C. has been working D. had been working
分析:C。over the last three months 的意思是“在過去的三個月期間”,這類時間狀語通常通常與現(xiàn)在完成時或現(xiàn)在完成進(jìn)行時連用,四個選項(xiàng)中只有C符合此要求。又如:
Food and drink culture in Britain is surely changing, has surely changed over the last two decades. 在英國,飲食文化肯定正在不斷地發(fā)生著改變,并且在過去二十年中肯定已發(fā)生過不少變化。
2. Now that she is out of a job, Lucy ______ going back to school, but she hasn’t decided yet.
A. had considered B. has been considering C. considered D. is going to consider
分析:B。根據(jù)but she hasn’t decided yet (尚未決定) 可知,從開始失業(yè)時起一直在考慮再去上學(xué),現(xiàn)在還在考慮。表示從過去某一時刻開始一直到現(xiàn)在,并且現(xiàn)在依然在發(fā)生的動作,用現(xiàn)在完成進(jìn)行時,現(xiàn)在完成進(jìn)行時由“have/has been doing”構(gòu)成,所以選B。
3. I won’t tell the student the answer to the math problem until he ______ on it for more than an hour.
A. has been working B. will have worked C. will have been working D. had worked
分的:A。has been working 為現(xiàn)在完成進(jìn)行時,是許多中學(xué)生不太熟悉的一種時態(tài),因此要想通過分析句子直接從正面選出答案可能有一定困難。但是,如果我們用排除法來分析,則問題變得很簡單:首先,由于until引導(dǎo)的是時間狀語從句,根據(jù)“主將從現(xiàn)”原則,當(dāng)主句為將來時態(tài)時,時間狀語從句不能直接用將來時態(tài)來表示將來意義,據(jù)此可排除B和C; 而選項(xiàng)D為過去完成時,也不能選,因?yàn)椤斑^去完成時”必須以“過去”為支點(diǎn),表示“過去的過去”,但此句并沒有過去時態(tài)這一支點(diǎn),故此選項(xiàng)也被排除。
4. Cathy is taking notes of the grammatical rules in class at Sunshine School, where she ______ English for a year.
A. studies B. studied C. is studying D. has been studying
分析:D。根據(jù)句中的現(xiàn)在進(jìn)行時可排除B,再根據(jù)句中的for a year可知此題選現(xiàn)在完成進(jìn)行時最佳,即選D。
5. —I have got a headache.
—No wonder. You ______ in front of that computer too long.
A. work B. are working C. have been working D. worked
分析:C。由于在電腦前工作太久,所以導(dǎo)致了現(xiàn)在頭痛的結(jié)果,故空格處應(yīng)填現(xiàn)在完成時或現(xiàn)在完成進(jìn)行時,即答案選C。
6. —I’m sure Andrew will win the first prize in the final.
—I think so. He ______ for it for months.
A. is preparing B. was preparing C. had been preparing D. has been preparing
分析:D。根據(jù)句中的…will win the first prize in the final可知,決賽還沒有舉行,所以下文談到的“準(zhǔn)備”指的肯定是從過去一直持續(xù)到現(xiàn)在的情況,故用現(xiàn)在完成進(jìn)行時。
7. Excuse me, Marcia, a reporter from Vanity Fair ______ all day. Could you speak to her now?
A. phones B. has phoned C. has been phoning D. phoned
分析:C。根據(jù)句中的時間狀語all day和謂語動詞phone的特點(diǎn)(為非延續(xù)性動詞)可知,句子應(yīng)用進(jìn)行時態(tài)(表示動作不斷重復(fù)),而選項(xiàng)中只有C為現(xiàn)在完成進(jìn)行時。句意為:瑪西婭,打攪你一下,有名來自《名利場》的記者一整天都在打電話來,你現(xiàn)在能和他說說嗎?又如:She is very tired. She’s been typing letters all day. 她很累了。她整天都在打信件。
8. Over the past decades, sea ice ______ in the Arctic as a result of global warming.
A. had decreased B. decreased C. has been decreasing D. is decreasing
分析:C。介詞短語“over the past [last]+時間段”的意思是“在過去的……時間中”,它指的是從過去某時持續(xù)到現(xiàn)在的一段時間,所以通常與現(xiàn)在完成時或現(xiàn)在完成進(jìn)行時連用,故答案選C。句意為:過去幾十年來,由于全球變暖,北極的海冰正慢慢消融。又如:Technology in this field has matured considerably over the last decade. 這一領(lǐng)域的技術(shù)經(jīng)過過去10年的發(fā)展已經(jīng)相當(dāng)完善。
9. —Why, Jack, you look so tired!
—Well, I ______ the house and I must finish the work tomorrow.
A. was painting B. will be painting C. have painted D. have been painting
分析:D?,F(xiàn)在完成進(jìn)行時表示從過去一直持續(xù)到現(xiàn)在的動作。在此題中,由于“一直在刷油漆”,所以才導(dǎo)致“看上去非常疲憊”,故選D最符合句意。
10. Mother wanted to be a good provider, a role she ______ since her marriage to Father.
A. shoulders B. shouldered C. is shouldering D. has been shouldering
分析:D。根據(jù)空格后的since可知,此處談?wù)摰氖菑倪^去一直持續(xù)到現(xiàn)在的情況,故用現(xiàn)在完成進(jìn)行時最合適。
11. Joseph ______ to evening classes since last month, but he still can’t say “What’s your name?” in Russian.
A. has been going B. went C. goes D. has gone
分析:A。根據(jù)句中的since可知,空格處應(yīng)填完成時態(tài),故可排除B和C;根據(jù)句意,空格處填現(xiàn)在完成進(jìn)行時比填現(xiàn)在完成時更合適,因?yàn)樗鼜?qiáng)調(diào)“一直在做某事”。又如:He has been working since noon. 他從中午就開始工作了。He was taken ill and no wonder, considering he has been overworking for years. 他生病了,也難怪,多少年他一直過度辛勞。
12. I have to see the doctor because I ______ a lot lately.
A. have been coughing B. had coughed C. coughed D. cough
分析:A。根據(jù)句中“不得不要去看醫(yī)生”這一信息可知,“咳嗽”這一現(xiàn)象現(xiàn)在還在持續(xù),由此可排除B和C;比較A和D,顯然用現(xiàn)在完成進(jìn)行時才能更好地表示從過去一直持續(xù)到現(xiàn)在的情況,故選A。
13. —Hi, Tracy, you look tired.
—I am tired. I ______ the living room all day.
A. painted B. had painted C. have been painting D. have painted
分析:C。表示從過去某個時間開始一直延續(xù)到現(xiàn)在的動作,要用現(xiàn)在完成進(jìn)行時。all day 是關(guān)鍵詞。
14. We ______ on this project for four hours. Let’s have a rest.
A. are working B. have been working C. worked D. had worked
分析:B。根據(jù)句中的let’s have a rest(我們休息一下吧)可知,連續(xù)工作四個小時導(dǎo)致我們現(xiàn)在很累了,所以用現(xiàn)在完成進(jìn)行時比較合適。