e shocked by 是被动语态的惯用搭配,既然是被动语态,by后的名词必然是行为的发出者,你认为是“其他人吃的东西”主动去使我震惊的吗?所以此处用at,不仅准确而且符合实际,从词性角度分析,shocked可以认为是形容词“震惊的,惊讶的”,同时可认为是shock的被动式,但明显,此处没有什么事物主动影响the person,而是the person自己对其他食物感到震惊,所以shocked理解为形容词更准确.
无be shocked on/to 的用法.
所以我觉得应该是"by discover"