学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不只一个,函数返回分数最低学生的人数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <stdio.h>define N 16typedef struct{char num[10];int s;}STREC;int fun (STREC *a,

题目

学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不只一个,函数返回分数最低学生的人数。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <stdio.h>

define N 16

typedef struct

{char num[10];

int s;

}STREC;

int fun (STREC *a,STREC *b)

{

}

main ()

{

STREC s[N]={{“GA005”,82},{“GA003”,75},

{“GA002”,85},{“GA004”,78},{“GA001”,95},

{“GA007”,62},{“GA008”,60},{“GA006”,85},

{“GA015”,83},{“GA013”,94},{“GA012”,78},

{“GA014”,97},{“GA011”,60},{“GA017”,65},

{“GA018”,60},{“GA016”,74}};

STREC h[N];

int i,n;

FILE *out;

n=fun(S,h);

printf(“The %d lowest score:\n”,n);

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

printf(“%s %4d\n”,h[i].mum,h[i].s);

/*输出最低分学生的学号和成绩*/

printf(“\n”);

out=fopen("outl9.dat",“w”);

fprintf(out,“%d\n”,n);

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

fprintf(out, “%4d\n”,h[i].s);

fclose(out);

}


相似考题
更多“学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun(),它的 ”相关问题
  • 第1题:

    某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

    例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fIm的花括号中填入你编写的若干语句。


    正确答案:
    voidfun(STREC*a)inti:a一>ave=0.0:fbr(i=0;i<N;i++)a一>ave=a—>ave+·一>s[i];/*求各门成绩的总和}/a->ave/=N;/}求平均分*/}【考点分析】本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。【解题思路】本题考查自定义形参的相关知识点,程序流程是这样的:在如n()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC·a,此时,引用成员的方式可以使用指向运算符,即a一>ave和a—>s[i],当然也可用(*a),ave和(*a).S[i]。

  • 第2题:

    某学生的记录由学号、8门课成绩和平均分组成,学号和 8门课的成绩已在主函数中给出。请编写fun()函数,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。

    例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5, 87.5,则他的平均分应当是78.875。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    define N 8

    typedef struct

    { char num [10];

    double s[N];

    double ave;

    } STREC;

    void fun()

    {

    }

    main()

    {

    STREC s={"GA005",85.5,76,69.5,85,91, 72,64.5,87.5);

    int i;

    fun (&s);

    printf("The %s' s student data:\n",s.num)/ /*输出学号*/

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

    printf("%4.1f\n", s.s[i]);

    /*输出各科成绩*/

    printf("\nave=%7.3f\n",s.ave);

    /*输出平均分*/

    }


    正确答案:void fun(STREC *p) { int i; p->ave=0.0; for(i=0;iN;i++) p->ave=p->ave+p->s[i]; /*求各门成绩的总和*/ p->ave=p->ave/N; /*求平均分*/ }
    void fun(STREC *p) { int i; p->ave=0.0; for(i=0;iN;i++) p->ave=p->ave+p->s[i]; /*求各门成绩的总和*/ p->ave=p->ave/N; /*求平均分*/ } 解析:本题考查自己定义形参的相关知识点,程序流程是这样的,在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC *p,此时,引用成员的方式可以是用指向运算符即p->ave和 p->s[i],当然,也可用(*p).ave和(*p).s[i]。

  • 第3题:

    请教:2016年计算机二级考试C++模拟试题简答题4答案

    已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。


      void fun(stu a[],stu *s)

      {int i,min;

      min=a[0].s;

      for(i=0;i

      if(a.s

      {min=a.s;

      *s=a;}}

  • 第4题:

    学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数:

    注意:部分源程序在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数flm的花括号中填入你编写的若干语句。


    正确答案:
    【考点分析】本题考查:查找结构体数组中的最小数据,需要通过for循环语句和if条件语句来完成。【解题思路】本题中第一个循环语句的作用是遍历数组求出最低分数,第二个循环语句的作用是将数组中的元素与最低分比较,查找是否存在与最低分相等的成绩。

  • 第5题:

    已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。

    注意:部分源程序存在文件PROGl.C文件中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的莅括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是求最低分数的学生。本题是关于求解结构体中某些成员的最小值,首先将第一个值设定为最小值,并在循环中将其他所有值与该值进行比较,求得最小值。