单选题   Jack ______ out very early, for he had not shown up at breakfast.
 
【正确答案】 B
【答案解析】考查“情态动词+完成式”的用法。根据句意应选B,因为must have done表示对过去事情的肯定推测。C和D中should/ought to have done都表示本应该做某事却没有做;A中could have done表示本可以做某事却没有做,均不符合题意。