根据你的原文:I should be looking at farms and cottages in a valley指的是你应该看见山谷里的一些农场和房屋.实际上看没看见,没有表达出来.一般来说,说这句话的时候你还没出发,也就是说你还没到现场.I should have been looking at farms and cottages in a valley可以翻译为我应该已经看见一些农场和房屋了,而事实上呢,你没看见.说这句话的时候你已经到现场,但是没看到你应该看到的.这就是这两句话的区别了.
根据我上面所给的区别方法,你后面的那道四选一只有D正确.因为很明显,你说话的时候你人已经在那里了.