根据for two days两天,及句意可知,这里用现在完成时have/has+过去分词,排除C、D。现在完成时中,for+一段时间,动词必须是延续性动词或状态,be ill是延续性状态,fall ill是短暂性动作,故选B。
D
句意:
这家购物中心已经开业两年了,但我只去过一次。
for+一段时间,与现在完成时连用,动词必须是延续性动词或状态,been open是延续性状态,open是短暂性动作,第1空用has been open,排除A、B。have been there去了已回,have gone there去了未回,根据once可知这里表示只去过一次,去了已回,第2空用have been。故选D。