★☆题目53(字符串排序题)
函数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<maxline;i++)
{strl=strlen(xx[i]);
for(j=0;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;}
}
}
☆题目54(字符串字母移位题)
程序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;
}
★☆题目55(字符串左右排序交换题 )
函数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,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;}
}
}
题目56(字符串左右排序交换题 )
函数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
A b c d h g f e中华考试网(www.Examw。com)
1 2 3 4 9 8 7 6 5
void 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;}
}
}
★题目57(字符串移位题)
程序prog1.c的功能是:把 s 字符串中的所有字符左移一个位置,串中的第一个字符移到最后。请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到bc2.out文件中。
例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。
void chg(char *s)www.ExamW.CoM
{ int i;
char ch=*s;//换成:ch=s[0];
for(i=0;i<strlen(s)-1;i++)
s[i]=s[i+1];
s[strlen(s)-1]=ch;
}