首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。 注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿
admin
2017-09-23
30
问题
学生的记录由学号和成绩组成,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全国计算机二级
相关试题推荐
在C语言中,变量的隐含存储类别是()。
已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8},i
以下叙述错误的是()。
下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!=’c’)s[j++]=
以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}运行后的输
下面的程序在编泽时产生错误,其出错原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("请输入2个数:");scanf("%d%f",&
下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
执行以下“for(i=1;i++<=4;i++);”语句后,变量i的值是()。
随机试题
患者面色苍白,四肢厥冷,呼吸微弱,额汗淋漓如油。此汗称为
图示电路中,uS=10V,i=1mA,则()。
在资金时间价值计算时,i和n给定,下列等式中正确的有()。
关于以下两种说法:①资产组合的收益是资产组合中单个证券收益的加权平均值②资产组合的风险总是等同于所有单个证券风险之和下列选项正确的是( )。
供应商考评体系中的供应指标包括()等指标。
小学低年级学生相对于高年级学生更容易被一些外界刺激吸引,例如教室外的说话声。这表明()。
1,2,5,29,()
一位著名企业家从百折不挠的拼搏经历中总结出了“冰淇淋哲学”,即卖冰淇淋必须从冬天开始,因为冬天顾客少,会逼迫你降低成本,改善服务。如果能在冬天生存,就再也不会害怕夏天的竞争。根据本段文字,“冰淇淋哲学”主要强调了:
一项技术出现或引进之后,自然会产生技术客体即机器等实物和技术主体即操作的人。但仅有主客体还不能构成现实的技术活动。客体和主体只有在人类的物质生产劳动中构成一定的“社会结合”,技术活动才能得以正常运行,才能成为改造自然的现实力量。主体与客体之间的“社会结合”
若x1、x2是方程x2一3x+1=0的两个根,则|x1一x2|=()。
最新回复
(
0
)