表示肯定推测用must(一定),但只限于肯定句.must have done表示一定做过某事.
表示否定推测用can't(不可能).相应地,用于对过去的否定推测用can't 的过去式couldn't have done,表示不可能做过.
表示可能用may/might,也是用于肯定句.用might have done表示也许做过某事,语气很弱.
表示推测同时又用于疑问句的情态动词没有,因为推测本身就是一种陈述句,只有肯定否定(可能和不可能)两种形式,疑问就不是推测了,不能用这样的句型,但是可以用表示"可能"的形容词或副词.但要说用于疑问句的情态动词是有的,但没发现有专用于疑问句的,一般能用于疑问句的也能用于否定句.
没有must not have done.相应的说法是couldn't have done.
另外,像1楼说的那样,should have done 表示本该做(而实际没有做).
温馨提示:答案为网友推荐,仅供参考