"I pity the poor student ["nyasha"] if that's a typical exam question."
I was thinking the same thing! The question he actually asked seemed to me rather trivial compared to the full solution of the network.
"VA = 3.243 V
VB = 5.270 V
VC = 0.811 V
VD = 2.432 V
VE = VX = 0.270 V"
Yep. That's what I get, too. I was hoping HGMJR would show us how to do it using Millman's theorem.
As far as impedances, probably a good way to find them is to attach a 1 amp current source to each node, one at a time, and re-solve the network. Then subtract the voltage at that particular node (without the extra current source) from the voltage there with the 1 amp injected. That difference voltage (divided by 1 amp, of course) should be the impedance.
You'd think the impedance to ground on top of a voltage source (such as node VC and VD) would be zero, but for a controlled source it's not necessarily so!
From the circuit, the current i(x) is flowing from V(c) to v(a) through the resistor 2ohms. So it can be written as the difference between the voltages divided by the resistor. Hence i(x)=[V(c)-V(a)]/2. Then from the circuit again V(d) is nothing but the negative of voltage of the dependent source 2i(x). but we know what is i(x). Hence V(d) is -[V(c)-V(a)]=V(a)-V(c). Hope you understood this.