---------------------------------- void SortDat() {int I,j; PRO xy;
for(I=0;I<99;I++) for(j=I+1;j<100;j++)
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 {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } 题目8:函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。 替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。 注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ------------------------------ void encryptChar() {int I; char *pf; for(I=0;I while(*pf!=0) {if(*pf*11%6>130||*pf*11%6<=32); else *pf=*pf*11%6; pf++; } } } 题目9:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数SortCharD( ), 其函数的功能是: 以行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。 例: 原文: dAe,BfC. CCbbAA 结果: fedCBA., bbCCAA 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。 注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ----------------- 类型:字符串(单词)的倒置和删除。 答案: void SortCharD(void) {int I,j,k,strl; char ch; for(I=0;I if(xx[I][j] {ch=xx[I][j]; xx[I][j]=xx[I][k]; xx[I][k]=ch;} }} 题目10:请编制函数ConvertCharA(), 其函数的功能是: 以行为单位把字符串中的所有小写字母改写成该字母的下一个字母, 如果是字母z, 则改写成字母a,大写字母和其它字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT3.DAT中。 例: 原文: Adb.Bcdza abck.LLhj 结果: Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。 注意: 部分源程序存放在PROG1.C中。 请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 ----------------- 类型:字符串(单词)的倒置和删除。 答案: void ConvertCharA(void) {int I,j,str; for(I=0;I if(xx[I][j]=='z')xx[I][j]='a'; else if(xx[I][j]>='a'&&xx[I][j]<='y') xx[I][j]+=1; } } 题目11:下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。 例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。 注意:部分源程序已给出。 请勿改动主函数main()和输出数据函数readwriteDat()的内容。 ----------------------- void chg(char*s) {while(*s) if(*s=='z'||*s=='Z') {*s-=25;s++;} else if(*s>='a'&&*s<='y') {*s+=1;s++;} else if(*s>='A'&&*s<='Y') {*s+=1;s++;} else s++; } 题目12:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量 sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小到大进行排列.最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.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].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 {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } 题目13:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.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;} } 题目14:已知数据文件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; int k; for(I=0;I else {flag=0;break;} if (a[I]%2==0) flag=0;} if (flag==1) {b[cnt]=a[I]; cnt++;} } for(I=0;I {k=b[I];b[I]=b[j];b[j]=k;} } 题目15:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的