选D, all that=what.
由句子可以看出,填what是最合适的,跟前面还对仗,但无此选项,说明其考察点在于what的替换说法。 what在这里引导的是宾语从句,且本身还在宾语从句中承担成分,它是you have done 的宾语,它不可能直接换成which 或that, 且what 有包含...的一切的涵义,all what 逻辑语义重复,因此只能选D
这道题可以有两种填法。第1种填法填what。what引导的是一个宾语从句和前面的用法是一样的。第2种填法填all that。这种填法的两个单词是分开的,第1个单词all是一个代词,相当于一个名词,"一切所有"。它做了先行词,而后面的that是定语从句的引导词,由于all是一个不定代词,所以关系代词只能用that。比如:I believe what you say.我们也可以说I believe all that you say.
个人觉得D
all that =what
与前面需要对应,for+what
C what做have done的逻辑宾语
我觉得答案是选C