ought to have done意思是:本應做但沒做,而ought to do的意思是應該做(表示將來),從後半句來看,顯然不能用ought to do
2. The room is so quiet. They must be asleep now.
must be是對目前發生的事的肯定猜測。而must have been是對過去事實的肯定推測。這個句子所陳述的事實是目前,所以不能用must have been
3. We ought not to give up learning English halfway.
ought to 的否定形式是 ought not to 或oughtn't to