What is the difference between BPDU guard and root guard?

A.
BPDU guard disables the port upon the reception of a BPDU if PortFast is enabled on the port;
root guard allows for the reception of BPDUs as long as a device does not try to become the root.
B.
BPDU guard blocks BPDUs from being transmitted; root guard does not let other devices
become the root bridge.
C.
BPDU guard disables a port upon receiving a BPDU if PortFast is enabled on the port; root
guard protects against root bridge flapping between devices.
D.
BPDU guard ignores BPDUs received on a port if PortFast is enabled on the port; root guard
allows for the reception of BPDUs as long as a device does not try to become the root.
E.
BPDU guard ignores BPDUs received on a port if PortFast is enabled on the port; root guard is
used during configuration to force a switch to be the root bridge.