请帮我分析一个if引导的虚拟语气句子:If you had come to my birthday party,you would have seen Yao.我觉得此句为过去时的虚拟语气,不懂为什么在 had 后面接的是“come”而不是“came”,究竟应该是哪个?还是都可以?

问题描述:

请帮我分析一个if引导的虚拟语气句子:
If you had come to my birthday party,you would have seen Yao.
我觉得此句为过去时的虚拟语气,不懂为什么在 had 后面接的是“come”而不是“came”,究竟应该是哪个?还是都可以?

只能用had come,不能用had came
这里had come是过去完成时态,它的的结构为had done即had +动词的过去分词
came是come的过去式,come的过去分词和动词原形一样都是come.
上次回答主要分析了句子结构,没有回答后边的 “究竟应该是哪个?还是都可以?”这次补充一下。:-)

这里if 从句说的是对过去情况的虚拟。
对过去情况的虚拟语气用法是这样的:if ..had done..., you would/should/could/might have done
if从句用的是过去完成时,主句用现在完成时。
回过头看这个句子, 这里的come不是动词原形,而是动词的过去分词形式。(come-came-come)
所以这里用的是had come

come一般式 came过去式 come 过去分词
该句的确为过去式的虚拟语气,主句用would should might could have done,从句用had done
而come的过去分词done 形式为come。
你只是没有搞清楚come的形式变化,以为come是原形,其实它应该是come的过去分词

用到的是完成时,完成时就是have/has/had+done,这个句子里面的done就是come,而come的三种形式是come-came-come。

你觉得此句为过去时的虚拟语气,是对的.
come 对,是come 的过去分词.came 是 come 的一般过去时,此句中不能用.
即 had come 对;had came 错.
原型 一般过去时 过去分词
come came come