Is not that the question really make me upset and angry, but I
I think all of us have had this question from time to time!!!
Before I was dating Mr. Pooh, I was single. People used to ask me the same thing. I found the perfect (for me) answer in an issue of Cosmo:
"Because I haven't found a guy good enough for me yet."
Why do you feel like you should give people an answer to this question!? It's really no one's business. I think people who are interested in dating you mean it as a compliment. Like, you're so great, how are you still an the market. In that case, I might flirtatiously say, "It's a mystery to me too! But it's lucky for you that I'm single huh?" I'd probably refrain from doing that kind of thing with men on the internet that you've never met ... but then I actually would never chat online with a guy I never met, so I guess you should do what feels right for you there.
One other thing I wanted to say ... FOR ME sex is definitely a requirement for being in a relationship. I would NEVER be in a sexless relationship. I'm sure there are people out there who might be okay with that kind of arrangement. But I think they are few and far between! So I think it makes sense that people assume that if you're in a relationship that you're having sex. I admit, I make that assumption! Also, from things that you've written before, it sounds like you are not okay with having sex outside of a relationship. Not everyone is like that (I'm not!!), but I think you're in the majority there. And people might assume that if you're not in a relationship that you're not having sex. I'm not saying you're prude, but in this case, it sounds like that might be true. People shouldn't make assumptions about anything, but we do -- it's just human nature.
At the end of the day, your romantic life and your sex life is no one's business but your own and I don't think you should feel obligated to answer questions from people who are asking inappropriate questions. I think you should either just flat out tell them it's none of their business, come up with a snappy, sassy reply, or just ignore the question completely and hope they get the hint!