c) What you've done for c is add the velocity of the firetruck and the speed of sound together. The sound is coming from the siren on top of the firetruck. If the firetruck drives faster, the sound still comes from the siren and travels in the air at 340 m/s, that's not going to change. The sound that hits you will have travelled to you, who is standing still, at 340 m/s.
In terms of vector addition (draw out the arrows)
a = your velocity = 0 m/s
b = sound = 340 m/s
a + b = 340 m/s
d) You're right next to the firetruck. You're travelling the same direction as the firetruck. You're moving at 30 m/s. The fire truck is moving at 20 m/s, and the sound from the siren is coming out at 340 m/s. For the same reason as before, just because the firetruck is moving, doesn't mean that the sound travels in the air any faster. I find the next bit hard to explain without a diagram, but I think I've pointed out where you were making a mistake.
So vector addition (draw out the arrows)
a = +30 m/s
b = +340 m/s
a + b = 370 m/s