第十二章

🌀 虚拟语气

If 条件句虚拟 · wish 虚拟 · 特殊虚拟结构 · 情态动词 + have done

📌

考点一:If 条件句中的虚拟语气

🔹 三种虚拟条件句

虚拟语气用于表示与事实相反或不太可能实现的假设。

假设类型If 从句(条件)主句(结果)举例
与现在事实相反 If + 主语 + 动词过去式(be 用 were) 主语 + would/should/could/might + 动词原形 If I were you, I would study harder. 如果我是你,我会更努力学习。
与过去事实相反 If + 主语 + had done 主语 + would/should/could/might + have done If I had studied harder, I would have passed the exam. 如果我当时更努力学习,我就通过考试了。
与将来事实相反 If + 主语 + 动词过去式 / should do / were to do 主语 + would/should/could/might + 动词原形 If it should rain tomorrow, we would stay at home. 万一明天下雨,我们就待在家里。

🔹 虚拟语气时态对照表

假设类型从句时态主句时态
与现在相反一般过去时(be → were)would/could/might + do
与过去相反过去完成时(had done)would/could/might + have done
与将来相反过去时 / should do / were to dowould/could/might + do
⚠️ 易错提醒

虚拟语气中 be 动词一律用 were:
不管主语是第几人称,虚拟条件句中 be 动词都用 were。
✅ If I were a bird, I would fly to you.
❌ If I was a bird, I would fly to you.

虚拟语气 vs 真实条件句:
真实条件句(主将从现):If it rains tomorrow, I will stay at home.(可能发生)
虚拟条件句:If it rained tomorrow, I would stay at home.(不太可能发生)

混合虚拟:从句和主句可以指不同的时间。
If I had taken your advice(与过去相反), I would be better now(与现在相反).
如果我当时听了你的建议,我现在会更好。

💡 速记口诀

虚拟语气往后退一步:
与现在相反用过去时,be动词一律were;
与过去相反用过去完成时,had done配have done;
与将来相反用过去时/should do/were to do;
主句统一would/could/might,从句时态要记牢。

📝 例题

选择正确答案:

1. If I ______ you, I would accept the offer.(am / were)

2. If he ______ harder last year, he would have passed the exam.(studied / had studied)

3. If it ______ rain tomorrow, we would cancel the trip.(should / will)

4. If I had left earlier, I ______ the train.(would catch / would have caught)

1. were — 与现在事实相反,be 动词用 were。

2. had studied — 与过去事实相反,从句用过去完成时。

3. should — 与将来事实相反,从句可用 should + 动词原形。

4. would have caught — 与过去事实相反,主句用 would have done。

📌

考点二:wish 引导的虚拟语气

🔹 wish 后的宾语从句虚拟

wish 表示"但愿,希望",后面的宾语从句用虚拟语气,表示与事实相反的愿望。

愿望类型从句时态举例
与现在事实相反 一般过去时(be → were) I wish I were taller. 我希望我更高一些。
I wish I knew the answer. 我希望我知道答案。
与过去事实相反 过去完成时(had done) I wish I had studied harder. 我希望我当时更努力学习了。
I wish I hadn't said that. 我希望我没说过那句话。
与将来事实相反 would / could + 动词原形 I wish it would stop raining. 我希望雨能停。
I wish I could go with you. 我希望我能和你一起去。

🔹 if only 引导的虚拟语气

if only 意为"要是……就好了",用法与 wish 相同,语气更强烈。

  • If only I were a bird! 要是我是一只鸟就好了!(与现在相反)
  • If only I had taken your advice! 要是我当时听了你的建议就好了!(与过去相反)
  • If only he would come tomorrow! 要是他明天能来就好了!(与将来相反)
⚠️ 易错提醒

wish vs hope:
wish 后接虚拟语气,表示不太可能实现的愿望。
hope 后接真实时态,表示有可能实现的希望。
✅ I wish I were rich.(我希望我有钱。— 实际上没钱)
✅ I hope he will come.(我希望他会来。— 有可能来)
❌ I hope I were rich.(hope 不能接虚拟语气)

💡 速记口诀

wish后面用虚拟,hope后面用真实;
与现在相反用过去时,与过去相反had done;
与将来相反would/could do,if only语气更强烈;
wish表达不可能的愿望,hope表达可能的希望。

📝 例题

选择正确答案:

1. I wish I ______ fly like a bird.(can / could)

2. She wishes she ______ to the party last night.(went / had gone)

3. If only I ______ taller!(am / were)

4. I ______ he will pass the exam.(wish / hope)

1. could — wish 与将来相反,用 could + 动词原形。

2. had gone — wish 与过去事实相反,用过去完成时。

3. were — if only 与现在事实相反,be 动词用 were。

4. hope — "他会通过考试"是有可能实现的,用 hope + 真实时态。

📌

考点三:特殊虚拟结构

🔹 suggest / insist / demand 等动词后的虚拟语气

表示"建议、命令、要求"等含义的动词后面的宾语从句中,用 should + 动词原形,should 可以省略。

类型常见动词/形容词
表示建议suggest, advise, recommend, propose
表示要求demand, require, request, ask
表示命令order, command
表示坚持insist(坚持要求)

He suggested that we (should) start early. 他建议我们早点出发。
The doctor insisted that he (should) give up smoking. 医生坚持要他戒烟。
They demanded that the meeting (should) be put off. 他们要求推迟会议。

🔹 It is + 形容词/过去分词 + that... (should) do 的虚拟

以下形容词或过去分词后的主语从句中用 should + 动词原形(should 可省略):

  • 形容词:important, necessary, essential, natural, strange, surprising
  • 过去分词:suggested, required, ordered, demanded, recommended

It is important that everyone (should) attend the meeting. 每个人都参加会议很重要。
It is suggested that we (should) set off at once. 有人建议我们立刻出发。
It is necessary that he (should) be sent to hospital. 有必要把他送到医院。

🔹 as if / as though 引导的虚拟语气

as if / as though 意为"好像,仿佛",后面的从句可用虚拟语气。

假设类型从句时态举例
与现在事实相反一般过去时He talks as if he knew everything. 他说话好像什么都知道似的。
与过去事实相反过去完成时She looked as if she had cried. 她看起来好像哭过。

🔹 would rather 后的虚拟语气

would rather 后接从句时用虚拟语气。

  • 与现在/将来相反:从句用一般过去时。
    I would rather you came tomorrow. 我宁愿你明天来。
  • 与过去相反:从句用过去完成时。
    I would rather you hadn't told him. 我宁愿你没告诉他。

🔹 It's (high/about) time that... 虚拟语气

表示"该是……的时候了",从句用一般过去时或 should + 动词原形(should 不可省略)。

It's time that we went home. = It's time that we should go home. 该是我们回家的时候了。
It's high time that you started working. 你早该开始工作了。

⚠️ 易错提醒

suggest 和 insist 的两种含义:
① suggest 表示"建议"时,从句用虚拟语气(should + do)。
He suggested that we (should) leave early. 他建议我们早点离开。
② suggest 表示"暗示、表明"时,从句用真实时态。
His pale face suggested that he was ill. 他苍白的脸色表明他病了。

① insist 表示"坚持要求"时,从句用虚拟语气。
He insisted that she (should) go. 他坚持要她去。
② insist 表示"坚持认为"时,从句用真实时态。
He insisted that he was right. 他坚持认为自己是对的。

💡 速记口诀

一坚持二命令三建议四要求,should do省should;
insist坚持要求用虚拟,坚持认为用真实;
suggest建议用虚拟,暗示表明用真实;
as if好像用虚拟,would rather宁愿也虚拟;
It's time该是时候了,过去时或should do。

📝 例题

选择正确答案:

1. The teacher suggested that we ______ more attention to our pronunciation.(pay / paid)

2. His expression suggested that he ______ very angry.(be / was)

3. It is necessary that everyone ______ on time.(arrives / arrive)

4. It's high time that you ______ to bed.(go / went)

1. pay — suggest 表示"建议",从句用 (should) + 动词原形。

2. was — suggest 表示"表明",从句用真实时态。

3. arrive — It is necessary that... 从句用 (should) + 动词原形。

4. went — It's high time that... 从句用一般过去时。

📌

考点四:情态动词 + have done

🔹 常见的"情态动词 + have done"结构

结构含义举例
must have done 一定做过某事(对过去的肯定推测) He must have been to Beijing. 他一定去过北京。
It must have rained last night. 昨晚一定下雨了。
can't / couldn't have done 不可能做过某事(对过去的否定推测) He can't have stolen the money. 他不可能偷了那笔钱。
may / might have done 可能做过某事(对过去的不确定推测) She may have missed the bus. 她可能错过了公交车。
should / ought to have done 本应该做某事但没做(含责备意味) You should have told me earlier. 你本应该早点告诉我的。
shouldn't have done 本不应该做某事但做了 You shouldn't have eaten so much. 你本不应该吃那么多的。
could have done 本能够做某事但没做 You could have helped me. 你本可以帮我的。
needn't have done 本不需要做某事但做了 You needn't have bought so many. 你本不需要买那么多的。
⚠️ 易错提醒

推测类 vs 虚拟类的区别:
推测类(对过去事实的猜测):
must have done(一定做了)/ can't have done(不可能做了)/ may have done(可能做了)

虚拟类(与过去事实相反):
should have done(本应该做但没做)/ shouldn't have done(本不应该做但做了)
could have done(本能够做但没做)/ needn't have done(本不需要做但做了)

didn't need to do vs needn't have done:
didn't need to do:不需要做,实际上也没做。
needn't have done:不需要做,但实际上做了(白做了)。
I didn't need to buy it.(不需要买,也没买。)
I needn't have bought it.(不需要买,但买了。)

💡 速记口诀

must have done一定做了,can't have done不可能做了;
may/might have done可能做了,三个推测对过去;
should have done该做没做,shouldn't have done不该做却做了;
could have done能做没做,needn't have done不必做却做了;
推测看猜测,虚拟看遗憾。

📝 例题

选择正确答案:

1. The ground is wet. It ______ last night.(must rain / must have rained)

2. You ______ me! I was waiting for you all day.(should tell / should have told)

3. He ______ the meeting. He was in hospital at that time.(can't attend / can't have attended)

4. You ______ so much food. We have enough.(needn't buy / needn't have bought)

1. must have rained — 地面是湿的,推测昨晚一定下雨了。

2. should have told — 你本应该告诉我的(但没告诉),含责备。

3. can't have attended — 他当时在医院,不可能参加了会议。

4. needn't have bought — 本不需要买那么多食物(但已经买了)。

📌

考点五:虚拟语气综合辨析

🔹 虚拟语气全景总结

虚拟类型结构举例
If 条件句(与现在相反) If + 过去时, would/could/might + do If I were you, I would go.
If 条件句(与过去相反) If + had done, would/could/might + have done If I had known, I would have helped.
If 条件句(与将来相反) If + 过去时/should do/were to do, would/could/might + do If it should rain, we would stay home.
wish 虚拟 wish + 过去时 / had done / would do I wish I were taller.
suggest/insist 等 (should) + 动词原形 He suggested we (should) leave.
as if / as though 过去时 / had done He talks as if he knew everything.
would rather 过去时 / had done I'd rather you came tomorrow.
It's time that... 过去时 / should do It's time we went home.
if only 过去时 / had done / would do If only I had listened!
must have done 对过去肯定推测 It must have rained last night.
can't have done 对过去否定推测 He can't have done it.
should have done 本应该做但没做 You should have told me.
needn't have done 本不需要做但做了 You needn't have bought so many.

🔹 虚拟语气的省略倒装

在 if 虚拟条件句中,如果从句含有 were, had, should,可以省略 if,将 were/had/should 提到主语前面,构成倒装。

原句省略 if 后的倒装
If I were you, I would go. Were I you, I would go.
If he had come earlier, he would have caught the train. Had he come earlier, he would have caught the train.
If it should rain tomorrow, we would stay home. Should it rain tomorrow, we would stay home.

🔹 含蓄虚拟条件句

有时虚拟条件不用 if 从句表示,而是通过其他方式暗示。

暗示方式举例
without / but for(要不是) Without your help, I would have failed. 要不是你的帮助,我就失败了。
But for the rain, we would have gone out. 要不是下雨,我们就出去了。
otherwise / or(否则) He was ill; otherwise he would have come. 他病了,否则他就来了。
Hurry up, or you would be late. 快点,否则你就迟到了。
⚠️ 易错提醒

虚拟语气解题三步法:
① 判断是否为虚拟语气(看是否与事实相反);
② 判断与哪个时间的事实相反(现在/过去/将来);
③ 根据时间选择对应的时态结构。

常见干扰项:
真实条件句 vs 虚拟条件句:
If it rains tomorrow, I will stay home.(真实条件,可能发生)
If it rained tomorrow, I would stay home.(虚拟条件,不太可能)
关键区别:看主句是 will 还是 would。will → 真实;would → 虚拟。

💡 速记口诀

虚拟语气总口诀:
与事实相反往后退,现在退到过去时;
过去退到过去完成时,将来用过去或should do;
wish/if only表愿望,suggest/insist用should do;
as if/would rather也虚拟,It's time该做用过去时;
省略if用倒装,were/had/should提前放;
without/but for暗含条件,otherwise/or表否则;
情态动词加have done,推测遗憾都能用。

📝 综合例题

选择正确答案:

1. ______ I you, I would not accept the offer.(Were / Was / Am)

2. Without water, there ______ no life on the earth.(will be / would be / is)

3. He talks as if he ______ everything about it.(knows / knew / has known)

4. ______ he come tomorrow, I would tell him about it.(Should / Would / Will)

5. I wish I ______ at the party last night.(was / were / had been)

6. The doctor suggested that the patient ______ more rest.(has / have / had)

1. Were — 省略 if 的倒装,Were I you = If I were you。

2. would be — without 暗含虚拟条件,与现在事实相反,主句用 would + do。

3. knew — as if 引导的虚拟语气,与现在事实相反,用一般过去时。

4. Should — 省略 if 的倒装,Should he come = If he should come,与将来相反。

5. had been — wish 与过去事实相反,用过去完成时。last night 提示是过去。

6. have — suggest 表示"建议",从句用 (should) + 动词原形,should 省略后用 have。

← 第十一章 特殊句式 第十三章 情景交际 →