一道英语语法题,为什么选B不选C?for a whole month 表示的动作不该是持续性的吗?为什么选的是gone?

--- Is Tom still smoking?
  --- No. By next Saturday he ______ for a whole month without smoking a single cigarette.
  A. will be B. will have gone
  C. will have been D. has been going

1)动词 go 可表示 pass a specified amount of time in a particular way or under particular circumstances,即(以特定方式,在特定环境下)经历(一段时间),如例句:
Sometimes they went for two months without talking.有时他们过上两个月也不说话。
2)你所问的句子就是这样,用 go 表示戒烟所经历的时间。
3)的确 go 表示最常用的“去 ”这一意义时,是瞬间行为意义;可是在这儿表示 “经历”,那就是持续性的了,用 for 短语当然可以修饰。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-29
除了表示完成时,have gone其实还是个词组。
have gone: 表示“不见了” “没有”“不这样了”“放弃了”
在这里表示“从下周六他将不这样一个月”

have been是表示完成时
如果用been的话缺少句子成分。been+adj
翻译为“从下周六他将··一整个月”
去掉时态“he go”是完整的,“he is”却不是

请楼主细品一下。本回答被提问者采纳
第2个回答  2011-12-29
1. 应该是C表示延续的状态。
2. 注意本句的短语:go without没有什么也行。是瞬间动词,不能与一段时间的状语连用。
第3个回答  2011-12-29
gone 这个单词在这里不是去了哪里的意思,而是表示他处于那个状态。说他已经戒烟了一个月,go的用法其实是很灵活的, 它还可以表示处于某个状态没有改变的意思
第4个回答  2011-12-29
选 C
by next Saturday 中文意思是“到下周六为止”表达“将来完成的状态”
will+do表示将来时,have done表示完成时,因此将来完成时:will have done
相似回答