初二英语现在完成时和现在完成进行时的区别

希望能把语法点讲的细一点。。。
有练习题的话就更好了!!!
多谢!!!

区分have done和have been doing,我们需要从两个方面来讨论:
一、完成时态和完成进行时态本身意义的差别;
二、要结合动词的不同延续特点。首先我们来看两种时态的意义差别

两者根本区别是:完成进行时强调动作持续的过程(emphasis on duration),完成时强调动作的结果或成就(emphasis on achievement)。具体来讲,现在完成进行时have been doing强调的是在一段时期内某项活动的持续性,强调的是动作本身。现在完成时have done则是强调动作产生的结果或取得的成就,而不是动作本身。二者的这种区别我们从下面的这些例句可以很好地领悟到: (2) a. My hands are very dirty. I’ve been painting the house. b. I have painted the house green. The house was white, but now it’s green.

思维分析:
句a中have been painting表示painting动作一直在持续,活动还没有结束,所以才有my hands are very dirty这样的现状。句a意思是“我的手很脏,我现在一直在给房间刷漆”。
句b中have painted表示painted动作已经结束,而且动作导致的结果是the house was white, but now it’s green房间现在是绿色的了。

现在完成时表示动作业已完成, 而完成进行时却不一定如此
I’ve made a cake. 我做了一个蛋糕。(已做好)
I’ve been making a cake. 我一直在做一个蛋糕。 (不一定做好了
She’s painted a picture. 她画了一幅画。(已画好)
She’s been painting a picture. 她在画一幅画。(可能还没画好)

强调时间长度用完成进行时比较好: I’ve been coughing all night. 我咳了一整夜。(比I’ve coughed all night. 更能强调咳得久)
All the time she’s been sitting there in silence. 她一直静坐在那里。
All these years we’ve been trying to get in touch with him. 这些年来我们一直在设法和他联系。

许多静态动词都只能用于完成时而不能用于完成进行时:
I’ve known that for a long time. 这事我已经知道很久了。
The strike has lasted six months. 这次罢工已经持续了6个月。
Nobody has seen him since last week. 从上周起就没人见到过他。
raise in salary all the time. 他一直盼着加薪。
但当意思发生转变时也可能用于完成进行时:
I’ve been thinking of doing so for a long time. 我好久以来一直想这样做
。Tom has been seeing about a work permit for you. 汤姆一直在设法帮你取得工作许可证。
有少数动词用两种时态都可以,意思差别不大,如:
They have been working very well this term. 这学期他们学习很好。 They have worked very well this term.
It has been raining for two hours. 下了两个小时的雨。 It has rained for two hours.
望采纳 祝学习进步 O(∩_∩)O~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-17
1. 现在完成进行时和现在完成时皆可表示动作对现在产生的结果,但前者所表示的结果是直接的,而后者所表示的则是最后的结果。如:
  We have been cleaning the classroom.(a)
  We have cleaned the classroom.(b)
(a)句可译为“我们打扫教室来着。”其直接结果可能是:我们身上都是灰。
(b)句可以译为“我们把教室打扫过了。”其结果是:现在教室很清洁,可以用了。
又,(a)句表示教室刚刚打扫过,(b)句则可能表示教室是昨天打扫的。
2. 现在完成进行时有时有延续性,现在完成时往往没有。如:
  They have been widening the road.(a)
  They have widened the road.(b)
(a)句的意思是他们在加宽马路,但尚未完工。
(b)句的意思则是已完工了。有时现在完成时有延续性(如一些属于持续体的动词),但无临时性质。如:
  Mr. Smith has been living in London since 1978.(a)
  Mr. Smith has lived in London since 1979.(b)
(a)句有“史密斯先生在伦敦久居”的含义,(b)句则没有。
3. 现在完成进行时往往表示动作在重复,现在完成时则常常不带重复性。如:
  Have you been meeting her lately?(a)
  Have you met her lately?(b)
(a)句有“经常相会”之意,
(b)句则没有。(b)句如与often,every day等时间状语连用,当然也表示动作在重复。
4. 现在完成进行时比较生动,有时含有明显的感情色彩,而现在完成时往往只说明一个事实,一种影响或结果,平铺直叙,没有什么感情色彩可言。如:
  What have you been doing?(a)
  What have you done?(b)
  (a)句表示惊异。(b)句只是一个问题。
下面还有一例,颇为有趣:
  Who's been eating my apples?(a)
  Who's eaten my apples?(b)
(a)句有强烈的感情色彩,表示愤怒不满,
(b)句只是希望回答的一个问题。
又,(a)句兼有进行时态,所以有“苹果未被全部吃光”的意思,
(b)句是完成时态,说明“苹果一个不剩了”。本回答被网友采纳
第2个回答  2013-05-18
(1) 现在完成时可以表示一个已经完成的动作,而现在完成进行时则表示一个正在进行的动作:

I have read the book. 我读过这本书。

I have been reading the book. 我一直在读这本书。

【注】有少数动词(如work, study, live, teach, stay等)在表示持续一时间时用这两种时态含义差不多(只是用现在完成进行进更强调动作的持续性):

How long have you worked [been working] here? 你在这儿工作多久了?

I’ve lived [been living] here since 1988. 自1988年以来我就一直住在这儿。

(2) 现在完成时通常只陈述事实,而现在完成进行时还可表示一种感****彩:

I have waited for two hours. 我等了两小时。(陈述事实)

I have been waiting for two hours. 我等了两个小时。(等得好辛苦)

(3) 现在完成进行时通常用来谈论较短暂的动作或情况,若要谈论时间延续较长的动作或情况或永久性情况,则通常用现在完成时:

He has lived in Paris. 他(一直)住在巴黎。

He has been living in Paris. 他(目前)住在巴黎。(表暂时性)

(4) 不用于进行时态的动词通常也不用于现在完成进行时,但它们可以用于现在完成时:

I’ve only known her for two day. 我认识她刚刚两天。

They’ve been married for twenty years. 他们结婚已二十年了。

The war has lasted for a long time. 这场战争持续了很长时间。

(5) 现在完成进行时不用于被动语态,若要用可用现在完成时的被动语态代替:

The house has been painted for a month. 这房子已漆了一个月。

The problem has been studied for five days. 这个问题已研究了五天。
相似回答