单选题 Mary ______ my letter, otherwise she would have replied before now.
A. has received B. couldn't have received
C. ought to have received D. shouldn't have received

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