For the question "Have you got any ice cream?" which is correct:
- Yes I do
- Yes I have
- No I don't
- No I haven't got any
For both questions, the first options are correct since the question is in simple present tense.
EDIT: Since the questioner changed the tense of his question, now the following answer is correct:
Arguably both are correct:
In Australia both "I do" and "I have" are used and essentially mean the same thing.
It is the same for the negative forms:
The traditional answer would be "yes I have" but "yes I do" is common in American usage and is gaining usage in the UK too.