What will stop a PC from receiving an IP address from a DHCP server? Is it STP, VTP, 802.1Q or DTP? What is the most preferable of these?
DHCP works by the server receiving the client's broadcast - so you need a working broadcast domain (aka L2 segment aka VLAN) in between, unless you're using a DHCP relay. As long as the network is functioning, DHCP will work.
xSTP, VTP, or DTP all help establishing and maintaining a working network. There are no 'most preferable' protocols in these - you use whatever is best in your situation which you haven't detailed. (Except that MSTP is preferable over RSTP which is generally preferable over obsolete classic STP.)