Đáp án là D
Trong câu có dấu hiệu thời gian là “By the time + mệnh đề”, thì mệnh đề chính dùng thì tương lai hoàn thành thể hiện hành động sẽ hoàn thành tại thời điểm đó trong tương lai. By the time the train arrives, we will have waited for two hours = Bằng thời điểm tàu đến nơi, chúng ta sẽ đợi được hai giờ.