If all that a switch does is to listen to the packets coming into each port and forms a MAC address table, no host machine sends a packet to only the switch - it only sends to another host. Does this mean that the switch ports do not have any MAC address associated with each of its ports?

Swtiches will keep a table of mac addresses that are seen on each switch port. If you have 1 pc on a port, then the switch will know that port 1 has the mac for your pc and traffic will only be sent there when destinied for your mac.

You can also cascade switches. If you have a 2nd switch B connected to port 1 on Switch A, then switch A port 1 will have multiple mac addresses on that port once detected. Managed switches also have trunked ports where vlan tagged traffic can be sent across ports with the same end effect, basically.

The switch ports themselves, do not have mac addresses. The switch 'knows' whats macs are to be found on what ports.

commented: It's all handled with the magic of firmware! :-) +13

FWIW, all ethernet interface ports (NIC - Network Interface Controller) have a MAC address. They don't need an IP address since they are only handling traffic at the transmission layer. As I mentioned above, it is the firmware (usually an FPGA or similar device) that deals with where (what MACs) the incoming/outgoing packets are going to be directed to.