1. When Dave left school, he worked for several years in a zoo.

唯一准则答案是:For several years after Dave left school, he worked in a zoo.

我的句子:After Dave left school, he worked for several years in a zoo.

请教老师,我的答案是不是正确?第二,解题人把for several years放置在after之前,意图何在?


4. He did all his work. He went to bed.

He had done [did?] all his work by the time he went to bed.

请教老师除去用had done,能否用did?谢谢老师解说。


这项训练应该是某个教程的课后训练,需要学生学会after和by the time引导时间状语从句的使用方法。

第一句的题句本身有问题,时间状语应该放在地址状语之后,故第一句的题句应改为:

When Dave left school, he worked in a zoo for several years.

根据训练的需要,最简单的正确答案就是直接用after替换when:

After Dave left school, he worked in a zoo forseveral years.

时间状语从句可以放在句末,也可以放在句首。放在句首一方面有强调状语有哪些用途,其次可以承上启下,譬如前面的内容是讲述主语在学校的状况时,状语放在句首则非常自然地过渡到离校后的状况。假如前文不是谈论主语在学校的状况,则时间状语最好放在句末:

Dave worked in a zoo for several years after he left school.

这种训练没有所谓唯一正确答案,教程只给了一个参考答案而已。

其实,教程给出的参考答案是不妥的。逻辑剖析可知,after从句是修饰主句的句子状语,而for介词短语是修饰主句谓语动词的谓体状语。谓语状语可以前置表示强调,但不可以用逗号隔开。而句子状语可以坐落于句末或句首,坐落于句首时,一般用逗号。所以不应该将谓体状语和句子状语同时前置。

假如将for介词短语理解为句子状语,那样after从句则非常可能被理解为是修饰several years的,即这几年是毕业之后的,但未必是紧接毕业时间,可能是毕业后失业了二年,然后才工作了三年。所以会产生歧义。

总之,教程的答案并非最好答案。


He did all his work. He went to bed.

这项训练是需要学生用by the time连接句子。那样你只有一种选择:

By the time he went to bed, he had done all his work.

He had done all the work by the time he went to bed.

by时间状语表示主句谓语的动作在by表示的这个时间之前已经发生。说话人关心的时间是by所表示的时间,所以假如主句谓语是动态动词表示事件意义,则应该用完成体,而不可以用一般体。这个句子用did为语法错误。