三级网络技术C语言上机题求正确解答

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:08:33
如果你买了有未来教育标识的《全国计算机等级考试上机考试题库——三级网络技术》的,应该就知道这是里面的第十七套题目。无论是书上的答案还是模拟软件给出的答案都判零分!急死人了!

题目如下!

函数ReadDat( )的功能是实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ChA( ),该函数的功能是:以行为单位把字符串的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新的字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的字符,以此类推一直处理到倒数第二个字符,最后一个字符的ASCII值加第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后仍按行重新存入字符串数组xx中,并调用函数WriteDat( )把结果xx输出到文件OUT.DAT中。
注意:部分源程序已给出。原始文件存放的格式是:每行的宽度小于80个字符,含标点符号和空格。请勿改动主函数main( )、读函数ReadDat( )和写函数WriteDat( )的内容。
【试题程序】
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char xx[50][80];
int maxline=0;

int ReadDat();
void WriteDat();

void ChA(void)
{

}

void main()
{
system("CLS");
if(ReadDat())
{
printf("数据文件IN.DAT不能打开!\n\007");
return;
}
ChA( );
WriteDat();
}
int ReadDat(void)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char xx[50][80];
int maxline=0;

int ReadDat();
void WriteDat();

void ChA(void)
{
int i = 0, j = 0;
int linenum = 0;
char tmp[80] = {0};

for (i = 0; i < maxline; ++i)
{
memset(tmp, 0, 80);
linenum = (int)strlen(xx[i]);
for (j = 0; j < linenum-1; ++j)
{
tmp[j] = xx[i][j] + xx[i][j+1];
}
tmp[j] = xx[i][0] + xx[i][j];
memcpy(xx[i], tmp, linenum);
}
}

void main()
{
system("CLS");
if(ReadDat())
{
printf("数据文件IN.DAT不能打开!\n\007");
return;
}
ChA( );
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("IN.DAT","r"))==NULL)
return 1;
while(fgets(xx