请教一道非谓语动词方面的英语题原题:—---twice,he didn't want to try again.A:to have failedB:having failedC;failedD:having been failed我不理解为什么不选AAB我认为都可以表示动作先于谓语发生TO have done 也可以表示动作先于谓语发生例如;I am sorry to have kept you waiting.我很抱歉让你久等了,这个句子也没有表示将来啊

问题描述:

请教一道非谓语动词方面的英语题
原题:
—---twice,he didn't want to try again.
A:to have failed
B:having failed
C;failed
D:having been failed
我不理解为什么不选A
AB我认为都可以表示动作先于谓语发生
TO have done 也可以表示动作先于谓语发生
例如;I am sorry to have kept you waiting.
我很抱歉让你久等了,这个句子也没有表示将来啊

这里是现在分词作状语,表示的是原因。C和D显然是不符合语法规则的,其实这句话很简单,我改一下你就明白了,如果我们单独看前半句是找不到主语的,主语其实就是后面的he,A选项表示的是在将来的某个时候失败其实就是这事还没有发生啊,怎么讲:我们来看这个结构to+动词原型表示的是目的,所以排除A选项,选B是因为它是一种语法结构,动词的现在分词放在句首做状语啊,我把句子改一下你就清楚了,He didn't want to try again for having failed twice。这里for 就可以理解成前面的原因状语。

句子间无连词,前面的是个现在分词短语,代回后面刚好符合

1.having done在这里表原因,有伴随意味.to have done没有这个意义上的用法.
2.I am sorry to have kept you waiting.
be/feel sorry to do sth.固定用法,并非表示to后的动作一定是已完成的或未完成的.
另一方面,这句话能反过来说成 To have kept you waiting,I am sorry吗?
我认为不太好.
应该是Having kept you waiting, I am sorry.

having failed通常是指发生过的事或正在发生的事,to have failed 是指未发生或常发生的事