单选题 20.Mary______my letter, otherwise she would have replied before now.
【正确答案】 B
【答案解析】couldn’t have done sth.可用来表示对过去某一动作的否定推测,意为“不可能做过某事”,例如:He couldn’t have committed that crime because I was with him when themurder happened.他不可能犯罪,因为凶案发生时我和他在一起。ought to have done意为“本应该做(而实际上未做的)某事”,含有责备之意,例如:You ought to have helped himyesterday.昨天你本该去帮助他。shouldn’t have done sth.意为“本来不应该做某事(反而做了)”,含有责备之意,例如:You shouldn’t have told him about his illness.你本不该把他的病情告诉他。根据句子结构和下文内容我们可以看出该题应该选B。