He __ for three hours. A。has bought it B. has received it C.has got here D.hasn't come here 答:不知道是哪个菜鸟老师出的谬题。没有一个正确答案。 析:本题似乎是考查现在完成时的延续性用法。而前三项buy sth. receive sth. get somewhere=arrive somewhere 都 是短暂性或者说是结束性动词。可用于现在完成时的结束性用法。如没有for three hours, 则ABC皆可。意为: A他已经买了。 B他已经收到了。 C他已经到了。 所以用排除法得D 然而D是一个错误的题句! 我估计出题者是受了not ...until 句式的影响,作了错误的迁移。我们知道, till, until 状语,主句中的谓语动词也是必须延续性的如: He worked till 12 o'clock last night. work 工作可以一直延续到12点。 但是否定的结束性动词表示一种状态,也可以与until 状语连用如: He didn't go to bed until 12 o'clock last night. 没上床是状态,可以延续到12点结束。 注意,主句不用现在完成时。 出题者以为hasn't come here 与didn't go to bed 类似,表状态,可以延续。 殊不知,这样的题句是不符合逻辑的! 试译:他还没有到这里已经有三个小时了! 哦,可能我想多了,出题者并不是受not 。。。until...的影响。而是受本身有些结束性动词的否定式可以用于现在完成时延续性用法的影响而造出这个题句来的: We haven't seen each other for ages. Sky造 的两个句子: 例:I haven't left here for 3 years. I haven't heard from him for 3 weeks. 也是可以的。没有听到他的消息有三个星期了。可以说,三周前有过一次他的消息,然后没有了他的消息,这种状态延续到现在已经有三个星期了。合理。 前一句也还可以。三周前发生过离开这里的动作。然后回来,就一直没有发生过再离开这里的这个动作。这是一种状态,这个状态(也就是呆在这里)一直延续至今,有三个星期了。 然而He hasn't come here for three hours. 却是不符合语言逻辑的。 一般说:He hasn't come here yet. 他还没有来。就是到现在还没有来这里。可能在路上,也可能在家里。 但要说:有三个小时了,请问是什么状态延续了三个小时呢?从什么时候算起呢?如果是他在家,可能从前天晚上开始,他都一直在家呆着!