首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
admin
2017-09-23
64
问题
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。
注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include < stdio.h >
#define N 1 6
typedef struct
{
char hum[10];
int s;
}STREC;
int fun(STREC*a,STREC*b)
{
}
void main()
{
STREC s[N]={{"GA005",85},
{"GA003",76},{"GA002",69},
{"GA004",85},{"GA001",91},
{"GA007",72},
{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},
{"GA012",64},{"GA014",91},
{"GA011",77},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;
n=fun(s,h);
printf("The%d highest
score:\n",n);
for(i=0;i < n;i++)
printf("%s%4d\n",h
.
nHin,h
.s);/*输出最高分学生的学号和成绩*/
printf("\n");
}
选项
答案
int fun (STREC *a, STREC *b) { int i,j =0,max =a[0].s; for(i=0;i < N;i++) if (max < a[i].s)/*找出最大值*/ max =a[i].s; for(i=0;i < N;i++) if(max==a[i].s) b[j++]=a[i]; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/ }
解析
本题考查:结构体数组操作;用循环判断结构查找数组中的最大值。
该程序使用两个循环判断语句,第1个循环判断语句的作用是找出最大值;第2个循环判断语句的作用是找出与max相等的成绩(即最高成绩)的学生记录,并存入b中。
对于如何找出数组中最大值(多个相等)的方法,我们已经不陌生。如何对结构体数组进行类似操作呢?
掌握以下语句:
if (max < a
.s) max =a
.s;
转载请注明原文地址:https://kaotiyun.com/show/bzxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;print
fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。
在C语言中,变量的隐含存储类别是()。
以下选项中,当x为大于1的奇数时,值为0的表达式为()。
已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()。
以下程序段的输出结果是()。#include<stdio.h>main(){charp[][4]={"ABC","DEF","GHI"};inti;for(i=0;i<3;i++)puts(p[i
下面程序的运行结果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
下面程序的功能是:从输入的正整数中选3个数进行输出,要求这些数都是2的倍数,请填空。main(){inta,i=0;scanf("%d",&A);do{if(a>0&&a%2==0){printf("%d
随机试题
铣刀磨损后,切削温度增加的原因是___________。
A.胎盘残留B.胎盘粘连C.胎盘剥离不全D.胎盘嵌顿E.胎盘植入胎盘未剥离时过早挤揉子宫可造成
一额颞部撕裂伤的患者,现场有急救包的情况下,能够采用的止血方法是
A、深部滑行触诊B、深压触诊C、双手触诊D、冲击触诊E、浅部触诊;上述检查法适于下列哪项检查适于大量腹水时检查肝脾的是
如果债券管理人将息票利率、到期期限与信用风险都相同,而只有到期收益率不同的两种债券互换,这种互换是( )。
海南省是我国最具热带海洋气候特色的地方。()
在教学程序中,教师安排的程序性事项就是【】
在资本主义国家的宪法中,权力制约原则主要表现为();在社会主义国家的宪法中,权力制约原则主要表现为()。
[A]Afteralongbreak,onlinebooksellerAmazonisbacktryingtoencourageustoreadinanewway.ItsWebsitenowfeatures
Insomecountriespreschooleducationinnurseryschoolsorkindergartens______the1stgrade.
最新回复
(
0
)