The correct option is C has been working
Here, 'has been working' in Present Perfect Continuous Tense is correct because it
is used to indicate an action that started at some point in the past and may or
may not be complete. Here, 'for a long time' suggests an action that started at some point in the past and may or may not be complete.
'Works' in present simple is incorrect because
it is used to indicate a future event on a designated date as part of a
plan.
'Is working' in present continuous is
incorrect because it implies an action going on at the time of speaking.
'Working' is grammatically incorrect.