He ____ sleeping pills last night.He didn't wake up till lunch time.A.must have taken,B shouldhave taken C would have taken D had surely taken

问题描述:

He ____ sleeping pills last night.He didn't wake up till lunch time.A.must have taken,B should
have taken C would have taken D had surely taken

这题选A。不知LZ是具体对哪里有疑惑,首先说说这句的意思是:他昨晚一定吃了安眠药了,(因为)他一直到午饭时分才醒。后一句是讲事实,前一句是对更早之前发生的事情的推测,虚拟语气表示推测是must have done sth,而且由于第二句事实陈述中动词用的是一般过去时,那么前一句虚拟语气的时态就应该是过去完成时had done,但had前边如果有情态动词must、should、或would,就要使用原形have。这个其实不用多解释,因为四个选项的时态都是正确的。B的话,should have done sth表示“本该做某事而却没有做”,有懊悔或谴责的意味,比如说“我昨天考试考得很差,我本该好好复习的”,放在题中这句里就意思不对了;C的would have done sth跟B的意思有点类似,但是也有区别,这个用法通常用于事发时不在场、事后单纯的设想,比如说“如果我是昨天目击那场车祸的人,我就会把我所看见的告诉警察”。D不是虚拟语气,是很肯定的陈述句,但是一个人睡到中午才起来不等于他昨晚必然吃了安眠药,他睡太久也可能是别的原因所导致,所以这里我们只能用虚拟语气表达自己的推断,而不是用D这种表达去陈述已发生的事实。

He 【A must have taken】 sleeping pills last night.He didn't wake up till lunch time.
A. must have taken, B should have taken C would have taken D had surely taken
一定吃了 本应该吃 过去完成时(时态不对)
从后面一句“直到午饭时他才醒来”推测可知,他昨晚肯定吃了安眠药。

【英语牛人团】倾情奉献,可追问,满意请记得采纳哦,谢谢啦!

这句话的意思是他昨晚一定吃了安眠药,到了吃午饭的时间还没有醒来.
从后面一句“直到午饭时他才醒来”推测可知,他昨晚肯定吃了安眠药.
所以选择A