如何用C随机生成一组数据

怎么用C随机生成一组数据
我想用C语言随机获得10组数据,这数据里面包括姓名(英文的字符串形式),年龄(数字),出生日期(date),电话号码(11位数字),状态(分为dead和alive),怎么用随机函数写出来啊。

------解决方案--------------------
C/C++ code
//随机获得10组数据,这数据里面包括姓名(英文的字符串形式),年龄(数字),出生日期(date),电话号码(11位数字),状态(分为dead和alive),
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct D {
    char xm[20];
    int nl;//1..100
    char csrq[11];//YYYY-MM-DD 1910-01-01..2012-12-31
    char dhhm[12];
    int zt;//0-dead,1-alive
} d[10];
int i,j;
void main() {
    srand(time(NULL));
    for (i=0;i<10;i++) {
        for (j=0;j<20;j++) {
            if (0==j) d[i].xm[j]='A'+rand()%26;
            else {
                d[i].xm[j]='@'+rand()%26;
                if ('@'==d[i].xm[j]) {
                    d[i].xm[j]=0;
                    break;
                }
            }
        }
        d[i].xm[19]=0;
        d[i].nl=1+rand()%100;
        sprintf(d[i].csrq,"%d-%02d-%02d",1910+rand()%103,1+rand()%12,1+rand()%28);
        d[i].dhhm[0]='1';
        sprintf(d[i].dhhm+1,"%d",rand()%10);
        sprintf(d[i].dhhm+2,"%d",rand()%10);
        sprintf(d[i].dhhm+3,"%d",rand()%10);
        sprintf(d[i].dhhm+4,"%d",rand()%10);
        sprintf(d[i].dhhm+5,"%d",rand()%10);
        sprintf(d[i].dhhm+6,"%d",rand()%10);
        sprintf(d[i].dhhm+7,"%d",rand()%10);
        sprintf(d[i].dhhm+8,"%d",rand()%10);
        sprintf(d[i].dhhm+9,"%d",rand()%10);
        sprintf(d[i].dhhm+10,"%d",rand()%10);
        d[i].zt=rand()%2;
        printf("%d xm=%-20s,nl=%-3d,csrq=%s,dhhm=%s,zt=%s\n",i,d[i].xm,d[i].nl,d[i].csrq,d[i].dhhm,(d[i].zt)?"alive":"dead");
    }
}
//0 xm=SSMGRTNBOOXEFRYDGTA ,nl=32 ,csrq=1924-06-24,dhhm=11524590739,zt=alive
//1 xm=QP                  ,nl=95 ,csrq=1929-10-16,dhhm=13615969757,zt=dead
//2 xm=ZRRNFRUS            ,nl=43 ,csrq=1995-07-11,dhhm=15008568107,zt=dead
//3 xm=LGPXQ               ,nl=70 ,csrq=1935-03-04,dhhm=18095046696,zt=alive
//4 xm=GLNSHODWVTXEHWABIAP ,nl=57 ,csrq=1952-12-22,dhhm=12348839198,zt=dead
//5 xm=FNLHRPTJITLHLNBVLQH ,nl=73 ,csrq=1977-10-28,dhhm=10526975481,zt=dead
//6 xm=CKSHOCKJSMIXFQLLDVK ,nl=22 ,csrq=1914-06-15,dhhm=13288624816,zt=dead
//7 xm=IDYNEJAUHLODUETJFDK ,nl=99 ,csrq=1964-10-21,dhhm=11641755619,zt=alive
//8 xm=SGWHEBWXFMXVIPFI    ,nl=20 ,csrq=2006-09-19,dhhm=15412572325,zt=dead
//9 xm=ZWQYAAEADOESIMMMN   ,nl=66 ,csrq=1984-08-18,dhhm=13943366376,zt=alive