{ b[count] = a[i]; count++; } } for (i=0; i
51.已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数spellNum(),其功能是:把千位数字和十位数字重新组成一个新的二位数ab(新二位数的十位数字是原四位数的千位数字,新二位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的二位数cd(新二位数的十位数字是原四位数的个位数字,新二位数的个位数字是原四位数的百位数字),如果ab 【答案】 void spellNum() { int i, thou, hun, ten, data, j; int ab, cd; for (i=0; i<200; i++) { thou = a[i]/1000; hun = a[i]00/100; ten = a[i]0/10; data = a[i]; if (thou==0 || data==0) continue; ab = 10*thou+ten; cd = 10*data+hun; if (ab { data = b[i]; b[i] = b[j]; b[j] = data; } } 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[i].x2 > aa[i].x1+aa[i].x3) { bb[cnt] = aa[i]; cnt++; } for (i=0; i 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 hun = a[i]00/100; ten = a[i]0/10; data = a[i]; if ((thou+ten==hun+data) && a[i]%2!=1) { b[count] = a[i]; count++; } } for (i=0; i 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[i].sum > sell[j].sum) { temp = sell[i]; sell[i] = sell[j]; sell[j] = temp; } else if (sell[i].sum == sell[j].sum) { if (strcmp(sell[i].code, sell[j].code) < 0) { temp = sell[i]; sell[i] = sell[j]; sell[j] = temp; } } } 55.已知在文件IN.dat中存有若干个(不多于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中所有的正整数个数totNum;②求这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totave。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。 【答案】 void CalValue(void) { int i, thou, hun, ten, data; for (i=0; i 56.下列程序的功能是:计算500~800区间内素数的个数count,并按所求素数的值从大到小的顺序排序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数primeValue()实现程序的要求。最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。 【答案】 void primeValue() { int i, j, half, yy[100]; for (i=800; i>=500; i--) { half = i/2; for (j=2; j { sum += j*yy[i]; j = j*-1; } } 57.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数count以及这些数的和sum。请编写函数calValue()实现程序的要求,最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。 【答案】 void calValue() { int i, thou, hun, ten, data; for (i=5000; i>=1000; i--) { thou = i/1000; hun = i00/100; ten = i0/10; data = i; if (thou+hun==ten+data && thou+hun==(data-thou)*10) { count++; sum += i; } } } 58.已知数据文件IN.dat中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编写函数primecount(),其功能是:如果四位数各个位上的数字均是奇数,则统计出满足此条件的个数count并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。 【答案】 void primecount() { int i, thou, hun, ten, data, j; for (i=0; i<200; i++) { thou = a[i]/1000; hun = a[i]00/100; ten = a[i]0/10; data = a[i]; if (thou%2!=0 && hun%2!=0 && ten%2!=0 && data%2!=0) { b[count] = a[i]; count++; } } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2011三级数据库技术上机试题题目及答案汇编100题(最新)(7)在线全文阅读。
相关推荐: