1 时态辨析: 过去完成or过去完成进行

(答案上说选A,我感觉有歧义,一道选择题,没上下文)

When Alice woke up, she did not know how long she (   ) there.

A. had been lying

B. had lain

请问老师,为什么选a,选b就一定错误吗?这题严谨吗?

我先说一下我的理解:

假设:x(过去的过去) z(过去的某一点) y(过去)

过去完成进行:

X“过去的过去”开始持续到“过去的某一点”(xy之间),可能包括“过去的某一点”z

过去完成:

从“从过去的过去”开始,在“过去的某一点”(xy之间)之前结束,不包括“过去的某一点”z

既然Alice已经醒了,我理解的是,她醒的同时立马坐起来,不再躺在床上,即不包括醒的“过去的某一点”z,所以为什么不选B

如果是Alice醒了,只是睁开了眼,还躺在床上,在这种情况下,我会选A

请先 登录 后评论

最佳答案 2019-02-21 13:33

这位网友对完成体+for时间状语与完成进行体+for时间状语之间区别的理解是错误的。

我换一个动词说明二者之间的区别。以动词live为例。

一个长期居住在某地的一个人说他住在什么地方的时候,live是静态动词表示状态,即live表示的是一种不可预料结束或不会结束的情景。于是他会说:I live in Beijing.

一个美国人被总部派到中国北京的分公司当经历,任期三年。任期届满就会回美国。当此人说他目前住在北京的时候,live就是一个动态动词,live in China就成了一个事件。在事件没有结束以前表示这个事件就需要用进行体,因此此人会说:I am living in China now.

常住北京的当地人说他在北京住了20年了,要用完成体+for时间状语:I have lived in China for 20 years. 他说完话,还会继续在北京住下去。之所以用完成体,是因为他住在北京是个长期状态,是静态意义,排斥进行体,因而也排斥完成进行体。完成体的使用并不影响他还要在北京继续住下去。

任期三年的美国经理在中国住了一年的时候,告诉别人他在北京住了一年了,他会说:I have been living in Beijjing for one year. 之所以用完成进行体,并不是因为他还要在北京住下去,而是因为他住在北京是个会结束而未结束的情景,这种情景持续了一年就要用完成进行体,而不是完成体。

所以,以上二个例子中have lived in Beijing for 20 years和have been living in Bejing for one year 表示的都是还要继续持续下去的情景。二者的区别不再是否还要持续下去,而是现在以前持续的是长期的状态,还是未结束的事件。是否现在以后还会持续与二个体的选择没有任何关系。

我们可以继续假设:

一个在北京住了50年的老北京人,儿子在美国定居了,现在儿子将孤寡老父亲接到美国去永久居住,不再回北京了。这位老人买了房子和家具,在北京机场登上去美国的飞机的时候,最后看了北京一眼,恋恋不舍的说,I really don't like to leave Beijing. I have lived here for 50 years. 长期的状态在说话时或说话时之前不久结束了。截止说话时这个状态持续了多久要用完成体,而不能用完成进行体。

那位美国经理三年任期届满回国时,在北京机场登机的时候说,I have been living here for 3 years. I really like it here. 之所以用完成进行体,并不是因为他还要继续在北京住下去,而是因为他在北京的居住是一个动态事件,动态事件在说话时之前持续了多久要用现在完成进行时表示,与事件是否结束无关。

所以,以上二个例子中的住在北京都结束了,不再持续下去。长期状态的截止说话时持续的时间要用完成体,事件截止说话时间持续的时间要用完成进行体。

由此可知,完成体+for时间状语和表示的是状态或习惯持续到说话时有多久了;完成进行体+for时间状语表示的是事件持续到说话时有多久了。决定体的使用的不是是否还会继续下去,而是此前持续的是状态、习惯,还是事件。

回到网友的句子。lie是介于动态和静态动词之间的灰色地带,有时表示状态,有时表示事件。一个长期因病卧床不起的人lie in bed就是一个状态。一个累了躺在床上休息的人lie in the bed就是一个事件。截止说话时状态持续多久用完成体+for时间状语;事件截止说话时持续了多久用完成进行体,与状态或事件在说话时是否结束无关,可以刚结束也可以没有结束还会继续下去。网友的句子lie表示躺在床上睡觉,是一个事件,所以应该用完成进行体。所以参考答案给的是现在完成进行时。

请先 登录 后评论

其它 2 个回答

刘永科   - 教育出版集团英语总顾问 & 英语系列图书主编
擅长:语法理论,语言学,文化背景

我同意网友的看法,两个答案都可以。

其实,网友不用考虑得这么复杂。

lie 是一个表示持续意义的“静态动词”,它是一个延续性动词。这类动词的完成时和完成进行时,其实区别不大。网友纠结的地方是:他醒来时是不是还在躺着,答案是肯定的。

过去完成进行时或过去完成时,都可以表示“还在躺着”。逻辑分析:人睡觉醒了的时候,也是躺着的时候,不可能起床后才醒。

She has lain in bed for a week.=

She has been lying in bed for a week.(更常见)

她已经卧床一周了。

I have waited for you for two hours. =

I have been waiting for you for two hours.(更常见)

我已经等你两小时了。

我认为,网友的句子,用过去完成进行时较好,用过去完成时也不错。


请先 登录 后评论
zbr1016.
ab,都可以。但我觉得网友对姿态动词过去完成的理解有一点误区,一般完成体并不要求"在说话人关注时间点之前就结束",可能是刚结束也可能延续下去。
请先 登录 后评论
  • 3 关注
  • 2 收藏,3149 浏览
  • 飞飞 提出于 2019-02-19 01:11

相似问题