Both sets of sentences are correct, the difference between them is the meaning.
Now this difference is a little hard to explain, but I will do my best.
The verb 'to have' conjugates in the present as 'have' or 'has':
- I, you, we, they, you all = Have
- he, she, it = Has
In the past, it conjugates as 'had' for everyone.
Now when it comes to questions starting with 'to have', asking if someone has done something, they are asking about one of two situations, each with it's own meaning.
When you use 'had' (past tense), then you are asking about any time up to a specific moment in the past.
Had you run a marathon?
Meaning "At any time up until that moment in the past, did you run a marathon?", or "Did you run a marathon by then?"
When you use 'have' or 'have', you're asking about any moment up until right now.
Have you run a marathon?
Meaning "At any time up until now, did you run a marathon?", or "Did you run a marathon by now?"
The difference between the two is the limit of the time asked about. When you ask using the past tense of 'to have', then the limit is referring to a specific moment in the past. When you ask using the present tense of 'to have', then the limit is this very moment, now.
- Have, has = "up until now"
- Had = "up until then"
I hope that helps!
Best Answer
You should have a look at the conjugation table of to be in a basic grammar:
Tenses I: I am, I was, I will be, I would be
Tenses II: I have been, I had been, I will have been, I would have been
After will/would follows bare infinitive or infinitive perfect.
After have/has/had follows stem form 3: been (past participle).