现在完成进行时是由“助动词have(has) + been+动词的现在分词”构成。
I have been waiting for a letter from my parents. 我一直在等我父母的来信。
It has been raining for three hours.
We have been studying here since 2004.
She has been sweeping the street all day. She is too tired.
We have been waiting for you for two hours. We don't want to wait any longer.
1. 肯定句：“主语+have(has) been+动词的现在分词+其他.”例如：
I have been sitting here all the afternoon. 我在这儿坐了一下午。
He has been collecting all kinds of stamps since he was ten years old.
2. 否定句：“主语+have(has) not been+动词的现在分词+其他.”例如：
They haven't been meeting each other for five years.
He hasn't been teaching here these years. 这些年他并没有一直在这儿教书。
3. 一般疑问句：“Have(Has) + 主语 + been + 动词的现在分词？”其肯定回答：“Yes, 主语 + have(has).”否定回答：“No, 主语 + haven't (hasn't).”
— Have you been studying for the English test today?
— Yes, I have. / No, I haven't.
是的。 / 不，我没有。
— Has Daniel been skating for two years? 丹尼尔滑冰已经有两年了吗？
— Yes, he has. / No, he hasn't.
4. 特殊疑问句：“ 特殊疑问词 + 一般疑问句？”
What book have you been reading recently? 最近你在看什么书？
How has your uncle been getting on with his work?
有些不能用现在进行时的动词，如be, have, like, love, know, see, hear等，同样也不能用现在完成进行时，而应用现在完成时。例如：
The poor woman has been ill for a long time. 那可怜的妇人已经病了好久了。
Have you seen her parents these days? 这些天你看见她的父母了吗？
Susan has been reading that storybook since last night.
Susan is reading a storybook now.
⑴有些动词(如：work, study, live, teach等)用现在完成进行时与现在完成时表达的意思差不多。试比较：
The teacher has been teaching at this school for ten years.
The teacher has taught at this school for ten years.
They have built a new lab.
They have been building a new lab (these years).
1. How long have you been here?
A. stood B. to stand
C. standing D. stands
2. The student has been the novel since he finished school.
A. wrote B. writing
C. written D. writes
3. — Hi, David! Are you tired?
— Yes, I am tired. I the classrooms for 4 hours.
A. am cleaning B. was cleaning
C. have been cleaning D. had cleaned
4. Where have you been? We you everywhere.
A. have been looking for
B. has looked for
C. had looked for
D. has been looking for
5. — It for nearly a week. Will it last long?
— No, it's reported that we'll have a fine weekend.
A. have rained B. has been raining
C. rains D. rained
1. He has been watching the interesting play for two hours. (改为否定句)
He watching the interesting play for two hours.
2. I have been learning English for two years. (改为一般疑问句并作否定回答)
— you learning English for two years?
— No, I .
3. My brother has been collecting stamps for five years. (对划线部分提问)
has your brother been for five years?
4. The boy has been listening to the music videos since he was eight years old. (对划线部分提问)
has the boy been listening to the music videos?
5. She has been working in the hospital for six years. (对划线部分提问)
she been working for six years?