一道困扰了很久的单项选择题!

来源:百度知道 编辑:UC知道 时间:2024/05/15 15:00:22
By the time you get to Beijing tomorrow, I ________ for Shanghai.
A) am leaving
B) should have left
C) will leave
D) have already left
答案是B 为什么不选其他的?

by the time 是用在完成时里。tomorrow 表明是在将来完成时。
A 是现在时态。
D 是现在完成时。
C 虽然是将来时,但不是完成时。
B 也表示对将来的假定和虚拟。本应该怎样,

leave for...离开去某个地方
再看前面的句子,到明天你要到北京
那么后面离开去上海就没有实现
should have done表示本该干什么(最后没干成)。

这个句子要表达的意思是等你明天到北京的时候,我已经离开此地向上海进发了。A、D都是简单的现在时态,肯定不成。C虽然是将来时态,但由于前面的By the time需要后面用完成时态而否定掉,只有B可以。

题意为“在你到上海之前,我应该到上海去了”
A、时态与句子不符
B、should have left应该已经到的意思
C、By the time确定的时间状态下,不能用将来时
D、过去完成时,与tomorrow的时间状态不同

By the time 用在完成时里,后面看出来是虚拟语气,所以是should have left