首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。 注意:部分源程序在文件PROG1.C中。 请勿改动
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。 注意:部分源程序在文件PROG1.C中。 请勿改动
admin
2017-02-24
77
问题
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 #include<conio.h>
4 #inclucle<stdlib.h>
5 #define N 10
6 typedef struct ss
7 {char num[10];
8 int s;
9 }STU;
10 fun(STU a[],STU*S)
11 {
12
13 }
14 void main()
15 {
16 FILE*wf;
17 STU a[N]={("A01",81},{"A02",89),{"A03",66},{"A04",87),{"A05",77),{"A06",90},{"A07",79),{"A08",61),{"A09",80},{"A10",71}},m;
18 int i;
19 system("CLS");
20 printf("*****The original data*****\n");
21 for(i=0;i<N;i++)
22 printf("No=%S Mark=%d\n",a
.num,a
.s);
23 fun(a,&m);
24 printf("****THE RESULT****\n");
25 printf(“The lowest:%S,%d\n",m.num,m.s);
26 /******************/
27 wf=fopen("out.dat","W");
28 fprintf(wf,"%s,%d",m.num,m.s);
29 fclose(wf);
30 /******************/}
选项
答案
fun(STU a[],STU *s) { int i ; *s=a[0];/*先认为第1个值最小*/ for(i=0;i<N;i++)/*如果在循环的过程中再发现比第1个值更小的则赋给*s*/ if(s->s>a[i].s) *s=a[i]; }
解析
找出结构体数组元素中的最小值。先认为第1个值最小,即*s=a[0];,如果在循环的过程中发现比第1个值更小的,就将指针s指向该元素,直到找到最小元素。另外,本题还涉及结构体中的指向运算符。
转载请注明原文地址:https://kaotiyun.com/show/ZgDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是______。main(){inta=2,b=4,c=6;int*p1=&a,*p2,&b,*p;*(p=&c)=*p1*(*p2);printf("%d\n",c);}
下列程序的输出结果是______。longfun5(intn){longs;if((n==1)‖(n==2))s=2;elses=n+fun5(n-1);return(s);}main(){longx;x=fun5
下列程序的循环次数是______。x=2;do{x=x*x;}while(!x);
有下列程序:fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7)
定义下列结构体(联合)数组:structSt{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句prin
若有定义:“inta[2][3];”则对a数组的第i行第j列元素的正确引用为()。
若a、b、c、d都是血型变量且都已经正确赋初值,则下列不正确的赋值语句是()。
下列程序的输出结果是()。#include<stdio.h>main(){inta=4;printf("%d\n",(a+=a-=a*a));}
以下程序运行后的输出结果是______。main(){charc1,c2;for(c1=’0’,c2=’9’;c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}
随机试题
下列选项中,不属于肾小球性高血压发生机制的是
C3b的功能不包括
企业投资战略类型不依赖于()。
背景资料某本地传输网工程,包括线路和设备两部分。光缆沿线与原有光缆、铁路交越。建设单位和施工单位签订了承包合同,合同工期16周;交越过路手续和赔补由建设单位负责,钢管、水泥、沙石由施工单位采购。施工单位提交了初步的施工进度网络计划并得到了建设单位
建筑物内常用的电气设备和装置包括变、配电装置以及安装在装置中的低压配电和控制电器。其中低压配电和控制电器相间绝缘电阻不应小于()MΩ。
设置往来单位的地区选项。地区编码:14地区名称:华东区
InancientGreeceathleticfestivalswereveryimportantandhadstrongreligiousassociations.TheOlympianathleticfestivalh
下图所示平衡二叉树(树中任一结点的左右子树高度之差不超过1)中,结点A的右子树AR高度为h,结点B的左子树BL高度为h,结点C的左子树CL、右子树CR高度都为h-1。若在CR中插入一个结点并使得CR的高度增加1,则该二叉树(61)。
打开报表后,下列事件中首先发生的是
Nancyhasn’tbegunworkingonherPh.D,______workingonhermaster’s.
最新回复
(
0
)