为什么这里只可用could not have done?

有读者问这样一道选择题:

A three-good student_________have done such a thing.

A. may not B. might not

C. could not D. must not

答案是C,但为什么不可选A,B,D?

应选C。英语中一般不可用may和might的否定完成式。must的否定完成式也可表“可能”,但似乎只可见于美国英语。