首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件PROG1.C中
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件PROG1.C中
admin
2019-03-19
53
问题
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<string.h>
3 #define N 10
4 typedef struct ss
5 { char num[10];int s;} STU;
6 fun(STU a(1.STU *s)
7 {
8
9 }
10 main()
11 {STU a[N]={{’’A01’’,81},{’’A02’’,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06”,90},{’’A07’’,79},{’’A08’’,61},{’’A0 9’’,8 0},{’’A10’’,71}},m;
12 int i;
13 printf(’’*****The original data *****\n¨);
14 for(i=0;i<N;i++)printf(’’No=%s Mark=%d\n’’,a
.num,a
.s);
15 fun(a,&m);
16 printf (’’***** THE RESULT*****\n’’),
17 printf(’’The top:%s,%d\n’’,m.num,m.s);
18 NONO();
19 }
20 NONO()
21 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
22 FILE *rf,*wf;
23 STU a[N],m;
24 int i;
25 rf=fopen(’’in.dat’’,’’r’’);
26 wf=fopen(’’out.dat’’,’’w’’);
27 for(i=0;i<10;i++)fscanf(rf,’’%s %d”,a
.num,&a
.s);
28 fun(a,&m);
29 fprintf(wf,’’The top:%s,%d\n’’,m.num,m.s);
30 fclose(rf);
31 fclose(wf);
32 }
选项
答案
1 int i,max=a[0].s,j=0; 2 for(i=1;i<N;i++) 3 if(max<a[i].s){ 4 j=i; 5 max=a[i].s;} 6 *s=a[j];
解析
该程序功能是求最高分数的学生。本题是关于求解结构体中某些成员的最大值,首先将第一个值设定为最大值,并在循环中将其他所有值与该值进行比较,求得最大值。然后将最大值与所有值进行比较,求得所有的最大值。
转载请注明原文地址:https://kaotiyun.com/show/b6Rp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}
以下程序的运行结果是_______。#include"stdio.h"main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;
下列程序的输出结果是______。#includesub1(chara,charb){charc;c=a;a=b;b=c;}sub2(char*a,charb){charc;c=*a;*a
下列程序的输出结果是______。longfun5(intn)(longs;if((n==l)‖(n==2))s=2;
有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*fl)(),int(*f2)(),intx}{returnf2(x)-f1(x)
执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是()main(){chars[100]intc,i;scanf("%c",&C);scanf("%d",&i);
在C语言中,存储类型为()的变量只在使用它们时才占用存储空间。
设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1,则T中的叶子结点数为()。
下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int*p,intn){int*q;intmax,min;max=min=*p;for(q=p;【】
下面函数调用语句含有实参的个数为func((exp1,exp2)(exp3,exp4,exp5));
随机试题
影响影像放大的主要因素,错误的是
绝育术后的护理包括
提示难于撤机的浅快呼吸指数值应为
A.肺肾气虚B.肺气虚C.脾肺气虚D.心肺气虚E.肾气不固久病咳喘,胸闷心悸,乏力少气,自汗声低,舌淡脉弱。其辨证为
少阳经头痛的部位是( )。
对于固定总价合同,为了合理分摊风险,承包商可以要求在合同中约定重大变更,累计工程变更超过一定幅度或其他特殊条件下对合同价格进行调整的规定,但需要在合同中明确()。
项目经理安全职责应包括( )。
以下哪种情况为卖出信号?( )
民法是()。
Don’thazardyourreputationbysupportinghisjointventurewiththegayfromLosAngels.
最新回复
(
0
)