一道高中英语单选题

—Why didn’t you answer the phone last night?
—I when you called
A.had to have slept B.must be sleeping
C.must have been sleeping D.must have slept
答案是B,我认为是C。是不是答案错了呢。请大家帮解释。谢谢大家!

问题补充:must have done 表示较肯定地推测过去做过某事,而must have been doing 和现在完成进行时无关,在这里是过去完成进行时,推测过去某个动作以前一直在做另外个动作,在题目中表示在你打电话前,我一直在睡觉,是吗?
还有,must be doing除了表示现在肯定在做某事,还可以表示过去某刻正在做某事吗?

比较让我纠结的是,我之前搜索答案,B,C都有选,请大家再给点意见

1. 答案肯定是B,而不能选C.

2. 解释:
1)楼主对现在完成进行时的使用条件和语境把握不够。
2)答语中含有一个时间状语从句when you called,这是一个明显的时间刻,而不是一段时间。
所以这种时间状语(从句)限定了句子主句时不能使用现在完成时/现在完成进行时的。因为后面两种时态必须强调是发生在一段时间内,而不能强调发生在过去的某个时刻。这时,句子/主句应该使用一般时态或进行时态,而不能用于完成时态。
如:I lost my bag yesterday. 不能说:I've lost my bag yesterday.
再如:I was doing my homework at 9:00 last night. 不能说:I've been doing my homework at 9:00 last night.
3)至于答案B为什么正确,楼主已给出正确解答,我就不予赘述了。
4)must be doing sth既可以表示对现在正在进行的动作的推测,也可以表示过去某时刻正在进行动作的推测,而且must have been doing sth这个结构在语法上是不存在的。

参考资料:原创回答团(第159号团员)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-10
我觉得是B...

(你打电话的时候)我一定是在睡觉。。。。

还有,must be doing除了表示现在肯定在做某事,还可以表示过去某刻正在做某事吗? 当然可以。。

比如:
A: Ai.. I broke my leg yesterday when playing the football yesterday.

B: You must be very careless. 你一定是太不小心了。。。
第2个回答  2010-05-10
你好,作为一名高三英语教师,我要很负责地告诉你:选B,答案没错。 回答者回答说“当时一定是正在睡着”,是对过去某一时间点(when you called)的肯定猜测,用must be doing 回答。 而C项是持续性行为,接的是延续时间段,与题中when you called 这一时间点不符。改一下题目:如后面改为when the phone was ringing则选C,因为是was ringing是表示在持续响着;当然,如果用rang的话又要选B了。
第3个回答  2010-05-10
C
must 推测现在:must + do;must be doing。
must 推测过去:must + have done;must have been doing(表示当时正在做)。不能理解为现在完成和现在完成进行时
第4个回答  2010-05-10
是的,应该是C, 表示对过去的猜测。

选项B表示的是对现在正在作的事情的猜测。
相似回答