I knew he was in. I think he had to have heard the knock.
请问上面的句子对吗? have to可后接完成式表推测吗?
Have to 不能接完成式表示推测,只有在接be动词的现在时才可以,而且仅表示对现在和将来的推测,不能表示过去。网友问题句指的是过去。曹老师提供的字典例句也都是be动词的现在时不定式形式。柯林斯字典没有把这个问题说完整。不是be 动词的情况下,have to 不用来表示推测。我不知网友的例句是哪里看来的。根据我的语感,这个例句有误,had to have have heard 似乎没见过这种用法。应该改为must have heard. must 在不跟be 动词的情况下可以用来表示对过去的推测。如果表示现在的推测,也习惯上和be 动词连用。还有一点要注意,have to 表示推测的用法一般不能用于第二人称,我想这也是很多语感差些的人意识不到的。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!