For the question "Have you got any ice cream?" which is correct:
- Yes I do
- Yes I have
or inversely
- No I don't
- No I haven't got any
For the question "Have you got any ice cream?" which is correct:
or inversely
EDIT: Since the OP changed the tense in his question, I have updated my answer:
Yes, I have.
or
Yes, I have got some ice cream.
No, I haven't.
or
No, I haven't got any ice cream.
For the question "Have you got any ice cream?" which is correct:
Yes I do
Yes I have
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.
Arguably both are correct:
'Have you got any ice-cream?'
'Yes, I have got ice-cream.' -OR- 'Yes, I do have ice-cream.'
In Australia both "I do" and "I have" are used and essentially mean the same thing.
It is the same for the negative forms:
'No, I have not got ice-cream.' -OR- 'No, I do not have ice-cream.'
Fact is, the more streamlined you can get your students to speak, the better. Short answers first. Yes, I do. No, I don't. I do or don't. Yes, I have. This is clearly more educated and proper and not what's in usage with young people today. As a teacher, I tell my students to read the room. I teach them both, whether they hear the do you have form or have you got form, they decide. I try to make them aware of regional differences, but social media, T.V. and the internet has clearly had an impact. Most importantly, you get them communicating.
The pedantic answer is that, if the question is
Have you got . . . ?
the answer should be
Yes, I have.
while, if the question is
Do you have . . . ?
the answer should be
Yes, I do.
However, given that these two questions are nowadays largely interchangeable, many people who are used to the latter form may 'hear' Have you got as Do you have and spontaneously give the answer that matches it, Yes, I do. While it could be argued that this is, by some strict criteria, incorrect, it carries no risk of miscommunication whatsoever, and it is highly unlikely that anybody would be bothered by it.
"Yes, I do" is essentially short for "yes, I do got some ice cream", which clearly doesn't make sense.
"Have you got?" = "yes, I have" "Do you have?" = "yes, I do"
Just because people say something doesn't make it correct.