(高三)
一You look tired. What's the matter?
一I _____ on a sofa because my grandparents have been here to spend the weekend. I can't have a good sleep.
A. slept B. am sleeping C. was sleeping D. have slept
标准答案为B,现在进行时态在这里表示‘现阶段正在进行的动作’,没有任何问题。
我的疑问是,为什么不能用现在完成时态来表示从过去一直持续到现在的动作,如果用现在完成时态(I have slept on a sofa),不是正好与‘my grandparents have been here’相匹配吗?
学习完成体,要区分事件完成体、状态完成体和习惯完成体,不能笼统地谈论完成体。
现在完成时表示事件意义时,该事件发生在不确切的过去时间,或过去事件的结果在现在依然有影响。
现在完成时表示状态或习惯意义时,通常与持续时间状语连用,表示该习惯或状态持续至今有多久了或从什么时候持续到现在。
sleep为动态动词,既可以表示事件,也可以表示习惯(长期习惯为静态意义,临时习惯为动态意义)。
I slept for only two hours. 事件意义。
I usually sleep on the floor. 长期习惯。
I am sleeping on the sofa these days because my parents are here with us for holidays. 临时习惯(动态意义,没有结束就要用进行体)。
长期习惯持续到说话时,要用现在完成时+持续时间状语表示:
I have slept on the foor for a few years. (持续时间状语为必具性的)。
临时习惯持续到说话时,要用现在完成进行时,持续时间状语为选择性的。
I have been sleeping on the sofa (for a week).
你的句子中,sleep并不是事件意义,而是临时习惯意义。要么用现在进行时表示一个临时习惯在说话时存在着(还要继续下去,会结束,但尚未结束)。要么用现在完成时进行时表示一个临时习惯持续到说话时,可能刚结束,可能还会持续下去,重点在于持续到现在。
D 并没有用现在完成进行时,而用了现在完成时,故为错误。所以只能选B。如果D改为现在完成进行时,就也是正确的了。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!