求解释这道英语题啊 语法分析啊,!! 谢谢!!

i would have called you ( )
A if i kenw your telephone number
B but i had forgotten your telephone number
Cbut i forgot your telephone number
Dif i had remember your telephone number
这道题为什么选C呢?

答案:C(如果D是if I had remembered your telephone number,则D也正确)

解释:此题考查虚拟语气
1. I would have called you意思是“我(在过去的某个时候)本来就会打电话给你”,隐含对过去动作的虚拟,即过去的实际情况是“我没有给你打电话”。
2. C用了but,即阐述过去当时的实际情况,所以用一般过去时,为正解。
3. 如果用if引导的条件状语从句,则if从句也表示对过去动作的虚拟“如果我(当时)记得你的电话号码的话”。
则根据虚拟语气的语法,if从句使用过去完成时,所以说如果D是if I had remembered...的话,则也是正确答案。此时主句的谓语动词使用“would/could/might/should + have done sth”,也符合题中的I would have called you.追问

那C有连接词but 应该是两个句子,那这个就不是虚拟语气咯?

追答

这就是所谓的含蓄的虚拟语气,即不出现if的条件状语从句,而只是直接出现主句I would have called you.
提醒楼主,做题不是死套语法,要考查句意。

此题but后明显是描述当时的事实即I forgot your telephone number,它可以等同并换写成虚拟的if从句:If I hadn't forgot your telephone number,这样刚好对应前面的主句:I would have called you.
即此时该题可以换写成:
I would have called you if I hadn't forgot your telephone number.

也就是说,此题前句是虚拟,but后句不是虚拟,而是描述事实,但都是对过去动作/行为的陈述。

参考资料:英语牛人团

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-24
Cbut i forgot your telephone number
因为前一句i would have called you 是虚拟句,表示对过去的虚拟。意思是“我过去本可以给你打电话但愿是我忘记了你的电话号码”。前一句的过去表示后一句的动作“忘记”也发生在过去。所以用过去时。
A if i kenw your telephone number也是虚拟。表示如果现在我知道你的电话号码。显然与前一句不符。
B but i had forgotten your telephone number表示过去的过去,也不符。
Dif i had remember your telephone number也不符。
第2个回答  2012-03-24
翻译:我会给你打电话的,但我忘了你的电话号码
这是一个 与过去事实相反 的 虚拟语气
从句:If 主语+had+done   
主句:主语+should/would/could/might+have done

选项中带有if的句子不符合这个结构,所以只能换一种说法
A 应改为 if i had known your telephone number
D 应改为 if i had remembered your telephone number

不明白的话,欢迎继续追问O(∩_∩)O追问

那C有连接词but 应该是两个句子,那这个就不是虚拟语气咯?

追答

是虚拟语气,再比如:
I would have told you all about the boy's story, but you didn't ask me.
我本来会告诉你这个小男孩的故事,但是你没有问我。

教学相长欢迎继续提问O(∩_∩)O

第3个回答  2012-03-24
“我原本想要打给你。。。。。。”
虚拟语气表示“本要。。。(却没有。。。)”时,用would have done
第4个回答  2012-03-24
would have,虚拟语气标志,意思是我本该call你,但是我没call,那么后面肯定是分析为什么没call,排除a,d ,看b,d.然后就有点难说了,这个是错综虚拟,应该选c,