【问】 I would have come sooner but I____that they were waiting. A. haven’t known B. hadn’t know C. don't know D. didn't know 在一般的非真实条件句中,表示虚拟语气的谓语动词的时态是相互呼应的。例如: If I had married her,I would have been unhappy. 要是那时我跟她结了婚的话,那我是很不幸的。 但是,上面试题的正确答案为D(didn't know),这是为什么呢? 【答】 首先应弄清这种句型的特点:but或but that引出的分句描述的是真实情况,but前的分句描述的是非真实的情况(假想的情况)。but句所描述的情况阻碍了前面的句子的情景得以发生或实现。换言之,but句的反面意义便是一个虚拟条件(倘若不)。 先看几个实例: 1. Franklin would gladly have spent the rest of his days in quiet study and research. But hewas a very important person now. and the country needed him for public service. 富兰克林本来是会在安静的研究中愉快地渡过他的后半生的,但是他当时是一个非常重要的人物,国家需要他担任公职。 2. We would have avoided making such a mistake,but we didn't follow his sound advice.我们本来可以不犯这样的错误,只是我们没有接受他的忠告(倘若我们接受了他的忠告,我们本来是可以避免这样的错误的)。 3. They might have left earlier,but the car wasn't ready. 要是汽车准备好了的话,他们本可能早点儿离开的。 4. I would have written before but I have been ill.(Yeats ) 要不是我病了的话,我会在此之前写信的。 由这些实例可以很容易理解,为什么在but句中使用陈述语气,而在它前面的句子里使用虚拟语气了。 请做下面的试题: 1. I________ abroad but I had no money. A. would go B. would have gone C. would be going D. will have gone 2. “What happened to the flower I gave you?” “The flower________ well,but I did not water it.” A. would grow B. might grow C. would have grown D. should have grown (参见but that)