Should…不是表可能性猜测是"本应做某事而实际上没做"might…表过去可能已做了某事.
对“表示对过去的推测时,should have done与 might have done 有何区别?”其他回答
“情态动词+完成式”这一基本知识点是历年高考的热点。
一:might+have done表示对过去某事未能实施而产生的责备,抱怨,这一结构通常用于肯定句中,可译为”...本应该...而不曾...”。
eg. He ____ you more help,even though he was very busy.(MET90)
A.might have givenB.might giveC.may have givenD. may give
二:should +have done这一结构相当于ought to +have done,表示“过去该做的事而事实上没有做”,一般也含有责备的意味,语气上ought to 结构比should结构稍强。另外,这一结构的否定式则表示“过去不应该做的事情却已经做了”。
eg.1.We ___ last night,but we went to the concert instead.(NMET92)
A.must have studiedB.might study C.should have studid D.would study
2.Tom ought not to ___me your secret, but he meant no harm.(MET93)
A.have told B.tellC.be tellingD.having told

已解决