
卖家暂未授权典枢平台对该文件进行数据验证,您可以向卖家
申请验证报告
。 数据描述
目录
Content
Chapter_1
Chapter_1
第二类 字符串左右排序和比较问题
15、 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:位置: 0 1 2 3 4 5 6 7 8
源字符串: d c b a h g f e
4 3 2 1 9 8 7 6 5
则处理后字符串: h g f e a b c d
位置 : 8 7 6 5 9 1 2 3 4
/* 解法:
void jsSort()
{int i,strl,half,j,k;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
half=strl/2;
for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{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;
}
}
} */
16、 函数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
/* 解法:
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=0;j{ch=xx[i][j];
xx[i][j]=xx[i][(strl+1)/2+j];
xx[i][(strl+1)/2+j]=ch;
}
}
} */
17、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的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
则处理后字符串 d c b a e f g h
4 3 2 1 9 5 6 7 8
/* 解法:
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=(strl+1)/2;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
18、函数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,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=1;jfor(k=j+2;kif(xx[i][j]>xx[i][k])
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
19、下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char c)实现程序要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。(注:大小写字母有区别)
例如,若输入字符串ss="123412132" ,c='1',则输出3。
/*解法:
int num(char *ss,char c)
{int i=0;
while(*ss!=0)
{ if(*ss++==c) i++;}
return i;
}*/
20、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。
例:原文:dAe,BfC.
CCbbAA
结果:fedCBA.
bbCCAA
/*解法:
void sortchard(void)
{int i,j,k,strl;
char ch;
for(i=0;i{strl=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
}*/
21、函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数SORTCHARA(),其函数功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文
件OUT.DATK .
例:原文:dAe,BfC.
CCbbAA
结果: ,.ABCdef
AACCbb
/*解法:
void sortcharA(void)
{int i,j,k,strl;
char ch;
for(i=0;i{strl=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{ch=xx[i][k];
xx[i][k]=xx[i][j];
xx[i][j]=ch;
}
}
}*/
22、下列程序的功能是:把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后.请编写函数CHG(CHAR *S)实现程序要求,最后调用函数READWRITEDAT()把结果输出到OUT.DAT文件中.
例如:S字符串中原有内容为:Mn.123xyZ,则调用函数后,结果为:n.123xyZM.
/*解法:
void chg(char *s)
int i=strlen(s);
char c=*s;
strcpy(s,s+1);
*(s+i-1)=c;
*(s+i)='\0';
}
23、下列程序的功能是:统计在tt字符串中'A'到'Z'26个字母各自现的次数,并存入PP数组.请编写函数cnt(char *tt,int pp[])实现程序的要求,最后调用函数readwritedat()把结果输出到文件OUT.DAT中.(仅统计小写字母.)
例如:当输入字符串:abcdefgabcdeabc后,输出的结果应该是:
3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
/*解法:
void cnt(char *tt, int pp[])
{int i;
for(i=0;i<26;i++) /*数组初始化*/
pp[i]=0;
while(*tt)
{if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
tt++;
}
}
24、 函数loop(s,m,n,str)对长为n的字符串str,从第s个字符开始的间隔为m的部分字符进行循环左移,即str[s]←str[s+m]←...←str[s+km]←...←str[s](k为正整数)且当字符位置s+k*m大于等于n时,要求用s+k*m-n作新的字符位置。要求编写此函数实现其功能,最后调用函数WriteDat()把结果输出到文件out.dat中。
例:loop(1,2,8,str)
位置 0 1 2 3 4 5 6 7
调用前str=A B C D E F G H
调用后str=A D C F E H G B
/*解法1:
Viod Loop(int s,int m,int n,char str[])
{ int cuur,last,i=0;
char ch;
last=s;
ch=str[s];
while(++i)
{ cuur=last;
last=(s+i*m)%n;
if(last>=s&&s+i*m>n) break;
str[cuur]=str[last];
}
str[cuur]=ch;
}
25、 函数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;i<20;i++)
{strl=strlen(xx[i]);
for(j=1;jfor(k=j+2;kif(xx[i][j]{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
26、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,右边部分按字符的ASCII值降序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 e f g h d c b a
5 6 7 8 9 4 3 2 1
/* 解法
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=(strl+1)/2;jfor(k=j+1;kif(xx[i][j]{ ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
27、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 d c b a h g f e
4 3 2 1 9 8 7 6 5
/* 解法:
v
Content
Chapter_1
Chapter_1
第二类 字符串左右排序和比较问题
15、 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:位置: 0 1 2 3 4 5 6 7 8
源字符串: d c b a h g f e
4 3 2 1 9 8 7 6 5
则处理后字符串: h g f e a b c d
位置 : 8 7 6 5 9 1 2 3 4
/* 解法:
void jsSort()
{int i,strl,half,j,k;
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;
}
}
} */
16、 函数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
/* 解法:
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;j
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=0;j
xx[i][j]=xx[i][(strl+1)/2+j];
xx[i][(strl+1)/2+j]=ch;
}
}
} */
17、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的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
则处理后字符串 d c b a e f g h
4 3 2 1 9 5 6 7 8
/* 解法:
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;j
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=(strl+1)/2;j
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
18、函数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,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;
}
}
} */
19、下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char c)实现程序要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。(注:大小写字母有区别)
例如,若输入字符串ss="123412132" ,c='1',则输出3。
/*解法:
int num(char *ss,char c)
{int i=0;
while(*ss!=0)
{ if(*ss++==c) i++;}
return i;
}*/
20、函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。
例:原文:dAe,BfC.
CCbbAA
结果:fedCBA.
bbCCAA
/*解法:
void sortchard(void)
{int i,j,k,strl;
char ch;
for(i=0;i
for(j=0;j
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
}*/
21、函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数SORTCHARA(),其函数功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文
件OUT.DATK .
例:原文:dAe,BfC.
CCbbAA
结果: ,.ABCdef
AACCbb
/*解法:
void sortcharA(void)
{int i,j,k,strl;
char ch;
for(i=0;i
for(j=0;j
{ch=xx[i][k];
xx[i][k]=xx[i][j];
xx[i][j]=ch;
}
}
}*/
22、下列程序的功能是:把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后.请编写函数CHG(CHAR *S)实现程序要求,最后调用函数READWRITEDAT()把结果输出到OUT.DAT文件中.
例如:S字符串中原有内容为:Mn.123xyZ,则调用函数后,结果为:n.123xyZM.
/*解法:
void chg(char *s)
int i=strlen(s);
char c=*s;
strcpy(s,s+1);
*(s+i-1)=c;
*(s+i)='\0';
}
23、下列程序的功能是:统计在tt字符串中'A'到'Z'26个字母各自现的次数,并存入PP数组.请编写函数cnt(char *tt,int pp[])实现程序的要求,最后调用函数readwritedat()把结果输出到文件OUT.DAT中.(仅统计小写字母.)
例如:当输入字符串:abcdefgabcdeabc后,输出的结果应该是:
3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
/*解法:
void cnt(char *tt, int pp[])
{int i;
for(i=0;i<26;i++) /*数组初始化*/
pp[i]=0;
while(*tt)
{if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
tt++;
}
}
24、 函数loop(s,m,n,str)对长为n的字符串str,从第s个字符开始的间隔为m的部分字符进行循环左移,即str[s]←str[s+m]←...←str[s+km]←...←str[s](k为正整数)且当字符位置s+k*m大于等于n时,要求用s+k*m-n作新的字符位置。要求编写此函数实现其功能,最后调用函数WriteDat()把结果输出到文件out.dat中。
例:loop(1,2,8,str)
位置 0 1 2 3 4 5 6 7
调用前str=A B C D E F G H
调用后str=A D C F E H G B
/*解法1:
Viod Loop(int s,int m,int n,char str[])
{ int cuur,last,i=0;
char ch;
last=s;
ch=str[s];
while(++i)
{ cuur=last;
last=(s+i*m)%n;
if(last>=s&&s+i*m>n) break;
str[cuur]=str[last];
}
str[cuur]=ch;
}
25、 函数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;i<20;i++)
{strl=strlen(xx[i]);
for(j=1;j
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
26、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,右边部分按字符的ASCII值降序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 e f g h d c b a
5 6 7 8 9 4 3 2 1
/* 解法
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
for(j=0;j
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
for(j=(strl+1)/2;j
xx[i][j]=xx[i][k];
xx[i][k]=ch;
}
}
} */
27、函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7 8
源字符串 h g f e a b c d
8 7 6 5 9 1 2 3 4
则处理后字符串 d c b a h g f e
4 3 2 1 9 8 7 6 5
/* 解法:
v

字符串左右排序和比较问题
198.71KB
申请报告