1、计算机三级数据库技术(上机操作)机试模拟试卷 60及答案与解析 一、程序设计题 1 已知在数据文件 in dat中存有 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位 )、产品名称 me(字符型 10位 )、单价 dj(整型 )、数量 sl(整型 )、金额 je(长整型 )五部分组成。其中:金额由公式金额一单价 *数量计算得出。函数 ReadDat()读取这 100个销售记录并存入结构体数组 sell中。请编写函数SortDat()。其功能是:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终 排列结果仍存入结构体数组 sell中。最后通过 mai
2、n()函数调用函数 WriteDat(),把结果输出到文件 out dat中。 【试题程序】 #include #include #include #define MAX 100 typedef struct char dm5; *产品代码 * char mc11; *产品名称 * int dj; *单价 * int sl, *数量 * long je; *金额 * PR(); PRO sellEMAX; void ReadDat(); void WriteDat(); void SortDat() void main() memset(sell, 0, sizeof(sell); ReadD
3、at(); SortDat(); WriteDat(); void ReadDat() FILE*fp: char str80, ch11; int i; fp=fopen(“in dat”。 “r”); for(i=0Ii100; i+) fgets(str, 80, fp); memcpy(selli dm, str, 4); memcpy(selli me, str+4, 10); memcpy(eh, str+14, 4); ch4=0; selli dj=atoi(ch); memcpy(eh, str+18, 5); eh5=0; selli sl=atoi(ch); selli
4、je=(10ng)selli dj *selli sl; fclose(fp); void WriteDat() FILE*fp: int i; fp=fopen(“out dat”, “tW”); for(i=0;i100;i+) fprintf(fp, “ S s 4d 5d 101d “ n”, selli dm, selli mc, selli dj, selli sl, selli je); fclose(fp); 计算机三级数据库技术(上机操作)机试模拟试卷 60答案与解析 一、程序设计题 1 【正确答案】 void SortDat() int i, j; *定义变量 * PR()temp; for(i=0; iMAX一 1; i+) *选择法排序 * for(j: i+1 1jMAX; j+) if(strcmp(selli dm, sellj dm)dO strcmp(selll,i dm, sellj dm)=08L&selli je selli je) *判断条件 * temp=selli; selli=sellEj sellj=temp;