For the smoking one, both are correct and (to me at least) it is correct and acceptable.
It's things like this is what makes English kind of difficult to learn.
There aren't really much difference.
For the second... both are correct also.
I think the small difference is that words that end with
-ed is more stressed on something past tense while
been stresses on something that's happening to the word that follows, like
been smoking. It means that you could still be smoking now, just that the cigarette (or whatever...) is not in your mouth, but most of the time, it also means something that happened/past tense.
Also, for the second one, when you say
she has lived, it can sound like she does not live there anymore, but it also mean she does still live there.
Yeah it's quite confusing.
These all practically mean the same thing. *lol* Makes me wonder how I actaully know English.
I had slept (for 8 hours)
I have slept (for 8 hours)
I slept (for 8 hours)
I was sleeping (for 8 hours)
I had been sleeping (for 8 hours)
I have been sleeping (for 8 hours)