1. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。部分源程序已给出,原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
#include
unsigned char xx[50][80];
int maxline=0;/*文章的总行数*/
int ReadDat(void)
void WriteDat(void)
void encryptChar()
{ int i,j;
char *p;
for(i=0;i='a'&&xx[j]='0'&&p='A'&&p='0'&&xx[j]='A'&&xx[j]='a'&&p130)
;
else xx[j]=p; } }
11.函数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
部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
#include
#include
#include
char xx[20][80];
void jsSort()
{ int i,j,k,m;
char c;
for(i=0;ixx[m])
{ c=xx[j];
xx[j]=xx[m];
xx[m]=c; }
for(j=0;jxx[m])
{ c=xx[j];
xx[j]=xx[m];
xx[m]=c; } }
}
14.函数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
部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
void jsSort()
{ int i,j,k,m;
char c;
for(i=0;ixx[m])
{ c=xx[j];
xx[j]=xx[m];
xx[m]=c; } } }
15.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,右边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 67 8
源字符串 d c b a h g f e
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
部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数 WriteDat()的内容。
void jsSort()
{ int i,j,k,m,n;
char c;
for(i=0;ixx[m])
{ c=xx[j];
xx[j]=xx[m];
xx[m]=c; }
for(j=0;jxx[m])
{ c=xx[j];
xx[j]=xx[m];
xx[m]=c; }
if(k%2==0)
n=k/2;
else n=k/2+1;
for(j=n;jn)
{ c=aa;
aa=aa[j];
aa[j]=c; }
if(m==n)
{ if(aa(aa.x2+aa.x3))
bb[k++]=aa;
for(i=0;ibb[j].x1+bb[j].x3)
{ m=bb;
bb=bb[j];
bb[j]=m; }
return k;
}
void main()
{ int count;
readDat();
count=jsSort(); /*返回满足条件的个数*/
writeDat(count); }
readDat(int count)
{ FILE *in;
int i;
in=fopen(\"in.dat\",\"r\");
for(i=0; ia[j].s)
{ *s=a;
a=a[j];
a[j]=*s; }
return a[0].s;
}
main()
{
STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
clrscr();
printf("***** The original data *****\n");
for(i=0; i0;m++)
if(isP(m))
{ xx[i++]=m;
k--; } }
main()
{
int m, n, xx[1000] ;
clrscr() ;
printf("\nPlease enter two integers:") ;
scanf("%d%d", &m, &n ) ;
num(m, n, xx) ;
for(m = 0 ; m sell[j].je)
{ c=sell;
sell=sell[j];
sell[j]=c; } } }
33..已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。
部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
void SortDat()
{ int i,j;
PRO c;
for(i=0;isell[j].je)
{ c=sell;
sell=sell[j];
sell[j]=c; }
else
if(sell.je==sell[j].je)
if(strcmp(sell.dm,sell[j].dm)sell[j].je)
{ c=sell;
sell=sell[j];
sell[j]=c; }
else
if(sell.je==sell[j].je)
if(strcmp(sell.dm,sell[j].dm)>0)
{ c=sell;
sell=sell[j];
sell[j]=c; } } }