Answer should be B and not D
Reason :- Since, in the question it clearly says that the Datagram D reaches the destination, if there was fragmentation done along the way, the Datagram D would have been divided into different datagrams say A, B, C. Obviously if the same datagram D is reaching, there was no fragmentation hence no change in Frag. offset.
So, only TTL and checksum will be different.