If he _____(know) that,he would tell you.

问题描述:

If he _____(know) that,he would tell you.

knows.
首先,原句不是虚拟语气。
为什么呢?因为如果这个句子是虚拟语气,句子只能这么说:
If he had known, he would have told you.
这里,后半句之所以要用现在完成时 have told, 是因为”他告诉你“这个动作在说这句话的时候就已经完成了,然而这个句子要表达的情景与现实恰恰相反,所以前半句 if 后面的时态要退后一个才能表示虚拟的语气,也就是说,从现在完成时退后到过去完成时,所以前半句要用 had known。
再举一个虚拟语气的例子给楼主比较:
If you had done the training, you wouldn't have made the mistake.
如果你早完成了培训,你就不会犯那样的错了。
其次,原句中的 would 并不是用来表示过去时,而是作为情态动词,就像 Could I help you? 并不是 Can I help you 的过去时一样。这里的would 只是表示委婉.
所以答案是 knows.

knew

knew 虚拟语气

knows

knew,主句是过去将来时,从句用一般过去时

had known

known