独立主格结构什么时候用完成时?

独立主格结构什么时候用完成时?
如这个题:
All flights ______ because of the snowstorm, many passengers could do nothing but take the train.
A)had been canceled B)have been canceled
C)were canceled D)having been canceled
因为风雪,所有航班都被取消,许多旅客别无它法,只得乘火车。(D)

All things ______, the planned trip will have to be called off.
A)considered B)be considered
C)considering D)having considered
考虑了方方面面之后,原来计划好的旅行不得不取消了。(A)
为什么前者要用完成时而后者不用?

第一,当从句的谓语发生的动作给主句造成一定的影响,有了一个结果。如:第一道题可改写成:Many passengers could do nothing but take the train because all flights has been canceled.
第二,当从句的动作先于主句的发生,就要用到having done/having been done.

在第二道题中,all things跟consider是动宾关系(被动),而不存在第一题里的关系。所以不用完成时。
温馨提示:答案为网友推荐,仅供参考