C
试题分析:连词情态动词用法。Shouldn’t have done本不应该做某事,实际上却做了(这是一个对过去情况的虚拟);can’t have done不可能做了某事(对过去所发生的事情的否定推测);句意:—你知道David在哪里?我到处都找不到他、—他不可能走远,因为他的外套仍然在这里。根据句意说明C正确。
点评:本题是高考必考考点,一定要牢记句型意思。must have done过去肯定做了某事。should have done 本应该做而实际未做。 can’t have done 过去不可能做了某事;shouldn’t have done 本不应该做而实际做了。 need have done 本有必要做某事;needn’t have done 本没有必要做某事;注意没有 mustn’t have done的形式。