单选题 John, you are so lazy. This job ______ hours ago.
【正确答案】 D
【答案解析】[解析] 考查语法。本句意为“John,你太懒了!这项工作在几个小时前就应该完成了”。ought to have been finished表示本应该做的事却没有做,含有一种责备的语气,符合题意。B项的must have finished“一定完成了”,表示对过去事件的肯定推测。