B
首先可以排除选项D,由句子可知谓语应选完成时。
其次排除C,英语里没有leave away这种说法(据我所知)。
而句末是for+ 一段时间,这样的情况下完成时的谓语不可以用非延续动词(即瞬间动词),只能用延续动词。left的原型leave是非延续动词,因此排除A,选择B。
补充一下,如果句末是since+一个时间点,同样地,完成时只能选择延续动词。
但如果只是完成时,而没有since或for等时间状语,谓语是可以用瞬间动词的。
举个例子:The chemist has left.
B
因为有FOR所以只能用延续性词!