1、三级网络技术机试-161 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入数组 a中,找出成绩最高的学生的记录(假定最高成绩记录是唯一的),通过形参返回。请编写函数 mmm(STU a,STU*s)实现程序要求,最后调用函数 reawriteDAT()把结果输出到文件 out.dat中。例如:KS01 87KS09 67KS11 97则调用该函数后将输出:The lowest:KS09,67注意:部分源程序已给出。请勿改动主函数 main()和函数 readwrit
2、eDAT()的内容。试题源程序#includeStdio.h#includestring.h#includeconio.h#defime N 10void readwriteDat();typedef struct sschar num10;int s;STU;void mmm(STU a,STU*s)msin()STUaN=“A01“,81,“A02“,89),“A03“,81),“A01“,66),“A04“,87),“A05“,77),“A07“,79),“A08“,61),“A09“,80,“A10“,71,),m;int i;System(“cls“);printf(“* The o
3、riginal data * /n“);for(i=0;iN;i+) printf(“No=%s Mark=%d/n“,ai.num,ai.s);mmm(a,printf(“* THE RESULT*/n“);printf(“The highest:%s,%d/n“,m.num,m.s);readwriteDat();void readwriteDat()FILE *rf,*wf;STU aN,m;int i;rf=fopen(“in.dat“,“r“);wf=fopen(“out.dat“,“w“);for(i=0;i10;i+)fscanf(rf,“%s%d“,ai.num,mmm(a,f
4、printf(wf,“The lowest:%s,%d/n“,m.num,m.s);fclose(rf);fclose(wf);(分数:100.00)_三级网络技术机试-161 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入数组 a中,找出成绩最高的学生的记录(假定最高成绩记录是唯一的),通过形参返回。请编写函数 mmm(STU a,STU*s)实现程序要求,最后调用函数 reawriteDAT()把结果输出到文件 out.dat中。例如:KS01 87KS09 6
5、7KS11 97则调用该函数后将输出:The lowest:KS09,67注意:部分源程序已给出。请勿改动主函数 main()和函数 readwriteDAT()的内容。试题源程序#includeStdio.h#includestring.h#includeconio.h#defime N 10void readwriteDat();typedef struct sschar num10;int s;STU;void mmm(STU a,STU*s)msin()STUaN=“A01“,81,“A02“,89),“A03“,81),“A01“,66),“A04“,87),“A05“,77),“A
6、07“,79),“A08“,61),“A09“,80,“A10“,71,),m;int i;System(“cls“);printf(“* The original data * /n“);for(i=0;iN;i+) printf(“No=%s Mark=%d/n“,ai.num,ai.s);mmm(a,printf(“* THE RESULT*/n“);printf(“The highest:%s,%d/n“,m.num,m.s);readwriteDat();void readwriteDat()FILE *rf,*wf;STU aN,m;int i;rf=fopen(“in.dat“,
7、“r“);wf=fopen(“out.dat“,“w“);for(i=0;i10;i+)fscanf(rf,“%s%d“,ai.num,mmm(a,fprintf(wf,“The lowest:%s,%d/n“,m.num,m.s);fclose(rf);fclose(wf);(分数:100.00)_正确答案:(void mmm(STU a,STU *s)int i;s-s=a0.s;for(i=1;iN;i+)if(ai.ss-s)*s=ai;)解析:解析本题考查的是查询最小值的问题。本题的关键在于结构体变量的使用及指针的使用。结构体的成员变量为“ai.s”,而结构体指针的成员变量为“s-s”。用一个 for循环遍历结构体数组。中的结构体,内嵌 if语句使指针 s指向扫描过所有结构体中成员变量 s的最小结构体。这样,遍历完所有的结构体后,指针 s将指向结构体成员变量 s的最小结构体。