主观

阅读以下说明和流程图(如图3所示),回答问题1和问题2。

 【说明】

 本流程图实现从成绩文件生成学生成绩一览表。

 某中学某年级的学生成绩数据(分数)登录在成绩文件10中,其记录格式见表2:

由该成绩文件生成见表3的学生成绩一览表。生成的学生成绩一览表按学号升序排列。表中的名次是指该生相应课程在年级中的名次。

   

流程图中的顺序文件F0是学生成绩文件,F0文件经处理1处理后产生顺序文件F,然后经过处理2至处理4对文件F进行处理和更新。在处理5中,仅对文件F的纪录进行学生成绩一览表的编排输出,不进行排序和增加名次等处理。

流程图中文件F的纪录格式设定为见表4形式:

其中的①、②应定义为何种数据项?

参考答案
您可能感兴趣的试题

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

 注意:部分源程序给出如下。

 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

 

试题程序:

 #include<stdio.h>

 #include<malloc.h>

 #include<string.h>

 #include<conio.h>

 #define N 10

 typedef struct ss

 {

  char num[10];

  int order;

 }STU;

 STU*fun(STU a[],int m)

 {

  STU b[N],*tt;

  int i,j,k;

   (1);

  for(i=0;i<N;i++)

   b[i]=a[i];

  for(k=0;k<m;k++)

  {

   for(i=j=0;i<N;i++)

    if((2))

     j=i;

   tt[k]=b[j];

   b[j].order=0;

  }

  return (3);

 }

  outresult(STU a[],FILE*pf)

  {

   int i;

   for(i=0;i<N;i++)

    fprintf(pf,"No=%s Mark=%d\n" ,a[i].num,a[i].order);

    fprintf(pf,"\n\n");

  }

  main()

  {

   STU[N]={{"A01",80},{"A02",79},

       {"A03",66},{"A04",82},{"A05",87},

       {"A06",93},{"A07",78},{"A08",60},

       {"A09",85},{"A10",73}};

   STU * p_order;

   int i,m;

   clrscr();

   printf("* * * The Origial data * * *\n");

   outresult(a,stdout);

   printf("\nGive the numeber of the students who have better score:");

   scanf("%d",&m);

   while(m>10)

   {

    printf("\nGive the number of the studets who have better score:");

    scanf("%d",&m);

   }

   p_order=fun(a,m);

   printf("* * *THE RESULT* * *\n");

   printf("* * * The top students * * *\n");

   for(i=0;i<m;i++)

    printf("%s %d\n",p_order[i].num,p_order[i].order);

    free(p_order);

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服