had been eating
had eaten
have eaten
have been eating
本题考查过去完成时。
由题干可知eat这个动作是发生在“was surprised”之前,表示过去的过去,所以要使用过去完成时。故B选项符合题意。
句意:她惊讶地发现冰箱是空的;这孩子把所有的东西都吃了!