1、国家三级信息管理技术机试模拟试卷 75及答案与解析 一、程序设计题 1 在文件 in75.dat中有 200组数据,每组有 3个数,每个数均为 3位数。函数readDat()是读取这 200组数存放到结构数组 aa中。请编制函数 JsSort(),其函数的功能是:要求在 200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之和,其中满足条件的个数作为函数 JsSort()的返回值,同时把满足条件的数据存入结构数组 bb中,再对 bb中的数按照每组数据的第一个数加第三个数之和的大小进行升序排列 (第一个数加第三个数 的和均不相等 ),排序后的结果仍重新存入结构数组 bb中。最后调用
2、函数 writeDat()把结果 bb输出到文件 out75.dat。 注意:部分源程序已给出。 请勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。 试题程序: #include stdio.h #include string.h #include conio.h typedef struct int x1,x2,x3; Data; Data aa200,bb200; int jsSort () void main() int count; readDat(); count=jsSort(); writeDat(count); readDat() F
3、ILE *in; int i; in=fopen(“in75.dat“,“r“); for(i=0;i 200;i+) fscanf(in,“%d %d %d“, fclose(in); writeDat(int count) ( FILE *out; int i; clrscr(); out=fopen(“out75.dat“,“w“); for(i=0;i count;i+) printf(“%d, %d, %d 第一个数 +第三个数 =%dn“,bbi.xl,bbi.x2,bbi.x3,bbi.xl+bbi.x3); fprintf(out,“%d,%d,%dn“,bbi.xl,bbi.
4、x2,bbi.x3); fclose(out); 国家三级信息管理技术机试模拟试卷 75答案与解析 一、程序设计题 1 【正确答案】 int jsSort() int i,j,count=0; Data val; for(i=0;i 200;i+) if(aai.x1 aai.x2+aai.x3) /*如果每组数据中的第一个数大于第二、三个数之和 */ bbcount.x1=aai.x1; /*把满足条件的数据存入结构数组 bb中 */ bbcount.X2=aai.X2; bbcount.X3=aai.X3; count+; /*统计满足条件的数据的组数 */ for(i=0;i count
5、-1;i+) /*对 bb中的数按照每组数据的第一个数加第三个数之和的大小进行升序排列 */ for(j=i+1;j count;j+) if(bbi.x1+bbi.x3 bbj.x1+bbi.x3) val=bbi; bbi=bbj; bbj=val; return count; /*满足条件的数据的组数 */ 【试题解析】 本题考查的知识点如下: (1)结构体及结构数组。 (2)数据的排序。 (3)函数的返回值。 本题中,定义了结构类型和结构数组,这就要涉及到结构体和结构数组的访问。相同类型的结构体变量 之间可以直接赋值,也可以依次对结构体中的每个变量进行赋值或访问。排序使用 “选择排序法 ”。函数的值通过 return语句返回,格式为; return表达式或 return(表达式 )或 return,当函数没有返回值时用第 3种格式。在本题中,要用第 1种或第 2种格式。