数WriteDat()把结果输出到文件OUT9.DAT中。
注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
---------------------------------- void SortDat() {int I,j;
PRO xy;
for(I=0;I if(strcmp(sell[I].dm,sell[j].dm)>0) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} else if(strcmp(sell[I].dm,sell[j].dm)==0) if(sell[I].je>sell[j].je) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } 题目39:对10个候选人进行选举,现有一个100条记录的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票.。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 ---------------------- 类型:选票问题。 void CountRs(void) {int I,j=0,k=0; char *str; for(I=0;I<10;I++) yy[I]=0; for(I=0;I<100;I++) {str=xx[I];j=0; while(*str) if(*str=='1'){j++;str++;} else str++; if(j!=0&&j!=10) {str=xx[I];k=0; while(*str) if(*str++=='1') yy[k++]+=1; else k++;} } } 题目40:已知在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这文件中共有多少个正整数totnum;2、求出这些数中的各位数字之和是偶数的数的个数totcnt,以及满足此条件的这些数的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 ---------------------------- void CalValue(void) {int I,thou,hun,ten,data; int ab,sum=0; for(I=0;I ab=thou+hun+ten+data; if (ab%2==0) {totCnt++;sum=sum+xx[I];} }} totPjz=sum/totCnt; } 题目41:下列程序的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件所有的SIX与NINE的和SUM。请编写函数countvalue()实现程序的要求,最后调用函数writedat()把结果cnt和sum,输出到文件out15.dat中.其中S,I,X,N,E各代表一个十进 制数字。 注意:部分源程序已给出。 请勿改动主函数main()的内容。 -------------------- void countValue() {int I=100; while(1) {if(3*I%2==0&&3*I/2>=1000&&3*I/2<=9999) {cnt++;sum+=I+3*I/2;I++;} else I++; if (I>999||3*I/2>9999) break; } } 题目42:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列, 若产品名称相同, 则按金额从大到小进行排列. 最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT8.DAT中。 注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ---------------------------------- void SortDat() {int I,j; PRO xy; for(I=0;I<99;I++) for(j=I+1;j<100;j++) if(strcmp(sell[I].mc,sell[j].mc)<0) {xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;} else if(strcmp(sell[I].mc,sell[j].mc)==0) if(sell[I].je {xy=sell[I]; sell[I]=sell[j];sell[j]=xy;} } 题43:函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行 排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 例如:位置 0 1 2 3 4 5 6 7 源字符串 h g f e d c b a 则处理后字符串 h a f c d e b g 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ------------------------- 类型:字符串左右排序和比较。 void jsSort() {int I,j,k,strl; char ch; for(I=0;I<20;I++) {strl=strlen(xx[I]); for(j=1;j {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;} } } 题44:函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 h g f e d c b a 8 7 6 5 9 4 3 2 1 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ------------------------- 类型:字符串左右排序和比较。 void jsSort() {int I,j,k,strl,half; char ch; for(I=0;I<20;I++) {strl=strlen(xx[I]); half=strl/2; for(j=0;j {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;} for(j=half-1,k=strl-1;j>=0;j--,k--) {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;} } } 题目45:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 依次从数组a中取出一个四位数,如果该数连续大于该四位数以前的5个数且该数是偶数, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。 并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件PROG1.C文件中。 程序中已定义数组: a[200], b[200], 已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 ------------------------- void jsVal() {int I,j,flag=0; for(I=5;I else flag=0; if(a[I]%2!=0) flag=0; if (flag==0) break;} if(flag==1) {b[cnt]=a[I];cnt++;} } for(I=0;I