问一道四级英语选择题

来源:百度知道 编辑:UC知道 时间:2024/06/22 08:41:39
All the flights( )because of the snowstorm,we had to take the train instead.
A.were canceled B.had been canceled C.having canceled D.having been canceled
答案是D,我不知道为什么不是选B,请解释一下,详细的解释一下,谢谢。

正确答案是D。

1. 关键:前后之间用逗号隔开,但是却没有用连词连接。
这说明这不是由两个独立句子构成的并列句,而是单个句子。
而且逗号前的结构其主语all the flights和句子主语we又不同,所以前面是个独立主格结构,它在句中做(原因)状语。

2. 独立主格结构的构成:独立主格结构,句子。
详细一点可写成:(非谓语动词的)主语+非谓语动词形式,句子。
也就是说all the flights后面不能用动词的谓语形式,而是非谓语形式。
如:His father being ill, he had to stay at home.

3. 独立主格结构语法较为复杂,楼主请参看我的另一回答:
http://zhidao.baidu.com/question/61395823.html

4. 之所以不选B,就是因为all the flights had been canceled because of the snowstorm已经是个完整的独立句子,而不是独立主格结构了。
即had been canceled在句中做了谓语,而不是非谓语形式。
除非改写成下列句子才是正确的:
1)All the flights had been canceled because of the snowstorm, and/so we had to take the train instead.
或2)Because all the flights had been canceled because of the snowstorm, we had to take the train instead.

5. A were canceled 也同B一样,构成两个独立句,错误!
C having canceled 虽然是非谓语结构,但是用主动形