文档详情

【2017年整理】三级网络机试字符串问题.doc

发布:2017-02-03约2.06万字共7页下载文档
文本预览下载声明
★题目11 程序prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。 请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到文件bc1.out中。 例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数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++; } ★题目19 编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,函数返回值是6。 函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。 注意:部分源程序存在文件prog1.c中。 请勿改动主函数main()和其它函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。 int findStr(char *str,char *substr) { int n=0; char *p , *r; while ( *str ) {p=str; r=substr; while(*r) if(*r==*p) { r++; p++; } else break; if(*r==\0) n++; str++; } return n; } ★题目43 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。   例如:位置   0 1 2 3 4 5 6 7       源字符串 a b c d e f g h 则处理后字符串 a h c f e d g b void jsSort() {int I,j,k,strl; char ch; for(I=0;I20;I++) { strl=strlen(xx[I]); for(j=1;jstrl-2;j=j+2) for(k=j+2;kstrl;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值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。   例如:位置   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   部分源程序存在文件prog1.c中。  void jsSort() { int i,j,k,strl,half; char temp; for(i=0;i20;i++) { st
显示全部
相似文档