Floating Point Issues - Programming

Q1:

If the binary eauivalent of 5.375 in normalised form is 0100 0000 1010 1100 0000 0000 0000 0000, what will be the output of the program (on intel machine)?
#include<stdio.h>
#include<math.h>
int main()
{
    float a=5.375;
    char *p;
    int i;
    p = (char*)&a;
    for(i=0; i<=3; i++)
        printf("%02x\n", (unsigned char)p[i]);
    return 0;
}

A 40 AC 00 00

B 04 CA 00 00

C 00 00 AC 40

D 00 00 CA 04

ANS:C - 00 00 AC 40

No answer description is available. Let's discuss.