Thank you very much indeed. If it had not exactly for your advice I really _________ what I should have done.
A. don’t know          B. didn’t know          C. hadn’t known       D. wouldn’t have known

【分析】此题容易误选C或D,认为此句既然为虚拟语气语境,当然应选择与虚拟语气有关的答案。此句的句意是“真的是太感谢你了。要不是因为你给我建议,我就不知道该怎么做了。”句中 if it had not been for your advice 和 what I should have done 用了虚拟语气,表示与过去事实相反的假设,但是句中的“我不知道”也要用虚拟语气吗?换句话说,“我不知道”是与事实相反的假设吗?显然不是。所以它不能用虚拟语气,应用陈述语气(I don’t know),表明这是事实(表达自己对对方的感谢之意)。请再看几个类似的例子:

(1) “It’s a long time since we last heard from her.” “Yes, how I wish I knew how she is getting along.” “我们很久没收到她的来信了。”“是啊,我多希望知道她现在过得怎么样。”
按照英语语法,I wish 后接宾语从句时,从句谓语要用虚拟语气,所以其后的 I knew 也的确用的是虚拟语气,但是I knew 后的宾语从句用不用虚拟语气呢?不用。句中“我多么希望知道”,说明现在并不知道,即现在“知道”并不是事实,只是一种想法,故用了虚拟语气;但是“她现在过得怎么样呢?”则是她现在的实际情况,是事实,故用陈述语气。

(2) I wish I knew what is happening. 但愿我知道现在正在发生什么事。
此句I knew 用虚拟语气,说明现在想知道,但实际并不知道;其后的 what is happening 没用虚拟语气,是因说话者想知道现在实实在在发生的情况,即想知道“现在正在发生什么情况”这一事实。比较下例:

(3) I wish I knew what was happening. 要是我当时知道正在发生什么事就好了。
此句用 what was happening 也非虚拟语气,而是陈述语气的过去进行时态,指过去正在发生的事情。