You shouldn't have!这是个习惯用语,表达很感激的意思,可以用这样句子来说明.
When you give a gift to people,they would say ‘You shouldn’t have …’
翻译过来,就是不好意思,让您破费了的意思.
从语境来看,这里应该是D.
——这个东西是给你的
——让你破费了,真不好意思,我不知道怎么感谢你
而C选项是“没必要”的意思,如果用这个C
整句话就是
——这个东西是给你的
——没必要啊,我不知道怎么感谢你.
这样明显不符合逻辑!