have 完成时的形式

By the time he arrives in Beljig, we_here for two days. 

A. will have stayed B have been staying C shall stayD. have stayed 

为什么选A而不是选D希望大家拿能给予一些建议(本人英语初学者,莫要过于深奥)

请先 登录 后评论

最佳答案 2020-02-04 16:06

   如果By the time 引导的句子用一般现在时,主句应该用将来完成时(如果是 be 动词,用一般将来时);如果By the time 引导的句子用一般一般过去时,主句应该用过去完成时(如果是 be 动词,用一般过去时)。例如:

    By the time you come back, I'll have done my homework.在你回来以前,我的作业会都做完的。(摘自赵振才编著:《英语常见问题解答大词典》增订版第五版 p.225)

    By the time I got to the station the train had already gone.我到达火车站时,火车已经开走了。(同上)

    I'll be in bed by the time you get home. 等你到家时我已经上床睡觉了。/ By the time that the guards realized what was happening, the gang were already inside the bank. 等到保安明白过来出了什么事时,劫匪已经进了银行。(摘自《牛津英语用法指南》第四版414.1)

请先 登录 后评论

其它 1 个回答

曹荣禄  
擅长:动词用法,句法问题

时间状语中,arrives为一般现在时,并不是表示现在到达,而是用一般现在时表示将来,到达的动作将来才会发生。所以主句应该用将来完成时。这就是为什么选A。

请先 登录 后评论
  • 0 关注
  • 1 收藏,2643 浏览
  • Goofy 提出于 2020-01-01 15:32

相似问题