2022年2022年计算机三级网络技术编程题集 .pdf
一、按结构体成员筛选并排序已知在文件 IN.DAT 中存有 100个产品销售记录, 每个产品销售记录由产品代码dm(字符型 4 位) 、产品名称 mc(字符型 10 位) 、单价 dj(整型) 、数量 sl(整型) 、金额 je(长整型)几部分组成。函数ReadDat ()的功能是读取这100 个销售记录并存入结构数组sell 中。请编制函数 SortDat() ,其功能要求:按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小到大进行排列,最终排列结果仍存入结构数组sell 中,最后调用函数WriteDat()把结果输出到文件OUT.DAT 中。void SortDat( ) int i, j; PRO temp; for(i=0;i99;i+) for(j=i+1;j0) temp=selli; selli=sellj; sellj=temp; else if(strcmp(selli.mc,sellj.mc)= =0) if(selli.jesellj.je) temp=selli; selli=sellj; 二、数位分解后按数筛选统计并排序1、已知数据文件 IN.DAT 中存有 300 个 4 位数,并已调用读函数readDat( )把这些数存入数组 a 中。请编制函数 jsValue() ,其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的 4位数依次存入数组b中, 然后对数组 b 的 4位数按从小到大的顺序进行排序,最后调用写函数 writeDat()把数组 b 中的数输出到 OUT.DAT 文件中。void jsValue( ) int i, j; int a1,a2,a3,a4; int temp; for(i=0;i300;i+) a4=ai/1000; a3=ai%1000/100; a2=ai%100/10; a1=ai%10;if (a4+a1= =a3+a2) bcnt=ai; cnt+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - for(i=0;icnt-1;i+) for(j=i+1;jbj) temp=bi; bi=bj; bj=temp; 2、已知数据文件 IN.DAT 中存有 200 个 4 位数,并已调用读函数readDat( )把这些数存入数组 a 中。请编制一函数jsVal() ,其功能是:如果4 位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些 4 位数按从大到小的顺序存入数组 b 中。最后调用写函数writeDat()把结果 cnt 及数组 b 中符合条件的 4 位数输出到 OUT.DAT 文件中。void jsVal( ) int i, j; int a1,a2,a3,a4; int temp; for(i=0;i200;i+) a4=ai/1000; a3=ai%1000/100; a2=ai%100/10; a1=ai%10;if(a4%2!=0&a3%2!=0&a2%2!=0&a1%2!=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) temp=bi; bi=bj; bj=temp; 3、已知数据文件 IN1.DAT 和 IN2.DAT 中分别存有 100 个两位十进制数, 并且已调用读函数 readDat( ) 把这两个文件中的数存入数组a和 b中。 请编制一函数 jsVal() ,实现的功能是依次对数组a 和 b 中的数按条件重新组成一个新数并依次存入数 c 中,再对数组c 中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果 c 输出到 OUT.DAT 文件中。组成新数的条件: 如果数组 a和 b 中相同下标位置的数必须符合一个是偶数,另一个是奇数,则数组 a中的数按二进制数左移八位后再加上数组b 对应位置上的数,把这样组成的新数依次存入数组c 中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - void jsVal( ) int i, j; int temp; for(i=0;i=MAX-1;i+) if(ai%2= =0)&(bi%2!=0) (ai%2!=0&(bi%2= =0) ci=(ai8)+bi; cnt+; for(i=0;iMAX-1;i+) for(j=0;jcj+1) temp=cj; cj=cj+1; 4、下列程序的功能是: 选出 5000以下符合条件的自然数。 条件是:千位数字与百位数字之和等于数位数字与各位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10 倍。计算并输出这些4 位自然数的个数cnt 及这些数的和 sum.请编写函数 countValue( )实现程序的要求, 最后调用函数 writeDat()把结果 cnt和 sum输出到 OUT.DAT 文件中。void countValue( ) int i; int a1,a2,a3,a4; for(i=5000;i=1000;i- -) a4=i/1000; a3=i%1000/100; a2=i%100/10; a1=i%10;if(a4+a3= =a2+a1&a4+a3= =(a1-a4)*10) cnt+; sum+=I; 5、已知数据文件 IN.DAT 中存有 200 个 4 位数,并已调用读函数readDat( )把这些数存入数组 a 中。请编制一函数jsVal() ,其功能是:把一个4 位数的千位数上的值减百位数上的值再减十位数上的值最后减个位数上的值,如果得出的值大于等于零且此 4 位数是奇数, 则统计出满足此条件的数的个数cnt并把这些数存入数组 b 中,然后对数组 b 的 4 位数按从小到大的顺序进行排序,最后调用函数writeDat()把结果 cnt 及数组 b 中符合条件的 4 位数输出到 OUT.DAT 文件中。void jsVal( ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - int i, j; int a1,a2,a3,a4; int temp; for(i=0;i=0)&ai%2!=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jbj) temp=bi; bi=bj; bj=temp; 三、数位分解后按数筛选及求平均值已知数据文件 IN.DAT 中存有 300 个 4 位数,并已调用读函数 readDat( )把这些数存入数组 a 中。请编制函数 jsValue() ,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的4 位数的平均值 pjz1,以及所有不满足此条件的4 位数的平均值 pjz2,最后调用函数 writeDat()把结果 cnt,pjz1,pjz2 输出到 OUT.DAT 文件中。例如: 7153,7+1=5+3,则该数满足条件,计算平均值pjz1,且个数 cnt=cnt+1。8129,8+12+9,则该数不满足条件,计算平均值pjz2。void jsValue( ) int i, n=0; int a1,a2,a3,a4; for(i=0;i=0且 ab-cd=10 且两个数均是奇数, 同时两个新十位数字均不为零,则将满足此条件的4 位数按从大到小的顺序存入数组b 中,并要计算满足上述条件的4 位数的个数 cnt,最后调用函数 writeDat()把结果 cnt 及数组 b 中符合条件的4 位数输出到 OUT.DAT文件中。void jsVal( ) int i, j; int a1,a2,a3,a4; int temp; int ab,cd; for(i=0;i=0&(ab-cd)=10&ab%2= =1&cd%2= =1&a4!=0&a1!=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) temp=bi; bi=bj; bj=temp; 2、已知数据文件 IN1.DAT 和 IN2.DAT 中分别存有 100 个两位十进制数, 并且已名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 调用读函数 readDat( ) 把这两个文件中的数存入数组a和 b中。 请编制一函数 jsVal() ,实现的功能是依次对数组a 和 b 中的数按条件重新组成一个新数并依次存入数 c 中,再对数组c 中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果 c 输出到 OUT.DAT 文件中。组成新数的条件: 如果数组 a 和 b 中相同下标位置的数均是奇数,则数组 a 中十位数字为新数的千位数字, 个位数字仍未新数的个位数字,数组 b 中的十位数字为新的百位数字,个位数字为新的十位数字,这样组成的新数并存入数组c中。例如: a:12 31 24 15 21 15 b:32 45 17 27 18 15 c:3451 1275 1155 排序后 c;1155 1275 3451 void jsVal( ) int i, j; int temp; for(i=0;i=MAX-1;i+) if(ai%2!=0)&(bi%2!=0) ci=(ai/10)*1000+(bi/10)*100+(bi%10)*10+(ai%10); cnt+; for(i=0;iMAX-1;i+) for(j=0;jcj+1) temp=cj; cj=cj+1; cj+1=temp; 五、根据相邻数大小进行筛选统计并排序已知数据文件 IN.DAT 中存有 200 个 4 位数,并已调用读函数 readDat( )把这些数存入数组 a 中。请编制一函数jsVal() ,其功能是:依次从数组a 中取出一个 4位数,如果该 4 位数连续小于该4 位数以后的 5 个数且该数是偶数 (该 4 位数以后不满 5 个数,则不统计),则统计出满足此条件的数的个数cnt 并把这些 4 位数按从小到大的顺序存入数组b 中,最后调用函数writeDat()把结果 cnt 及数组 b 中符合条件的 4 位数输出到 OUT.DAT 文件中。void jsVal( ) int i, j; int temp; for(i=0;i=MAX-5;i+) if(aiai+1&aiai+2&ai ai+3&aiai+4&aiai+5&ai%2= =0) bcnt=ai; cnt+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - for(i=0;icnt-1;i+) for(j=i+1;jbj) temp=bi; bi=bj; bj=temp; 六、根据后 3 位数排序在文件 IN.DAT 中有 200 个正整数,且每个数均在1000 至 9999 之间。函数readDat( )的功能是读取这 200个数存放到数组aa中。请编制函数 jsSort() ,该函数的功能是:要求按每个数的后3 位的大小进行降序排列,将排序后的前10个数存入数组 bb 中,如果出现后 3 位相等的数,则对这些数按原始4 位数据进行升序排列。最后调用函数writeDat()把结果 bb 输出到 OUT.DAT 文件中。void jsSort( ) int i, j; int temp; for(i=0;i199;i+) for(j=i+1;j200;j+) if(aai%1000aaj; temp=aai; aai=aaj; aaj=temp; for(i=0;i10;i+) bbi=aai; 七、数组排序问题在文件 IN.DAT 中有 200组数据, 每组有 3个数, 每个数均是 3位数。 函数 readDat( )是读取这 200 组数据存放到结构数组aa中。请编制函数jsSort() ,该函数的功能是:要求在 200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb 中, 再对结构数组 bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果 bb输出到 OUT.DAT 文件中。void jsSort( ) int i, j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - int cnt=0; Data temp; for(i=0;iaai.x1+aai.x3) bbcnt=aai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bbi.x2+bbi.x3bbj.x2+bbj.x3) temp=bbi; bbi=bbj; bbj=temp; return cnt; 八、迭代算法1、下列程序的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0 的一个实根。xn+1=cos(xn) 迭代步骤如下:(1)取 x1初值为 0.0 (2)x0=x1,把 x1 的值赋给 x0 (3)x1=cos(x0),求出一个新的 x1 (4)若 x0-x1 得绝对值小于 0.000001,执行步骤 (5),否则执行步骤 (2) (5)所求 x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回请编写函数 countValue( )实现程序要求,最后调用函数writeDat()把结果输出到 OUT.DAT 文件中。float countValue( ) float x0,x1=0.0; while(1) x0=x1; x1=cos(x0); if(fabs(x0-x1)1e-6) break; return x1; 2、 编写函数 jsValue( ),它的功能是求 Fibonacci 数列中大于 t 的最小的一个数, 结果由函数返回,其中Fibonacci 数列 F(n)的定义为:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数 writeDat()把结果输出到OUT.DAT 文件中。例如:当 t=1000时,函数值为 1597。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - int jsValue(int t) int f1=0,f2=1,fn; fn=f1+f2; while(fn=t) f1=f2; f2=fn; fn=f1+f2; return fn; 3、某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1 下列程序的功能是:要求依次对于整数M=100,1000 和 10000求出对应的 n 值,使其满足: SnM,且 Sn+1M,这里 Sn=A1+A2+, +An,并依次把 n 值存入数组单元b0,b1,b2 中,请编写函数jsValue( )来实现此功能,最后调用函数writeDat()把数组 b 的值输出到 OUT.DAT 文件中。void jsValue( ) int n=1; int a1=1,a2=1,an; int sum0,sum; sum0=a1+a2; while(1) an=a1+a2*2; sum=sum0+an; a1=a2; a2=an; n+; if(sum0=100) b0=n; if(sum0=1000) b1=n; if(sum0=10000) b2=n; break; sum0=sum; 九、计算素数1、下列程序的功能是:选出1001000 之间的所有个位数字与十位数字之和被10 除所得余数恰是百位数字的素数(如293) 。计算并输出上述这些素数的个数cnt,以及这些素数值的和sum。请编写函数 countValue( )实现程序要求,最后调用函数 writeDat()把结果 cnt 和 sum输出到 OUT.DAT 文件中。void countValue( ) int i,j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - int a3,a2,a1; int half; for(i=101;i1000;i+) a3=i/100; a2=i%100/10; a1=i%10; if(a3= =(a2+a1)%10) half=i/2; for(j=2;jhalf) cnt+; sum+=i; 2、下列程序的功能是: 计算 500800之间的素数的个数cnt,并按所求素数的值从大到小排序, 在计算其间隔减、 加之和, 即第 1 个素数 -第 2 个素数 +第 3 个素数-第 4 个素数 +第 5 个素数, 的值sum。请编写函数 countValue( )实现程序要求,最后调用函数writeDat()把结果 cnt 和 sum输出到 OUT.DAT 文件中。void countValue( ) int i,j; int half; int xx100; for(i=800;i500;i- -) half=i/2; for(j=2;j=half) xxcnt=i; cnt+; for(i=0,j=-1;icnt;i+) j*=-1; sum+=j*xxi; 3、下列程序的功能是:将大于整数m且紧靠 m 的 k 个素数存入数组xx 中。请编写函数 num(int m,int k,int xx ) 实现程序要求,最后调用函数readwriteDAT()把结果输出到 OUT.DAT 文件中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 例如:若输入 17,5,则应输出 19,23,29,31,37 void num(int m,int k,int xx) int i,half,cnt=0; int data=m+1; while(1) half=data/2; for(i=2;ihalf) xxcnt=data; cnt+; if(cnt=k) break; data+; 4、已知数据文件 IN.DAT 中存有 300 个 4 位数,并已调用读函数readDat( )把这些数存入数组 a 中。请编制一函数jsValue() ,其功能是:求出这些4 位数是素数的个数 cnt,再求出所有满足此条件的4 位数的平均值 pjz1,以及所有不满足此条件的 4 位数的平均值 pjz2, 最后调用函数writeDat()把结果 cnt,pjz1,pjz2 输出到 OUT.DAT 文件中。例如: 5591是素数,则该数满足条件,计算平均值pjz1,且个数 cnt=cnt+1 9812是非素数,则该数不满足条件,计算平均值pjz2。void jsValue( ) int i,n=0; for(i=0;i300;i+) if(isP(ai) pjz1+=ai; cnt+; else pjz2+=ai; n+; pjz1/=cnt; pjz2/=n; 5、下列程序的功能是:找出所有100 以内(含 100)满足 I,I+4,I+10 都是素数的整数 I(I+10 也是在 100 以内)的个数 cnt,以及这些 I 之和 sum。请编写函数countValue( )实现程序要求, 最后调用函数 writeDat()把结果 cnt 和 sum输出到OUT.DAT 文件中。 (数值 I 不是素数)void countValue( ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - int i; cnt=0; sum=0; for(i=2;i90;i+) if(isPrime(i)&isPrime(i+4)&isPrime(i+10) cnt+; sum+=i; 十、统计个数及求平均值1、已知在文件IN.DAT 中存有若干个数(个数 200)4 位数字的正整数,函数readDat( )的 功能是读 取这若 干个正 整数并 存放到 数组xx 中 。请编 制函数CalValue() ,其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移 1 位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值) 的算术平均值 totPjz, 最后调用函数 writeDat()把结果输出到OUT.DAT 文件中。void CalValue(void) int i; int data; for(i=0;i0) totNum+; data=xxi1; if(data%2= =0) totCnt+; totPjz+=xxi; totPjz/=totCnt; 2、请编制程序,要求:将文件IN.DAT 中的 200个整数读入数组xx 中,求出数组 xx 中奇数的个数 cnt1 和偶数的个数cnt2,以及数组 xx 下标为偶数的元素值的算术平均值 pj(保留 2 位小数) ,结果 cnt1,cnt2,pj输出到 OUT.DAT 文件中。void main( ) int cnt1,cnt2,xxN; float pj; FILE*fw; int i,k=0; long j; system(“ OUT.DAT” ,” w” ); read_dat(xx); for(i=0,j=0;cnt1=0,cnt2=0;iN;i+) if(xxi%2!=0) cnt1+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - else cnt2+; if(i%2= =0) j+= =xxi; k+; pj=(float)(j*100/k)/100; printf(“ nncnt1=%d,cnt2=%d,pj=%6.2fn” ,cnt1,cnt2,pj) fprintf(fw, ” %dnn%dn%6.2fn” ,cnt1,cnt2,pj); fclose(fw); 3、已知在文件 IN.DAT 中存有 N 个实数( N200) ,函数 readDat( )的读取这 N个实数并存入数组xx 中。请编制函数CalValue() ,其功能要求:(1)求出 N个实数的平均值aver。 (2)分别求出这 N 个实数的整数部分值之和sumint 及其小数部分之和 sumdec ,最后调用函数 writeDat()把结果输出到 OUT.DAT 文件。void CalValue( ) int i; double sum=0.0; for(i=0;iN;i+) sumint+=(int)xxi; sumdec+=(xxi-(int)xxi); sum=sum+xxi; aver=sum/N; 十一、平均值及方差请编制函数 readDat( )实现从文件 IN.DAT 中读取 1000 个十进制整数到数组xx中。请编制函数 Compute分别计算出 xx 中奇数的个数 odd、奇数的平均值 ave1,偶数的平均值 ave2以及所有奇数的方差totfc 的值。最后调用函数writeDat()把结果输出到 OUT.DAT 文件中。原始数据文件存放的格式是:每行存放10 个数,并用逗号隔开(每个数均大于0 且小于等于 2000) 。int ReadDat(void) FILE*fp; int i,j; if(fp=fopen(“IN.DAT”,“r”)= =NULL) return 1; for(i=0;i100;i+) for(j=0;j10;j+) fscanf(fp,“%d,”,&xxi*10+j); fscanf(fp,” n” ); if(feof(fp) break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - fclose(fp); return 0; void Compute(void) int i; int ttMAX; for(i=0;i1000;i+) if(xxi%2!=0) odd+; ave1+=xxi; ttodd-1=xxi; else even+; ave2+=xxi; ave1/=odd; ave2/=even; for(i=0;iodd;i+) totfc+=(tti-ave1)*(tti-ave1)/odd; 十二、整除1、请编制程序,要求:将文件IN.DAT 中的 200个整数读入数组xx 中,求出数组 xx中最大数 max及最大数的个数 cnt 和数组 xx 中值能被 3 整除或能被 7 整除的数的算术平均值pj (保留两位小数), 结果 max,cnt,pj输出到 OUT.DAT 文件中。void main( ) int i,k,cnt,xxN,max; float pj; FILE*fw; long j=0; system(“ CLS” ); fw=fopen(“ OUT.DAT ” ,” w” ); read_dat(xx); max=xx0; for(i=0,k=0;imax) max=xxi; if(xxi%3= =0 xxi%7= =0) j+=xxi; k+; for(i=0,cnt=0;iN;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - if(xxi= =max) cnt+; pj=(float)(j*100/k)/100; printf(“ nnmax=%d,cnt=%d,pj=%6.2fn” ,max,cnt,pj); fprintf(fw, ” %dn%dn%6.2fn” ,max,cnt,pj); fclose(fw); 2、请编写函数 void countValue(int *a,int*n), 它的功能是:求出1 到 1000 之内能被 7 整除或 11 整除但不能同时被7 和 11 整除的所有整数, 其结果按从小到大的顺序存放在数组 a 中,并通过 n 返回这些数的个数。void countValue(int*a,int*n) int i; *n=0; for(i=1;i=1000;i+) if(i%7= =0&i%11!=0) (i%7!=0&i%11= =0) *a=i; *n=*n+1; a+; 3、请编写函数 void countValue( ),它的功能是:求n以内(不包括 n)同时能被3 与 7 整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s 输出到 OUT.DAT 文件中。double countV alue(int n) int i; double sum=0.0; for(i=1;in;i+) if(i%3= =0&i%7= =0) sum+=i; sum=sqrt(double)sum); return sum; 十三、字符串替代函数 readDat( )的功能是实现从文件ENG.IN 中读取一篇英文文章 ,存入到字符串数组 xx 中。请编制函数 encryChar( ),按给定的替代关系对数组xx 中所有字符进行替代,仍存入数组xx 的对应的位置上,最后调用函数writeDat()把结果 xx输出到 PS.DAT文件中。替代关系: f(p)=p*11mod256(p 是数组 xx 中某一个字符的ASCII 值, f(p)的值小于等于 32 或 f(p)对应的字符是大写字母, 则该字符不变, 否则将 f(p)所对应的字符进行替代。void encryChar( ) int i,j; int str; char ch; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - for(i=0;imaxline;i+) str=strlen(xxi); for(j=0;jstr;j+) ch=xxij*11%256; if(ch= A &ch= Z ) continue; else xxij=ch; 十四、字符串改写1、函数 readDat( )的功能是实现从文件IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中。请编制函数 ConvertCharA( ),该函数功能是: 以行为单位把字符串中所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍未大写字母, 小写字母仍未小写字母, 其他字符不变。 把已处理的字符串仍按行重新存入字符串数组xx 中。最后调用函数writeDat()把结果 xx 输出到 OUT.DAT 文件中。例如:原文: Adb.Bcdza acbk.LLhj 结果: Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是: 每行的宽度均小于80 个字符,含标点符号和空格。void ConvertChar(void) int i,j; int str; for(i=0;imaxline;i+) str=strlen(xxi); for(j=0;j= a &xxij= a &*s= A &*s= Y ) *s+=1; s+; else s+; 十五、字符串排序1、函数 readDat( )的功能是实现从文件IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中。请编制函数 SortCharD ( ),该函数功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx 中,最后调用函数 writeDat()把结果 xx 输出到 OUT.DAT 文件中。例如:原文: dAe,BfC CCbbAA 结果: fedCBA bbCCAA 原始数据文件存放的格式是: 每行的宽度均小于80 个字符,含标点符号和空格。void SortCharD( ) int i,j,k; int str; char temp; for(i=0;imaxline;i+) str=strlen(xxi); for(j=0;jstr-1;j+) for(k=j+1;kstr;k+) if(xxijxxik) temp=xxij; xxij=xxik; xxik=temp; 2、函数 readDat( )的功能是从文件IN.DAT 中读取 20 行数据存放到字符串数组xx 中(每行字符串长度均小于80) 。请编制函数 jsSort( ),该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx 中,最后调用函数writeDat()把结果 xx 输出到 OUT.DAT 文件中。条件:从字符串中间一分为二,左边部分按字符的ASCII 值降序排序,排序后,左边部分与右边部分按例子所示进行交换。如果原字符长度为奇数, 则最中间的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - 字符不参加处理,字符仍放在原位置上。例如:位置0 1 2 3 4 5 6 7 8 源字符串a b c d h g f e 2 3 4 9 8 7 6 5 则处理后字符串 h g f e d c b a 8 7 6 5 9 4 3 2 void jsSort( ) int i,j,k; int str,half; char temp; for(i=0;i20;i+) str=strlen(xxi); half=str/2; for(j=0;jhalf-1;j+) for(k=j+1;khalf;k+) if(xxij=0;j- -,k- -) temp=xxij; xxij=xxik; xxik=temp; 3、函数 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 void jsSort( ) int i,j,k; int str; char temp; for(i=0;i20;i+) str=strlen(xxi); for(j=1;jstr-2;j=j+2) for(k=j+2;kxxik; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - temp=xxij; xxij=xxik; xxik=temp; 十六、字符移动1、函数 readDat( )的功能是实现从文件IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中。请编制函数 StrCharJL ( ),该函数功能是:以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的ASCII 值小于等于 32或大于等于 100,则原字符保持不变, 否则就把左移后的字符ASCII 值再加上原字符的 ASCII 值,得到的新字符仍存入到源字符串对应的位置。最后把已处理的字符串仍按行重新存入字符串数组xx 中,最后调用函数writeDat()把结果xx 输出到 OUT.DAT 文件中。void StrCharJL(void) int i,j; int str; char