首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件PROG1.C中
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件PROG1.C中
admin
2021-06-15
57
问题
已知学生的记录由学号和学习成绩构成,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[],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},{’’A09’’,80},{’’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/LStp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(注:□代表一个空格符)
有以下程序:#include<stdio.h>intb=2;intfun(int*k){b=*k+b:return(b);}voidmain(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<
若有以下程序#includemain(){chara[20],b[]="Theskyisblue.";inti;for(i=0;i<10;i++)scanf("%c",&a[i]);a[i]=’\0’;gets(b);printf("%s%s
若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是
设有以下函数:yoidfun(intn,char*s){……}则下面对函数指针的定义和赋值均正确的是
以下叙述中正确的是()。
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)0的程序段是
若有定义语句:doublea,*p=&a;以下叙述中错误的是()。
若有定义语句:doublea,*p=&a;以下叙述中错误的是
若主函数中有定义语句:inta[10],b[10],c;,在主函数前定义的fun函数首部为:voidfun(intx[]),则以下选项中错误的调用语句是()。
随机试题
什么叫作联想呢?联想就是见到甲而想到乙。甲唤起乙的联想通常不外乎两种原因:或是甲和乙在性质上相类似,例如看到春光想起少年,看到菊花想到调节之士;或是甲和乙在经验上曾相接近,例如看到扇子想起萤火虫,走到赤壁想起曹孟德或苏东坡。类似和接近不时被混在一起,“记得
Ican’t______whatIamdoingbecauseitissonoisyhere.
核酸的基本组成单位是
在Word2000中,如果在表格中最后的一个单元格按“Tab”键后出现
架空低压线路,10米电杆埋深___________米,在居民区敷设最低高度不小于___________米,导线最小截面,铜线是___________mm,铝线是___________mm。
不属于业主方进度控制任务的有()。
下列关于中小企业板块的说法正确的是()。
首次公开发行股票的公司在网上直播推介活动的公告内容包括()。Ⅰ.招股说明书摘要Ⅱ.推介活动时间Ⅲ.推介活动出席人员名单Ⅳ.网站名称
有限合伙人实施的下列行为中,不视为执行合伙企业事务的有()。
QuantityA:theshortestdistancebetweenthelinex+y=3and2x+2y=4QuantityB:1
最新回复
(
0
)