"Has she a pen?" is very outdated and unnatural. Nobody says this. It sounds like something out of a grammar book written a hundred years ago.
In modern English, there are two ways of asking questions ( and making negatives) with 'have':
1. When it's an auxiliary verb, we use an inversion:
She has been to Paris ---> Has she been to Paris?
Yes, she has/No, she hasn't
2. When it's a main verb, we use 'do':
i. Meaning 'possess' : She has a pen ----> Does she have a pen?
ii. With any other meaning : She has breakfast ----> Does she have breakfast ?
Yes, she does/No, she doesn't
Exceptions to this rule:
1. When we use 'have got' as an alternative to 'have':
She's got a pen ----> Has she got a pen?
Yes, she has/ No, she hasn't
In this common idiomatic usage, 'have' functions as an auxiliary verb, so we make a question with an inversion, and negate by adding 'n't. It is more informal than 'Do you have?'. You wouldn't use it in a business letter, and you may not hear it in a court of law. It is perfectly correct and natural, however.
2. There is a 'grey area', particularly in British English, where it's possible to use this auxiliary-style construction without 'got' if it's followed by 'no' or 'any', for example 'Have you any money?' or 'Have you no shame?'.
This is relatively unusual, though, and is not something which you need to learn about. It is more usual to say 'Do you have any money?'.