I( ) there for three years. A went B have C haven't been Dwas

如题所述

选C
看句子结构
I是主语,haven't been是谓语,there是宾语,for three years是时间状语。结构完整。时态是现在完成时。
意思是:我3年没去那里了。
如果选D,was是系动词,那么后面应该有表语,表语一般都是名词、代词等充当,还要考虑句子含义是否符合逻辑,而这里的there明显不可能是表语,你想想看,如果是was那么久翻译为“我不是那里3年了”,通顺吗?所以D是错的。追问

David has been in the army for three years.(现在还在部队里)
David was in the army for three years. (现在不在部队里了)

追答

所以啊,要看句义。
你是不是加了个否定词就不理解了?虽然肯定句和否定句翻译起来差很远,其实是一样的思路。

追问

若是was, 我在那儿呆过三年。(现在不在那儿了)
这是语法书的两个例子David has been in the army for three years.(现在还在部队里)
David was in the army for three years. (现在不在部队里了)
因此我认为C、D都行。

追答

想了一下,我也觉得CD都行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-01
呃,C应该是have been 吧追问

D为什么不行?表现在不在那儿。答案为C而且就是否定。

追答

我错了,没细看,是D……

追问

答案为C

追答

囧(当我晕了)!!!!我懂了,是我已经有三年没去那儿了。was表示瞬间,have/haven't been才是持续状态,for three years是一段时间,所以选C
之前真心错了,抱歉……O///O

第2个回答  2012-02-29
答案为C,因为有for three years 的意思是已经过了三年了、应首先考虑for意思,如果不是因为等一些意思,而且它一般出现在现在完成时里出现,所以时态应为现在完成时、而在A、B、C、D中,went是瞬间动词、have在这不做动词、was是系动词且表瞬间、haven't been 符合现在完成时的构成 have/has done,故选 C 。
第3个回答  2012-02-01
C