一、現(xiàn)在完成進(jìn)行時(shí)的定義
現(xiàn)在完成進(jìn)行時(shí)表示某動(dòng)作從過去某個(gè)時(shí)間開始,一直延續(xù)到現(xiàn)在,并且還有可能持續(xù)下去。如:
Those cats have been screaming for hours. 那些貓叫了半天了。
We have been waiting for him for two hours. 我們等他等了兩個(gè)小時(shí)。
The dollar has been climbing steadily all week. 整個(gè)星期美元一直在穩(wěn)步增值。

二、現(xiàn)在完成進(jìn)行時(shí)的結(jié)構(gòu)
?現(xiàn)在完成進(jìn)行時(shí)由“have / has been + 現(xiàn)在分詞”構(gòu)成。如:
Sales have been dropping off badly. 銷售量一直減少得很厲害。
I have been waiting for an hour and a half. 我一直等了一個(gè)半小時(shí)了。
We’ll have been living here for two years by next Sunday. 到下星期日,我們?cè)谶@里就住了整兩年了。

三、現(xiàn)在完成進(jìn)行時(shí)有哪些主要用法
1. 表示“持續(xù)”:
即表示一個(gè)從過去某時(shí)開始一直持續(xù)的動(dòng)作,這動(dòng)作可能剛剛停止,也可能還在進(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. 湯姆一直在想辦法給你弄一個(gè)工作許可證。
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ù)的時(shí)間內(nèi)動(dòng)作的多次重復(fù),而這個(gè)重復(fù)的動(dòng)作在說話時(shí)并不一定在進(jìn)行。如:
We’ve all along been making mistakes like this. 我們一直犯這樣的錯(cuò)誤。
Jim has been phoning Jenny every night for the past week. 一星期以來吉姆每天晚上給詹妮打電話。

四、與現(xiàn)在完成進(jìn)行連用的主要時(shí)間狀語
現(xiàn)在完成進(jìn)行時(shí)所用的時(shí)間狀語:all day / month; this month / week / year; these days; recently / lately; in the past few + 時(shí)間段; since +時(shí)間點(diǎn); for + 時(shí)間段,等等。如:
He has been working all day. 他整天都在工作。
They have been building the bridge for two month. 兩個(gè)月來他們一直在修橋。
They have been planting trees this month. 這個(gè)月來他們一直在植樹。
?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)睡了十個(gè)小時(shí)了。
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)行時(shí)與現(xiàn)在完成時(shí)的區(qū)別
1.現(xiàn)在完成時(shí)強(qiáng)調(diào)動(dòng)作的完成,而現(xiàn)在完成進(jìn)行時(shí)強(qiáng)調(diào)動(dòng)作的延續(xù),因此,表示動(dòng)作的完成,只能用現(xiàn)在完成時(shí),而不能用現(xiàn)在完成進(jìn)行時(shí)。如:
He has changed his idea. 他改變了想法。(from )
2.在表示動(dòng)作的延續(xù)時(shí),雖然既可用現(xiàn)在完成時(shí),也可用現(xiàn)在完成進(jìn)行時(shí),但現(xiàn)在完成進(jìn)行時(shí)強(qiáng)調(diào)動(dòng)作的進(jìn)行。因此在需要明確表示動(dòng)作還要持續(xù)下去時(shí),應(yīng)用現(xiàn)在完成進(jìn)行時(shí)。如:
We have been studying here for two years. 我們?cè)谶@兒已經(jīng)學(xué)習(xí)了兩年了。
3. 在許多情況下,現(xiàn)在完成時(shí)表示動(dòng)作已經(jīng)完成,而現(xiàn)在完成進(jìn)行時(shí)卻并非如此。如:
He has cleaned the window. 他把窗戶擦干凈了。(動(dòng)作已完成)
He has been cleaning the window. 他一直在擦窗戶。(動(dòng)作不一定完成)
4. 有些靜態(tài)動(dòng)詞只能用于現(xiàn)在完成時(shí),一般不能用于現(xiàn)在完成進(jìn)行時(shí)。如:
I’ve known him for many years. 我認(rèn)識(shí)他有許多年了。
The war has lasted for a long time. 這場戰(zhàn)爭持續(xù)了很長時(shí)間。
5. 有少數(shù)動(dòng)詞(如live, work, teach, study等)用兩種時(shí)態(tài)都可以,意思差別不大。如:
I’ve lived [been living] here for 30 years. 我在這兒住了30年了。
How long have you worked [been working] here? 你在這里工作多久了?
6.現(xiàn)在完成時(shí)與現(xiàn)在完成進(jìn)行時(shí)的相通性:在表達(dá)一個(gè)從過去開始而現(xiàn)在仍在繼續(xù)或剛剛結(jié)束的動(dòng)作時(shí),某些動(dòng)詞既可以用現(xiàn)在完成時(shí),也可以用現(xiàn)在完成進(jìn)行時(shí),如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)睡了十個(gè)小時(shí)了。
正:He has slept for ten hours.
正:He has been sleeping for ten hours.

六、現(xiàn)在完成進(jìn)行時(shí)例題及講解
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 的意思是“在過去的三個(gè)月期間”,這類時(shí)間狀語通常通常與現(xiàn)在完成時(shí)或現(xiàn)在完成進(jìn)行時(shí)連用,四個(gè)選項(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è)時(shí)起一直在考慮再去上學(xué),現(xiàn)在還在考慮。表示從過去某一時(shí)刻開始一直到現(xiàn)在,并且現(xiàn)在依然在發(fā)生的動(dòng)作,用現(xiàn)在完成進(jìn)行時(shí),現(xiàn)在完成進(jìn)行時(shí)由“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)行時(shí),是許多中學(xué)生不太熟悉的一種時(shí)態(tài),因此要想通過分析句子直接從正面選出答案可能有一定困難。但是,如果我們用排除法來分析,則問題變得很簡單:首先,由于until引導(dǎo)的是時(shí)間狀語從句,根據(jù)“主將從現(xiàn)”原則,當(dāng)主句為將來時(shí)態(tài)時(shí),時(shí)間狀語從句不能直接用將來時(shí)態(tài)來表示將來意義,據(jù)此可排除B和C; 而選項(xiàng)D為過去完成時(shí),也不能選,因?yàn)椤斑^去完成時(shí)”必須以“過去”為支點(diǎn),表示“過去的過去”,但此句并沒有過去時(shí)態(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)行時(shí)可排除B,再根據(jù)句中的for a year可知此題選現(xiàn)在完成進(jìn)行時(shí)最佳,即選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)在完成時(shí)或現(xiàn)在完成進(jìn)行時(shí),即答案選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)行時(shí)。

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ù)句中的時(shí)間狀語all day和謂語動(dòng)詞phone的特點(diǎn)(為非延續(xù)性動(dòng)詞)可知,句子應(yīng)用進(jìn)行時(shí)態(tài)(表示動(dòng)作不斷重復(fù)),而選項(xiàng)中只有C為現(xiàn)在完成進(jìn)行時(shí)。句意為:瑪西婭,打攪你一下,有名來自《名利場》的記者一整天都在打電話來,你現(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]+時(shí)間段”的意思是“在過去的……時(shí)間中”,它指的是從過去某時(shí)持續(xù)到現(xiàn)在的一段時(shí)間,所以通常與現(xiàn)在完成時(shí)或現(xiàn)在完成進(jìn)行時(shí)連用,故答案選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。現(xiàn)在完成進(jìn)行時(shí)表示從過去一直持續(xù)到現(xiàn)在的動(dòng)作。在此題中,由于“一直在刷油漆”,所以才導(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)行時(shí)最合適。

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)填完成時(shí)態(tài),故可排除B和C;根據(jù)句意,空格處填現(xiàn)在完成進(jìn)行時(shí)比填現(xiàn)在完成時(shí)更合適,因?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)行時(shí)才能更好地表示從過去一直持續(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。表示從過去某個(gè)時(shí)間開始一直延續(xù)到現(xiàn)在的動(dòng)作,要用現(xiàn)在完成進(jìn)行時(shí)。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ù)工作四個(gè)小時(shí)導(dǎo)致我們現(xiàn)在很累了,所以用現(xiàn)在完成進(jìn)行時(shí)比較合適。