现在完成时和现在完成进行时有什么区别?各自的用法是什么?

问题描述:

现在完成时和现在完成进行时有什么区别?各自的用法是什么?

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)句是完成时态,说明“苹果一个不剩了”.