计算机三级网络考试机试100道分类汇总-字符串
- 格式:doc
- 大小:27.50 KB
- 文档页数:4
1【考点分析】本题考查对4位整数的排序。
考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。
【解题思路】此题属于4位数排序问题。
本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。
本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。
对于问题1可以通过算术运算的取余运算实现(aa[i]%1000);问题2通过包含if判断语句的起泡排序法就可以实现。
void jsSort(){int i,j; /*定义循环控制变量*/int temp; /*定义数据交换时的暂存变量*/for(i=0;i<199;i++) /*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000<aa[j]%1000) /*按照每个数的后3位大小进行降序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}else if(aa[i]%1000==aa[j]%1000) /*如果后3位数相等*/if(aa[i]>aa[j]) /*则要按原4位数的值进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++) /*将排序后的前10个数存入数组b中*/bb[i]=aa[i];}【易错提示】取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。
2【考点分析】本题主要考查的知识点包括:C语言循环结构,if判断语句和逻辑表达式,以及分解多位整数的算术运算。
【解题思路】分析题干,本题除给出条件"SIX+SIX+SIX =NINE+NINE"之外,还可得出2个隐含的条件:条件1:SIX 和NINE分别是3位和4位的正整数;条件2:SIX的十位数字等于NINE的百位数字,NINE的千位数字和十位数字相等。
三级网络技术上机100道新题库六、字符排序7、函数ReadDat( )的功能是实现从文件IN7.DA T中读取一篇英文文章存入到字符串数组xx 中。
请编制函数SortCharD( ),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat( )把结果xx输出到文件OUT7.DA T中。
例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main( )、读函数ReadDat( )和写函数WriteDat( )的内容。
试题程序:#include <stdio.h>#include <string.h>#include <stdlib.h>char xx[50][80];int maxline=0;int ReadDat(void);void WriteDat(void);void SortCharD(){i nt i,j,k str;char t;for (i=0;i<maxline;i++){str=strlen(xx[i]);for(j=0;j<str-1;j++)for(k=j+1;k<str;k++)if(xx[i][j]<xx[i][k]){t=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=t;}}}void main(){system("CLS");if (ReadDat()){printf("数据文件IN7.DA T不能打开!\n\007");return;}SortCharD();WriteDat();}int ReadDat(void){FILE *fp;int i=0;char *p;if((fp=fopen("IN7.DA T","r"))==NULL)return 1;while (fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],'\n');if (p) *p=0;i++;}maxline=i;fclose(fp);return 0;}void WriteDat(){FILE *fp;int i;system("CLS");fp=fopen("OUT7.DA T","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}七、选票问题8、对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。
全国计算机等级考试三级网络技术上机考试南开100题分类的序号和题型素数: 1 34 55 64 66 821: 将大于整数m且紧靠m的k个素数存入数组xx传回34:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数55:求出300个四位数是素数的个数,并从小到大进行排序64:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数以及这些I之和66:计算500-800内素数的个数,按从大到小顺序计算其间隔加、减之和82:求出300个四位数是素数的个数,再求出所有满足此条件的四位数平均值pjz1以及不满足此条件的四位数平均值pjz2结构体操作: 7 13 38 12 32 42 31 47 61 99 60 757: 按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列13:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列38:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列12:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列32:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列42:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列31:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列47:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列61:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列99:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列60:有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第二个数大于第一个数加第三个数的之和,存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列75:有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第一个数大于第二个数加第三个数的和,存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列if(aa[i].x1>(aa[i].x2+aa[i].x3)) bb[cnt++]=aa[i];if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) { xy=bb[i]; bb[i]=bb[j]; bb[j]=xy;}字符替换与移位: 8 36 56 62 98 95 96 18 37 97 10 73 11 63 16 100 74 178: f(p)值小于等于32或大于130,则该字符不变36:f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变56:f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变62:f(p)值小于等于32或其ASCII值是偶数,则该字符不变98:f(p)值小于等于32或其ASCII值是奇数,则该字符不变95:f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变96:f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变18:原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变137:原字符是大写字母或计算后f(p)值小于等于32,则该字符不变97:原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变10:把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a73:把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z11:把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a (指针)63:把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后(指针) 16:把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值74:把字符串中所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符100:把字符串中的最后一个字符的ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符17:第一个字符加第二个字符=新字符,最后逆排序strrev(xx[i]);字符串位置倒置: 33:把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放字符串单词倒置: 44:对行中以空格或标点符号为分隔的所有单词进行倒排.最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中字符串左右排序交换: 44 50 7144:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上50:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上71:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序,如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上字符串排序: 9 88 439: 对字符按从大到小的顺序进行排序88:对字符按从小到大的顺序进行排序43:对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序2单词个数统计: 1919:统计一个长度为2的子字符串在另一个字符串中出现的次数Fibonacci数列: 2020: 求Fibonacci数列中大于t的最小的一个数while(fn<=t) {...} return fn; 迭代方法求方程: 21 do{...}while(fabs(x0-x1)>=0.000001);平方根: 2222: 求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s return sqrt(s);实数运算: 2323: 求出N个实数的平均值aver,以及实数的整数部分之和sumint以及小数部分之和sumdec完全平方数: 2424: 100至999中寻找符合条件的整数并依次从小到大存入数组中,它既是完全平方数,又是两位数字相同for(j=10;j*j<=i;j++) if(i==j*j&&(bw==sw||sw==gw||gw==bw)) bb[cnt++]=i; return cnt;回文数: 25 ltoa(n,xy,10);25: 寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数整数排序: 2 5 6 14 30 45 46 902: 把四位数各位上均是0或2或4或6或8的数从大到小的顺序存入数组b中5: 按每个数的后三位的大小进行升序排列,如果后三位的数值相等,按原先的数值进行降序排列6: 降序升序14: 如果该四位数连续大于该四位数以后的五个数且该数是奇数,把这些四位数按从小到大的顺序存入数组b中for(j=i+1;j<=i+5;j++)if(a[i]>a[j]&&a[i]%2) flag=1; else {flag=0;break;}30:小于偶数,从小到大45: 大于该四位数以前偶数, 从大到小46: 大于奇数,且该数必须能被7整除,把这些四位数按从大到小的顺序存入数组b中for(j=i-5;j<i;j++) if(a[i]>a[j]&&a[i]%2&&a[i]%7==0) flag=1; else {flag=0;break;}90: 将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列.新序列中,比K1小的数都在K1的前面,比K1大的数都在K1的后面3整数统计运算: 26 70 40 65 91 94 92 7926: 求出正整数totNum个数以及这些数右移1位后产生的新数是偶数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz70: 求出正整数totNum个数以及这些数右移1位后产生的新数是奇数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz40: 求出正整数totNum个数以及这些数各位数字之和是偶数的数的个数totCnt 和满足此条件的这些数的算术平均值totPjz65: 求出正整数totNum个数以及这些数各位数字之和是奇数的数的个数totCnt 和满足此条件的这些数的算术平均值totPjz91: 200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组下标为偶数的元素值的算术平均值pj(保留2位小数)94: 200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx中值为偶数的算术平均值pj(保留2位小数)92: 200个整数,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)79: 求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数(指针)if(i%7==0&&i%11||i%7&&i%11==0) a[(*n)++]=i;整数各位数字运算: 68 15 78 69 85 77 89 27 53 48 54 49 80 81 87 6768: 200个四位数,如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中if(thou&&thou%2&&hun%2&&ten%2&&data%2)15:200个四位数,若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中78:200个四位数,若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中69:200个四位数,把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(thou-hun-ten-data>=0&&a[i]%2) b[cnt++]=a[i];85:200个四位数,把一个四位数的个位数字上的值减去千位数字上的值再减去百位数字上的值最后减去十位数字上的值,如果得出的值大于等于零且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(data-thou-hun-ten>=0&&a[i]%2==0) b[cnt++]=a[i];477:200个四位数,把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((thou+ten==hun+data)&&a[i]%2==0) b[cnt++]=a[i];89:200个四位数,把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((qw+gw)==(sw+bw)&&a[i]%2) b[cnt++]=a[i];27:300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序53:300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序48:300个四位数,求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b 的四位数按从小到大的顺序进行排序54:300个四位数,求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b 的四位数按从大到小的顺序进行排序49:300个四位数,求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz280:300个四位数,求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz281:300个四位数,求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz287:300个四位数,求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz267:5000以内,千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字5与百位数字之和等于个位数字与千位数字之差的10倍.计算并输出这些四位自然数的个数cnt以及这些数的和sum整数各位打散组合运算: 28 29 51 52 72 76 59 8628:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10) 29:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!=0&&gw!=0) 51:200个四位数,把千位数字和十位数字重新组成一个新的十位数,以及把个位数字和百位数字组成另一个新的十位数,如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt52:200个四位数,把千位数字和个位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab%2&&cd%2&&(ab%5==0||cd%5==0)&&ab>=10&&cd>=10)72:200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab%9==0||cd%9==0)&&ab%2==0&&cd%2==0&&hun!=0&&data!=0) 76:200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的cnt6if((ab%2!=cd%2)&&((ab%17==0||cd%17==0)&&ab>=10&&cd>=10))59:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab<cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab>=10&&cd>=10) 86:200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>0&&(ab%2!=1&&ab%5==0)&&cd%2==1&&ab>=10&&cd>=10)方差运算: 33 83 9333: 计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值83: 计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值93: 分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值for(i=0;i<MAX;i++) totfc+=(xx[i]-aver)*(xx[i]-aver);totfc/=MAX;级数运算: 3535: Sn<M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中选票: 39 58 8439: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票58: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票84: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票SIX/NINE: 4141: 计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE 的个数cnt以及满足此条件所有的SIX与NINE的和SUM7。
四、字符串位置倒置: 33:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.例如:原文:You can create an index on any field.you have the correct record.结果: n any field.Yu can create an indexrd.yu have the crrect rec原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.--------------类型:字符串(单词)的倒置和删除。
void StrOR(void) /*标准答案*/{int I,j,k,index,strl;char ch;for(I=0;I<maxline;I++){strl=strlen(xx[I]);index=strl;for(j=0;j<strl;j++)if(xx[I][j]=='o'){for(k=j;k<strl-1;k++)xx[I][k]=xx[I][k+1];xx[I][strl-1]= ' ';index=j;}for(j=strl-1;j>=index;j--){ch=xx[I][strl-1];for(k=strl-1;k>0;k--)xx[I][k]=xx[I][k-1];xx[I][0]=ch;}}}或者:void StrOR(void){ int i;char a[80],*p;for(i=0;i<maxline;i++){ p=strchr(xx[i],'o');while(p){ memset(a,0,80);memcpy(a,xx[i],p-xx[i]);strcpy(xx[i],p+1);strcat(xx[i],a);p=strchr(xx[i],'o'); } }}void StrOR(void) /*我的非指针解法*/{int i,righto,j,k;char tem[80];for(i=0;i<maxline;i++){k=0;righto=0;memset(tem,0,80);for(j=strlen(xx[i])-1;j>=0;j--){if(xx[i][j]=='o') {righto=j;break;} }for(j=righto+1;j<strlen(xx[i]);j++) tem[k++]=xx[i][j];for(j=0;j<righto;j++){if(xx[i][j]!='o') tem[k++]=xx[i][j];}strcpy(xx[i],tem);}}或者:注:该题要求的字符串中所有小写字母o左边的字符串内容移到该串的右边存放,即将串中“最后”一个字母o左右两侧的内容互换。
三网上级100题分类情况一.100个产品销售记录(结构体以及排序)(1)1.52.53关于产品名称排序(2)3.5.6.50.51.54关于产品代码排序二.字符串排序(1)下标为奇数或偶数或全部排序:2.14.45(2)一分为二左右排序90.92.94(3)英文文章以行为单位,对字符串进行处理(倒第1个字符右移4位+倒地2个)8.10.48.49.100(4)英文文章以行为单位,按条件替代:55.57.59.60.61.89.91.93.95.97(5)英文文章,以行为单位,如果是字母,改写成上或下一个,其他不变:12.15.47(6)字符串中字符位置左移一个:46三.300个4位数(200个4位数)(1)千+个=百+十:求个数cnt.pjz1.pjz2(千-百-十-个或个-百-十-千):16.18.19.30.41.42.43(2)1000个整数中,奇数的个数odd,其ave1,偶数按ave2以及所有奇数的方差:20.23.25.26.27.28.32.38.40 (3个-千-百-十>=0的个数cnt,然后排序22.36.37.39.71.72.74.75.76.77.78.79(4)4位数组成2个2位数63.64.65.66.67.68.69.70(5)两位数重新组成四位数并排序86. 88四.连续大于其后5个数且该数是奇数:80.81.82.83五.同时被3和7整除:24.34.35六.素数9.13.29.21.29.62七小类型4.(找100-999之间符合条件的数)7.(级数An=An-2+2An-1)87.(Fibonacci数列)11.单词倒排31.3SIX=2NINE33.COSX=X选票17、44、42(3)200组数据:56、9873、(求子串“as”个数)99、删‘o‘字符85、(回文m=11,m2=121,m3=1331)84\(整数部分之和与小数部分之和)86、88,两位重组4位数并排序58、96要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的100个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行升序排列。
第1类:100个产品销售记录排序[共10题:7,12,13,31,32,38,42,47,61,99]第2类:英文文章--字符串处理第1组:字符排序、移动[共10题:3,4,(9,88,)(字母变换10,73)(16,17,74,100)]第2组:字符串数组中的字符替代[共10题:8,18,36,37,56,62,95,96,97,98]第3类:300个四位数问题[此类共10题:27,48,53,54,55//49,80,81,(82素数),87]第1组:产生数组B,并对B按一定要求排序。
(27,48,53,54,55)第2组:求满足条件的数的个数、平均值……及不满足条件的数的平均值等。
(49,80,81,82,87)第4类:200个四位数按要求统计个数、排序[共20+2题]第1组各位数字从新组合、排序,有歧义[共8题:28,29,51,(被某数整除52,72,76),59,86]第2组各位数字加减、统计个数、排序[共4题:69,77,85,89]第3组比较各位数字大小后统计个数、排序[共2题:15,78]第4组依次取出4个数,奇偶数、排序[共4题:14,30,45,46]第5组排序[共2题:2,68]第6组200个正整数(1000~9999之间)排序[共2题:5,6]第5类:200个整数读至数组,奇偶性平均值、整除[共2题:91和94]第6类:小于200个四位正整数[共4题:(26,70),(40,65)]第7类:1000个十进制整数,奇偶性、平均值、方差等[共3题:33,83,93]第8类:素数相关、被某些数整除[共7题:1,34,64,66;;22,79,92]第9类:200组3位数[共2题:60,75]第10类:小于200个实数求平均值等[23]第11类:字符串操作[共7题:43,44,50,71;;11,63;;19]第12类:选票数据[共3题:39,58,84]第13类:求有特点的数[共3题:24;;25回文数;;67各位数字的操作]第14类:特殊求解[共3题:35级数;;21迭代求实根;;20 Fibonacci数列]第15类:几人围坐报数[57]第16类:正整数数列重排[90]第17类:计算满足条件的自然数个数[41]。
1题目:题目71:函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。
如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置012345678源字符串 a b c d h g f e1 2 3 4 9 8 7 6 5则处理后字符串d c b a e f g h4 3 2 1 9567 8部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
----------------------------类型:字符串左右排序和比较。
注:要注意当要进行右半部分排序时,一定要判断原字符串个数是否为奇数,若是则要half加1,本题对右半部分采用选择法对其进行升序排序。
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<half-1;j++)for(k=j+1;k<half;k++)if (xx[I][j]<xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}if (strl%2) half++;for(j=half;j<strl-1;j++)for(k=j+1;k<strl;k++)if (xx[I][j]>xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}PROG1.C#include<stdio.h>#include<string.h>#include<conio.h>char xx[20][80];void jsSort(){}void main(){readDat();jsSort();writeDat();system("pause");}readDat(){FILE *in;int i=0;char *p;in=fopen("in.dat","r");while(i<20&&fgets(xx[i],80,in)!=NULL){ p=strchr(xx[i],'\n');if(p)*p=0;i++;}fclose(in);}writeDat(){FILE *out;int i;clrscr();out=fopen("out.dat","w");for(i=0;i<20;i++){printf("%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}IN.DATabcdhgfe123498765You can create an index on any field, on several fields to be used together, or on parts thereof, that you want to use as a key. Thekeys in indexes allow you quick access to specific records and defineorders for sequential processing of a ISAM file. After you no longerneed an index, you can delete it. Addition and indexes have no effecton the data records or on other indexes.You may want a field in field in each record to uniquely identify thatrecord from all other records in the file. For example, the Employee Number field is unique if you do not assign the same number to two different employees, and you never reassign these numbers to other employees. If you wish to find or modify the record belonging to aspecific employee, this unique field saves the thouble of determining whether you have the correct record.If you do not have a unique field, you must find the first recordthe matches your key and determine whether the record is the one you want. If it is not the correct one, you must search again to find others.If you know that you have a unique field within your records, youcan include this fact in the key description, and ISAM will allow only unique keys. For example, if you specify that the employee numbers are unique, ISAM only lets you add records to the file for, or changenumbers to, employee numbers that do not alreadly exist int file.OUT.DATdcbaefgh432195678yxutroonnnnniifeeedccaaaaY ,abdddeeeeeefilllnoorssstuv tttttsrrrrpoooonhhgfeeeea,, h .Taaaaeeehknoosstttuuwyy yyxwuussqoonnllkkiiieeedccaa c acccdddeeeeeffiiinnooprrsssst utssssrrrrqpoooonnliigfeeeedca .AAIMSaeeefffgillnnooorrtuy yxuttonnnnliieeeeeedddcaa., A aacddddeeeeeffhiiinnnnoosttvx ttsrroonheeddcaa .deeehinnooorrstx ywutonnnmlliiiiffeeeddaaaaY accddeeefhhiiilnnooqrrttttuuyy ttsrrrrrroooonmllihfeeeddcca ,.EFaeeeeeeefhhilllmmoopprtxy yuuuusrqoonmliiiiffeeeddbN aabeeeghimmnnnooorsssttttuw yyvutsrpoonnnmliffeeeeeeedda, abeeeeeghhimnnoorrrrsssstttu yywutssrpoooonmliihffeeedI. abcddeeefgghiilmnnoooorrtty yuutssqpponmliiiiihffeeeeeecc, l abddeeeeefghhiilmnnoorsstttuv ywvuttrohhheeea .cccdeeehoorrrrtyvuuutqooonnliihffeeedaaI d ,cddeeffhiimnoorrrsstttuuy yyutttsrronnmmkihheeeeeeddcaa cdeeeeeehhhhinooorrrstttuwy wtttttsrrooonnniihfeeeccaI., y .aaacdeefghhiimnnooorrssstttuu yywvuuuttqooonnkihhfeaaaI u ,cddeeefhiiilnooorrrstuuwyyyutttsnnnlkiiihhfeeeeddcccaa ,AIMSaacdiiilllllnnnoooprstwwy2题目:题目72:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字), 以及把十位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字), 如果新组成的两个十位数均是偶数并且两个十位数中至少有一个能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。
网络技术三级100套题型汇总精品文档收集于网络,如有侵权请联系管理员删除一、数字数据处理,数列 2、数字排序。
0、2、4、6、8,个数,大到小排序 5、正整数排序,后3位升序,10到b ,降序 6、后3位,降序 22、n 以内,同时被3,7 23、n 个实数平均值aver ,整数部分,小数部分之和24、100到999,整数,完全平方,&两位相同,例144,676,个数返回79、1—1000,7,11整除,不同时 90、k1,k2,k3…… 91、求出奇数个数,偶数个数,下标偶数的pj 值,2位 92、最大数max 个数,3,7 94、奇数个数,偶数个数,下标奇数平均值 二、数据、正整数 60、2>1+3,2+3降序 75、1>2+3,1+3升序26、正整数吗?右移一位,偶数个数,平均值 65、各位之和是奇数 三、前五位,后五位 14、大于后5位数,奇数,个数,小到大到b 30、小于后5个,偶数 45、大于前5个,偶 46、大于前5个,奇数,被7整除 四、选票39、全选,不选,无效 58、<=5,无效 84、<=5,无效 五、字符串排序 9、从小到大 88、从大到小 43、奇数位置:小到大 44、一分为二,左边降序,左右交换50、左边升序,左右交换 71、左降右升63、s 字符串,左移一个位置 六、素数1、紧靠m ,大于m ,k 个素数 55、300个四位数,素数个数,小到大排序34、100—1000,(个位+十位)/10=百位,素数,293 64、500—800之间,素数,间隔加减70、右移一位,是素数 82、300个四位数,素数个数,平均值1,2 七、方差33、1000个,偶数个数,奇数,偶数平均值、方差 83、读文件,奇数个数、平均值,偶平均值,奇方差 93、奇数个数,偶数个数、平均值、方差 八、级数问题 20、F(0)=0,F(1)=1,F(n)=......>T 的最小数 35、A1=1,A2=1,An=...... m=100,1000,10000,Sn<m<S(n+1) 九、其他问题 3、字母O 4、单词倒排19、长度为2的子串在母串中出现的次数21、迭代方法求方程 25、11—999,m ,m2,m3,回文数 41、SIX+SIX+SIX=NINE+NINE 57、报数出圈 十、字符替换8、p*11%256<=32<,>=130 36、f(p)<=32或=0—9 56、<=32或对应小写 95、<=32或对应大写 37、p 是大写或f(p)<=32 96、p 是小写||f(p)<=32 97、p 是0—9或f(p)<=3262、p*13,f(p)<=32或偶 98、*17,f(p)<=32||奇数 18、原asc2为偶,或f(p)<=32 10、小写改成下一个,z —a ,大写,其它不变73、小写改成上一个,a —z 17、1+2-1,前+后-前,逆转—xx11、s 字符串,字母—下一个,z —a ,其它不变 16、右移4位+原——原 74、左移4位,<=32||<=100,新+旧100、右移4位,+前——新 十一、产品销售记录7、代码:大→小;金额:大→小13、代码:小→大;金额:大→小38、代码:小→大;金额:小→大12、名称:小→大;金额:小→大32、名称:大 小;金额:大 小42、名称:大→小;金额:大→小31、金额:大→小;代码:大→小47、金额:大→小;代码:小→大61、金额:小→大;代码:大→小99、金额:小→大;代码:小→大。
1.【考点分析】本题考查结构体数组的排序。
考查的知识点主要包括:结构体成员运算,字符串比较符,数组排序。
【解题思路】此题属于销售记录排序类题型。
此类题型主要考查对结构体数组的排序。
解题时,应注意3个关键点:关键点1如何按产品名称从小到大排序;关键点2如果产品名称相同;关键点3如何按金额从小到大排列。
数组排序可以用起泡法实现,起泡法的思路是:将较小的值像空气泡一样逐渐"上浮"到数组的顶部,而较大的数值逐渐"下沉"到数组的底部。
具体为第1趟用第1个记录和第2个记录进行比较,如果不符合要求,就进行交换,第2个记录和第3个记录比较,直到倒数第2个记录和最后1个记录比较完成;第2趟用第2个记录和第3个记录比较,然后第3个和第4个比较,依此类推。
本题在双循环中进行每次记录比较时,首先用字符串比较函数strcmp比较两个产品的名称,如果返回的值大于0,则这两个产品进行数据交换;如果返回值等于0,再比较两个产品的金额,如果前一个产品的金额大于后一个产品的金额,则这两个产品进行数据交换。
【参考答案】void SortDat(){ int i,j; /*定义循环控制变量*/PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++) /*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/{ temp=sell[i];sell [i]=sell[j];sell[j]=temp;}else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/{ temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}模板一销售记录排序【模板速记】记忆口诀:一定义二循环三比较。
目录整数排序题 (4)☆题目1(整数排序题) (4)☆题目2 正整数排序 (4)★☆题目3(整数统计排序题) (5)☆题目4(整数统计排序题) (5)题目5(整数运算排序题) (6)★题目6(整数各位统计排序题) (6)题目7(整数统计排序题) (7)★题目8(整数排序题) (7)★题目9(整数各位数字运算排序题) (8)题目10(整数各位数运算排序题) (8)★☆题目11 (整数各位数运算及排序题) (9)整数统计运算题 (10)★☆题目12整数统计运算题) (10)☆题目13(整数统计运算题) (10)☆题目14(整数统计运算题) (11)题目15(整数统计运算题) (11)题目16(整数统计运算题) (12)题目17(整数统计运算题) (12)☆题目18(整数统计运算题) (13)题目19(整数统计运算题) (13)题目20(整数各位数字运算题) (13)☆题目21(整数各位数字运算题) (14)题目22(整数各位数字运算题) (15)☆题目23(整数各位数字运算题) (15)题目24(整数各位数字运算题) (16)☆题目25(整数各位数字统计运算题) (16)★☆题目26(整数各位运算题) (17)题目27(整数各位数运算题) (17)☆题目28(整数各位数运算题) (18)☆题目29(整数各位运算统计题) (18)☆题目30 (19)题目31 (19)整数各位打散组合运算题 (20)★☆题目32(整数各位打散组合运算题) (20)☆题目33(整数各位打散组合运算题) (21)★☆题目34(整数各位打散组合运算题) (21)题目35(整数各位打散组合运算题) (22)★题目36(整数各位打散组合运算题题) (23)题目37(整数各位打散组合运算题) (23)★题目38(整数各位打散组合运算题) (24)题目39(整数各位打散组合运算题) (24)素数题 (25)题目40(素数题) (25)题目41(素数统计排序题) (26)★☆题目42(素数题) (26)★题目43(素数题) (27)★题目44(素数题) (28)★题目45(数字运算题) (28)★题目46(数字统计排序题) (29)☆题目47(数字统计排序题) (29)字符型题 (30)题目48字符型题 (30)★题目49(字符处理——倒序输出) (31)★题目50(字符排序题) (32)★☆题目51(替换字符题) (32)☆题目52(亲朋字符替换题) (33)字符串处理题 (34)★☆题目53(字符串排序题) (34)☆题目54(字符串字母移位题) (34)★☆题目55(字符串左右排序交换题) (35)题目56(字符串左右排序交换题) (35)★题目57(字符串移位题) (36)题目58(字符串排序题) (37)★题目59(字符串左右排序题) (37)★题目60(字符ASCII值移位替换题) (38)方差运算题 (39)★☆题目61(方差运算题) (39)☆题目62(方差运算题) (39)☆题目63(方差运算题) (40)☆题目64(整数各位数运算题) (41)★题目65(字符替换题) (42)★☆题目66(字符替换题) (42)★题目67(字符替换题) (42)题目68(字符替换题) (43)题目69(字符替换题) (43)☆题目70(字符替换题) (44)★题目71(字符替换题) (44)☆题目72(字符替换题) (45)☆题目73(字符替换题) (45)★题目74(字符替换题) (45)★题目75(字符替题) (46)★☆题目76(字符替换题) (46)☆题目77(结构体操作题) (47)★☆题目78(结构体运算题题) (47)题目79(结构体运算题) (48)★☆题目80(结构体运算题) (48)☆题目81(结构体运算题) (48)题目82(结构体运算题) (49)题目83 结构体运算题 (49)题目84(结构体运算题) (50)★题目85(结构体运算题) (50)题目86(结构体排列题) (51)选票问题 (51)题目87(选票问题) (51)★☆题目88(选票问题) (52)☆题目89(选票问题) (52)★☆题目90(级数运算题) (53)其他问题 (54)☆题目91(单词个数统计题) (54)★题目92(Fibonacci数列题) (54)☆题目93(迭代方法求方程题) (55)★题目94(平方根问题) (55)题目95 (实数运算题) (57)题目96(完全平方数问题) (57)★题目97 (回文数问题) (58)★题目98(出圈题) (58)☆题目99(SIX/NINE问题) (59)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
******************************************************************************* ☆题目11(字符串字母移位题)程序prog1.c的功能是:把s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。
要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到文件bc1.out中。
例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。
void chg(char *s){int I;for(I=0;I<strlen(s);I++)if(s[i]=='z'||s[i]=='Z') s[i]-=25;else if(s[i]>='a'&&s[i]<='y'||s[i] >='A'&&s[i]<='Y') s[i]+=1;}****************************************************************************** ☆题目19(单词个数统计题)编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。
(表明了返回值是整数型)函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。
int findStr(char *str,char *substr){ int i,j,len1,len2,cnt=0,flag;len1=strlen(str);len2=strlen(substr);for(i=0;i<len1;i++){ for(j=0;j<len2;j++)if(str[i+j]==substr[j]) flag=1;else {flag=0;break;}if(flag==1) cnt++;}return cnt;}**************************************************************************★题目43(字符排序题)无忧id 82题(只是将结果按“从大到小”排序)函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
例如:位置01234567源字符串 a b c d e f g h则处理后字符串 a h c f e d g bvoid jsSort(){int i,j,k,strl;char ch;for(i=0;i<20;i++){ strl=strlen(xx[i]);for(j=1;j<strl-2;j=j+2)for(k=j+2;k<strl;k=k+2)if(xx[i][j]>xx[i][k]) { 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值降序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:位置012345678源字符串 a b c d h g f e1 2 3 4 9 8 7 6 5则处理后字符串h g f e d c b a8 7 6 5 9 4 3 2 1void jsSort(){ int i,j,k,strl,half;char temp;for(i=0;i<20;i++){ strl=strlen(xx[i]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if(xx[i][j]<xx[i][k]){ temp=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=temp;}for(j=half-1,k=strl-1;j>=0;j--,k--){ temp=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=temp;}}}****************************************************************************************************************************************************** 题目50(字符串左右排序交换题)函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:位置012345678源字符串 d c b a h g f e4 3 2 1 9 8 7 6 5则处理后字符串h g f e a b c d8 7 6 5 9 1 2 3 4void jsSort(){ int i,j,k,strl,half;char temp;for(i=0;i<20;i++){ strl=strlen(xx[i]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if(xx[i][j]>xx[i][k]){ temp=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=temp;}for(j=half-1,k=strl-1;j>=0;j--,k--){ temp=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=temp;}}}***************************************************************************** ★题目63(字符串移位题)程序prog1.c的功能是:把s 字符串中的所有字符左移一个位置,串中的第一个字符移到最后。
请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到bc2.out文件中。
例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。
void chg(char *s){ int i;char ch=*s;for(i=0;i<strlen(s)-1;i++)s[i]=s[i+1];s[strlen(s)-1]=ch;}*********************************************************************★题目71(字符串左右排序题)函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。
如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置012345678源字符串 a b c d h g f e1 2 3 4 9 8 7 6 5则处理后字符串 d c b a e f g h4 3 2 1 9567 8void 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<half-1;j++)for(k=j+1;k<half;k++)if(xx[i][j]<xx[i][k]) { ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}if(strl%2) half++;for(j=half;j<strl-1;j++)for(k=j+1;k<strl;k++)if(xx[i][j]>xx[i][k]) {ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}。