2012年计算机三级数据库上机题及参考答案(9)
3546 点击·0 回帖
![]() | ![]() | |
![]() | 52.在文件IN.dat中有200组数据,每组有3个数,每个数均是三位数。函数Rdata()篡夺这200组数据存放到结构数组aa中,请编写函数numSort(),其功能是:要求在200组数据中找出前提为每组中的第2个数大于第1个数加第3个数之和,其中知足前提的组数作为函数numSort()的返回值,同时把知足前提的数据存入结构数组bb中,再对bb中的数据按照每组数据的第2个数加第3个数之和的巨细进行降序枚举(第2个数加第3个数的和均不相等),排序后的结不美观仍从头存入结构数组bb中。最后挪用函数Wdata(),把结不美观bb输出到文件OUT.dat中。 【谜底】 int numSort() { int i, cnt = 0, j; data ch; for (i=0; i<200; i++) if (aa.x2 > aa.x1+aa.x3) { bb = aa; cnt++; } for (i=0; i for (j=i+1; j if (bb.x2+bb.x3 < bb.x2+bb.x3) { ch = bb; bb = bb; bb = ch; } return cnt; } 53.已知数据文件IN.dat中存有200个四位数,并已挪用读函数rData()把这些数存入数组a中,请编写函数CalVal(),其功能是:把一个四位数的千位数字上的值加上十位数字上的值刚好等于百位数字上的值加上个位数字上的值,而且原四位数是偶数,则统计出知足此前提的四位数的个数count,并把这些四位数按巨细到大的挨次存入数组b中。最后挪用写函数wData(),把结不美观count以及数组b中合适前提的四位数输出到OUT.dat文件中。 【谜底】 void CalVal() { int i, thou, hun, ten, data, j; for (i=0; i { thou = a/1000; hun = a%1000/100; ten = a%100/10; data = http://www.examw.com/ncre/three/db/149531/a%10; if ((thou+ten==hun+data) ;; a%2!=1) { b = a; count++; } } for (i=0; i for (j=i+1; j if (b > b) { data = http://www.examw.com/ncre/three/db/149531/b; b = b; b = data; } } 54.已知在文件IN.dat中存有100个产物发卖记实,每个产物发卖记实由产物代码code(字符型4位)、产闻缦沱称name(字符型10位)、单价uprice(整型)、数目amount(整型)、金额sum(长整型)5部门组成。此鱿负金额=单价×数目。函数ReadDat()是篡夺这100个发卖记实并存入结构数组sell中。请编写函数SortDat(),其功能要求:按金额巨细到猛进行枚举,若金额不异,则按产物代码从大到小进行枚举,最终枚举结不美观仍存入结构数组sell中。最后挪用函数WriteDat(),把结不美观输出到OUT.dat文件中。 注 【谜底】 void SortDat() { int i, j; PRO temp; for (i=0; i<99; i++) for (j=i+1; j<100; j++) if (sell.sum > sell.sum) { temp = sell; sell = sell; sell = temp; } else if (sell.sum == sell.sum) { if (strcmp(sell.code, sell.code) < 0) { temp = sell; sell = sell; sell = temp; } } } | |
![]() | ![]() |