设某大学有下列登记表,下面哪个选项采用了最佳方式对它进行类型定义。

A、#include 
struct date                            /* 定义日期结构体类型 */
{
    int   year;                        /* 年 */
    int   month;                       /* 月 */
    int   day;                         /* 日 */
};
struct professionalState                 /* 定义职业结构体类型 */
{
    char college[80];                    /* 所在学院*/
    char professionalTitle[20];          /* 职称 */
    char duty[20];                       /* 职务 */
};
struct person                            /* 定义职工个人信息结构体类型 */
{
    char name[20];                        /* 姓名 */
    char sex;                             /* 性别 */
    struct date birthday;                 /* 出生日期 */
    struct professionalState occupation;  /* 职业状况 */
};
int main()

    ......
    return 0;
}
B、#include 
struct date                            /* 定义日期结构体类型 */
{
    int   year;                        /* 年 */
    int   month;                       /* 月 */
    int   day;                         /* 日 */
};
struct professionalState                   /* 定义职业结构体类型 */
{
    char college[80];                      /* 所在学院*/
    char professionalTitle[20];            /* 职称 */
    char duty[20];                         /* 职务 */
};
int main()
{
    char name[20];                         /* 姓名 */
    char sex;                              /* 性别 */
    struct date birthday;                  /* 出生日期 */
    struct professionalState occupation;   /* 职业状况 */
    ......
    return 0;
}
C、#include 
struct date                            /* 定义日期结构体类型 */
{
    int   year;                        /* 年 */
    int   month;                       /* 月 */
    int   day;                         /* 日 */
};
int main()
{
    char name[20];                   /* 姓名 */
    char sex;                        /* 性别 */
    struct date birthday;            /* 出生日期 */
    char college[80];                /* 所在学院*/
    char professionalTitle[20];      /* 职称 */
    char duty[20];                   /* 职务 */
    ......
    return 0;
}
D、#include 
int main()
{
    char name[20];                   /* 姓名 */
    char sex;                        /* 性别 */
    char college[80];                /* 所在学院*/
    char professionalTitle[20];      /* 职称 */
    char duty[20];                   /* 职务 */
    int   year;                      /* 年 */
    int   month;                     /* 月 */
    int   day;                       /* 日 */
    .....
    return 0;
}