B,我讲的详细一点.
Have gone较have been讲,是属于去过没回来,而have been是已经去过并且回来了.除去AC
而为什么不选D呢?因为there是副词,前面不能加介词的!就像go home,home是副词,就不能加to!