首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
admin
2017-09-23
26
问题
学生的记录由学号和成绩组成,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全国计算机二级
相关试题推荐
若语句“t=fun(fun(x,y,A),(a+b,a+C),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为()。
若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。
先有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.C"main(){fun();printf("\n");}
下面程序是求出数组arr的两条对角线上的元素之和,请填空。#include"stdio.h"main(){intarr[3][3]={2,3,4,8,3,2,7,9,8),a=0,b=0,i,j;for(i=0;i<3;i+
在下列选项中,没有构成死循环的程序段是()。
C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是()。
下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",
下面结构体的定义语句中,错误的是()。
阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);print
以下选项中与if(a==1)a++;elsea=b;语句功能不同的语句是()。
随机试题
咽淋巴环
假设法定存款准备金率为17%,超额存款准备金率为5%,通货一存款比率为8%,试计算货币乘数。在货币乘数不变的情况下,如果中央银行希望货币供给量减少1260亿元,为了达到这个目的,中央银行应该回笼多少基础货币?
A.口感期B.肛-肌期C.生殖-运动期D.潜在期E.青春期按艾瑞克森心理社会发展学说解决好自我认同对角色紊乱的危机应在
维生素C可使尿糖检测
肝硬化最有意义的病理组织学特点是
具有成瘾性的中枢镇咳药是()。
A公司是一家生产企业,其财务分析采用改进的管理用财务报表分析体系,该公司2014年、2015年改进的管理用财务报表相关历史数据如下:要求:利用因素分析法,按照净经营资产净利率差异、税后利息率差异和净财务杠杆差异的顺序,定量分析2015年权益净利率各
如下图,ABCD是棱长为3的正四面体,M是棱AB上的一点,且MB=2MA,G是三角形BCD的重心,动点P在棱BC上,则PM+PG的最小值是()。
在PPoint中,要添加或改变幻灯片中的对象链接,可选择“幻灯片放映”菜单中的()命令。A.动作设置B.预设动画C.幻灯片切换D.自定义放映
Everyanimalisalivingradiator(散热器)—heatformedinitscellsandgivenoffthroughitsskin.Warmbloodedanimalskeepano
最新回复
(
0
)