It is you who _____ eaten all the food.
I need to know the reason of choosing "have" or other choices.
The verb must agree with 'who', obviously. 'Who' can be singular or plural ('who is he?' 'who are they?'). In this case, the number of 'who' must agree with the number of 'you'. And 'you' is grammatically plural (even though we use it for the logically singular 2nd person in place of the archaic 'thou'). Therefore, it must be 'have'. That's my reasoning, anyway.
Get a grip, quiz takers. It depends on whether 'you' refers to one, or more than one person. In the southern US, you have y'all. Otherwise, you refers to both cases.
It depends on the context. Neither 'has' nor 'have' is correct without the context of singular or plural 'you'.
I think,Nick is right, it depends on the context.