B.
1. for
2. for
3. since
4. for
5. since
6. since
7. for
8. for
C
1. Mary and Stephen have been making a cake.
2. Martha has been wrapping presents.
3. Delia has been decorating the tree.
4. Tom has been shopping for food.
5. Joanna has been writing cards.
D
1. It has been raining since three o'clock.
2. He has been playing chess since he was ten.
3. I have been working since eight o'clock.
4. Helen has been looking for another job for two months.
5. We have been arriving here for two hours.