It must have snowed last night for it's so cold this morning .
今天早晨这么冷,昨晚一定下雪了。
ought to后面接完成式表示本应该发生或本应该做的事而没有发生或没有做;它的否定形式则表示本不应该发生或本不应该做的事而已经发生或已经做了。例如:
They ought to have completed their work much earlier .
他们本应该在更早一些的时候完成他们的工作的。
You oughtn't to have left your keys in the office when you went out .
你不该出去的时候将钥匙留在办公室里。
I ought to have said it to her in a calmer mood .
我应该以更平静一些的语气对她说那件事的。
need后面接完成式主要用于否定句中,表示不必要做的事而已经做了。例如:
We needn't have read the Fast Reading materials before we do it in class .
我们在做快速阅读练习之前没有必要把阅读材料先看过了。
You needn't have apologized to him for nothing yesterday .
你昨天没有必要无为地向他道歉.
should后面接完成式表示本应该发生或本应该做的事而没有发生或没有做;它的否定形式则表示本不应该发生或本不应该做的事而已经发生或已经做了。例如:
I should have written to you earlier. But I've really been busy .
我本应该早就给你写信的;不过我真的一直都很忙。
You shouldn't have left your son alone at home .
你不该将你儿子一个人留在家里的。
He shouldn't have broken the red light.
他不该闯红灯的。
3. 常用情态动词的用法比较
1)在表示"可能性"方面
can 、should 、may 、might这四个词都可以用来表示"可能性".
但在表达的语气和程度方面有所不同:
can 和should表示以事实、理由为依据而存在的可能性;其中should的主观性较强,往往含有"应该会怎么样"的意思。总体上说,这两个词在这方面的语气较强、较肯定。与之相比,may 和might这两个词在这方面的语气较弱些、没有那么肯定,表示主观意断的可能性,没有足够的客观依据。其中,might的语气更为委婉、更弱。例如:
You can't expect to be a top student without working hard at your study .(这种可能性很大。因为,不努力学习怎么能成为尖子生呢?)
This book should be found easily in the library .(说话人认为,图书馆应该有很多这类书籍,所以应该很容易找到。)
You may meet her at the party today.(说话人认为,你今天或许有机会、有可能见到她。)
You might mistake what I mean.(说话人婉转地说明,大概、也许你误会我的意思了。)
2)在表示"允诺"方面
在表示"允诺"的can ,may, might三个情态动词中,以might最为客气、委婉;may为居中;而can是表达这方面意思的普通词。在这种情况下,要根据具体情况来选用这三个情态动词。例如:
You can leave now . (用于熟识的人之间;或是公事公办的情况。)
May I trouble you with a question ?(用于礼貌地提出请求。)
Might I have another cup of coffee?(用于陌生或正式的场合,非常委婉、得体地提出请求。)
3)在表示"应该"方面
must ,ought, should都能用来表示"出于某种职责、义务而应该怎么样"的意思。以must的语气最强烈;ought为居中;而should是表达这方面意思的普通词。例如:
We must build our motherland into a strong country with four modernization .(语气很强烈。表示我们应该把自己的祖国建设成一个具有四个现代化的强国,而且我们非得这样做不可。)我们一定要将我们的祖国建成为一个具有四个现代化的强国。