• 2021-04-14
    //指针与动态内存分配示例――单位人员信息管理

    //某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。
    //请选择空白位置的全部正确答案
    #include
    #include
    #define N 300000
    int main()
    {
    struct info_type
    {
    int zgbh; //职工编号
    char bm[11]; //部门
    char xm[11]; //姓名
    char xb[3]; //性别
    char sfzh[19];//身份证号
    char zc[11]; //职称
    int jbgz; //基本工资
    int jj; //奖金
    int sfgz; //实发工资
    };
    int i,j,n;
    struct info_type *p;
    do//输入实际人数
    {
    printf("
    请输入职工总数(1--%d):",N);
    scanf("%d",&n);
    }while((n<1)||(n>N));
    //分配n+1份内存空间,每份大小为sizeof(struct info_type),多出的1份用于排序
    p=(struct info_type *)malloc((n+1)*sizeof(struct info_type));
    if(p==NULL)
    printf("
    内存空间的分配不成功!
    ");
    else//内存分配成功,进行后续操作
    {
    printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金):
    ");
    for(i=1;i<=n;i++)
    {
    printf("No.%d:",i);
    scanf("%d%s%s%s%s%s%d%d",&p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,&p[i].jbgz,&p[i].jj);
    p[i].sfgz=p[i].jbgz+p[i].jj;
    }
    for(j=1;jp[i].zgbh)
    {
    ________
    }
    printf("
    职工基本信息表如下(按职工编号升序排列):
    ");
    for(i=1;i<=n;i++)
    printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d
    ",p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,p[i].jbgz,p[i].jj,p[i].sfgz);
    free(p);
    }
    system("pause");
    return 0;
    }
  • p[0]=p[j]; p[j]=p[i]; p[i]=p[0]; --- p[0]=p[i]; p[i]=p[j]; p[j]=p[0];

    内容

    • 0

      以下程序的运行结果是 。 main() { char *str&#91;&#93;={"abc","def","ijk","mno"}; char **p; int i; p=str; for(i=0;i<4;i++) printf("%s",p[i]); }[/i]

    • 1

      下面程序段执行后,输出n的值是_____。</p></p><p><p>int i,j,n;</p></p><p><p>for (i=1;i<=10;i++)</p></p><p><p>{ n=0;</p></p><p><p> for (j=1;j<=10;j++)</p></p><p><p> n=n+j; </p></p><p><p>}</p></p><p><p>printf(“n=%d ”,n);</p></p> ______

    • 2

      递延年金现值是自若干期后开始每期款项的现值之和,其计算公式为()。 A: P=A·[(P/A,i,m+n)—(P/A,i,m)] B: P=A·(P/A,i,n)·(P/S,i,m) C: P=A·(P/A,i,n)·(S/P,i,m) D: P=A·(S/A,i,n)·(P/S,i,m)

    • 3

      中国大学MOOC: 以下函数的功能是( )。long f(int n){ int i; long p; for(i=1;i<=n;i++) p=p*i; return p;}

    • 4

      下列资金等值计算式中,正确的有()。 A: (A,P,i,n)×(P/A,i,n)=1 B: (A,F,i,n)=1/(P/A,i,n) C: (P,4,i,n)=(P/F,i,n)×(F/A,i,n) D: (PA,i,n)=(P/F,i,n)×(A/F,i,n) E: (A,P,i,n)=(F/P,i,n)×(F/A,i,n)