2022年安徽省滁州市全国计算机等级考试网络技术真题(含答案).docx
2022年安徽省滁州市全国计算机等级考试网络技术真题(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .下列有关网络技术的发展趋势的描述中,不正确的是()A.计算机网络的数据传输速率将越来越高B.计算机网络的主要特征为资源共享C网络信息交换将以高速度的电路交换为主要特征D.网络协议向标准化,网络服务向综合化方向英展2 .正确描述100Base-TX特性的是A.传输介质为阻抗100W的5类UTP,介质访问控制方式为CSMA/CD,每段电缆的长度限制为100m,数据传输速率为100Mb/sB.传输介质为阻抗100W的3类UTP,介质访问控制方式为CSMA/CD,每段电缆的长度限制为185m,数据传输速率为100Mb/sC.传输介质为阻抗100W的3类UTP,介质访问控制方式为TokenRing,每段电缆的长度限制为185m,数据传输速率为100Mb/sD.传输介质为阻抗100W的5类UTP,介质访问控制方式为TokenRing,每段电缆的长度限制为100m,数据传输速率为100Mb/s3.五、1 .选择题(3题)31 .我国第一条与国际互联网连接的专线是从中科院高能所到斯坦福大 学直线加速器中心,它建成于 OA.1989 年 6 月 B.1991 年 6 月 C.1993 年 6 月 D.1995 年 6 月32 .同种局域网进行互联,需要()。A.安装与设置路由器B.更换操作系统C.用到网桥D.变更传输介质33 . TCP/IP协议集没有规定的内容是oA.主机寻址方式B.主机的操作系统C.主机的命名机制D.信息的传输 规则六、1.程序设计题(3题)34 .下列程序的功能是:选出100- 1000间的所有个位数字与十位数字 之和被W除所得余数恰是百位数字的素数(如293)。计算并输出上述这 些素数的个数ent,以及这些素数值的和sum。请编写函数countValue。 实现程序要求,最后调用函数writeDAT。把结果ent和sum输出到文件 OUT17.DAT 中。注意:部分源程序已给出。请勿改动主函数main()和写函数writeDAT。的内容。试题程序:#include (stdio.h>int ent, sum;void countValue() ()main ()(cnt=sum=0;countValue ();printf("素数的个数二dn", ent);printf ("满足条件素数值的和二%d”,sum);writeDAT ();)writeDAT () (FILE *fp;fp=fopen("OUT17.DAT", "w");fprintf(fp, "%dn%dn", ent, sum);fclose (旭); )35 .下列程序的功能是:将一正整数序列KI, K2,K9重新排成一 个新的序列。新序列中,比K1小的数都在K1的左面(后续的再向左存 放),比K1大的数都在K1的右面(后续的再向右存放),从K1向右扫 描。要求编写函数jsVahie()实现此功能,最后调用函数writeDat。把新序 列输出到文件out90.dat中。说明:在程序中已给出了 10个序列,每个序列中有9个正整数,并存 入数组a 109中,分别求出这10个新序列。例如:序列排序前6, 8, 9, 1, 2, 5, 4, 7. 3)序列排序后3, 4, 5, 2, 1, 6, 8, 9. 7)注意:部分源程序已给出。请勿改动主函数main。和写函数writeDat。的内容。试题程序:#include < stdio.h >jsValue(int a109)() main ()(int a109=6,8,9,2,547,3, 3,5,8,9,1,2,647,8,2,1,9,3,546,7,3,5,129,8,6,7,4,4,7,8,9,1,2,536, 4,7,3,5,126,8,9,9,1,3,5,8,6,247, 2,6,1,9,835,7,4,5,3,7,9,1,82,6,4, 7,1,325,8,9,4,6,);int ij;jsValue (a);for (i=0;i < 10; i+) for(j=0;j < 9;j+)(printf("%d",ai j);if(j < =7) printf(",");)printf("n");)writcDat (a);writeDat (int a10 9)(FILE *fp;int ij;fp=fopen (nout90.dat nwn); for (i=0;i < 10; i+) for(j=0;j < 9;j+) (fprintf(fp, ff%dai j);if (j < =7) fprintf (fp,",");)fprintf (fp, nnn);)fclose (fp); )36.对10个候选人进行选举,现有一个100条记录的选票文件IN84.DAT, 其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的 选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人 的记录内容均为字符。或1, 1表示此人被选中,0表示此人未被选十, 若一张选票选中人数大于5个人时被认为无效的选票。给定函数 ReadDat。的功能是把选票数据读入到字符串数组xx中。请编制函数 CoutRs()来统计每个人的选票数并把得票数依次存入yy到yy9中, 最后调用函数WriteDat。把结果yy输出到文件OUT84.DAT中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat。和写函数WriteDat。的内容。 试题程序:#include < stdio.h >char xx100 11;int yy10;int ReadDat (void);void WriteDat(void);void CoutRs(void) void main() (inti;for(i=0;i < 10;i+)yyi =o;if (ReadDat () (printf ("数据文件 IN84 .DAT 不能打开! n007");return;)CoutRs ();WriteDat ();int ReadDat (void)(FILE *fp;int i;char tt13;if( (fp=fopen ("IN84 .DAT",T') =NULL) return 1;for (i=0; i < 100; i+)(if(fgets(tt, 13,fp)=NULL) return 1;memcpy(xx i, tt, 10);xxi 10=0;)fclosc(fp);return 0;void WriteDat()FILE *fp;int i;fp=fopen (nOUT84. DAT" J'w)for (i=0; i < 10; i+)(fprintf(fp, "%dn",yy i);printf ("第d 个人的选票数=%dn”, i+1, yy i);)fclose (fp);参考答案l.C如今计算机网络的发展趋势是传输速率越来越高.已形成全球性公 用网络体系。在公用网络上建立虚拟网络以满足对数据安全有特殊要求 的用户。现代对网络的需求越来越多的是为满足信息的交互和资源的共 亨。信息变换方式也由原来的电路交换、报文交换向分组交换和信元交 换方向发展。各种通信控制协议相应建立了国际化的标准.网络上传输的 数据由原来单一的数据通信向综合业务方向发展。2.A本题中100Base-TX的含义是:100Mb/s的速率,基带传输,采用的 是UTP(非屏蔽双绞线)。而单从这三个信息是无法得出答案的。接下来, 继续考虑:100Base-TX显然是以太网的标准,而以太网使用的介质访问 控制方式是CSMA/CD,因此C、D就可以排除;而lOOBase系列(快速以 太网)中,主要有三种:一是采用4对3类线的100Base-T4,一种是采 用2对5类线的lOOBaseTX,还有一种是采用光纤的100Base-FX, 因此我们又可以排除B,得到正确答案A。3 .A4 .A5 .C6 .A7 .C中继器工作在物理层,只能用于连接物理协议相同的局域网。连接 到一个集线器的所有节点都在一个冲突域和广播域中。VLAN用于隔离 不同的广播域,不同的VLAN成员之间不能直接通信。三层交换机具有 部分路由器功能的交换机,用于加快大型局域网内部的数据交换,三层 交换技术就是二层交换技术上加上三层转发技术,是在网络模型中的第 三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同 网络状况做到最优网络性能,故选项C错误。8 .A选项A)和选项D), P2P > Peer to Peer的简称,可以理解为端对端, 或称对等网;选项B), BT下载通过BT服务器上的种子文件定位资源 后,下载者将直接与文件提供者建立连接并下载,是一种P2P技术;选 项C), P2P技术可以开发出强大的搜索工具。9.BP46 9%的每年停机时间小于等于8.8小时10.A 11.12 .最大传输单元(MTU)【解析】根据网络使用的技术不同,每种网络都规定了一个帧最多能够 携带的数据量,这一限制称为最大传输单元(MTU)。因此,一个IP数据 报的长度只有小于或等于一个网络的MTU时,才能在这个网络中进行 传输。13 .Telnet【解析】Internet中的用户远程登录是指用户使用Telnet命令,使自己 的计算机暂时成为远程计算机的一个仿真终端的过程。14.1616解析:用户数据报协议(UDP)的端口使用16位二进制数表示。15.(11)不可靠的数据投递服务【解析】1P服务的3个主要特点是不可靠的数据投递服务、面向非连接 和尽最大努力投递服务。16洞层次进程通信的协议同层次进程通信的协议 解析:网络体系结构 的概念包括同层次进程通信的协议和相邻层接口两层含义。17 .安全问题【解析】客户机/服务器模式在实现中需要解决的主要问题有:标识一个 特定的服务、响应并发请求和服务器程序的安全问题。18 .19 .公用密钥加密公用密钥加密20松散【解析】源路由选项可以分为两类,一类是严格源路由选项,一类是松 散源路由选项。严格源路由选项规定1P数据报要经过路径上的每一个 路由器,相邻路由器之间不得有中间路由器,并且所经过的路由器的顺 序不可更改;松散源路由选项只是给出1P数据包必须经过的一些“要点”, 并不给出一条完备的路径,无直接连接的路由器之间的路由尚需IP软 件的寻址功能补充。解析:IEEE802.2标准,定义了逻辑链路控制 LLC子层功能与服务。由IEEE 802标准之间的关系可知,IEEE802.3标 准、IEEE802.4 标准、IEEES02.5 标准、IEEE 802.9 标准和 IEEES02.il标准具有相同的逻辑链路控制LLC子层,者睬用IEEE 802.2标准。22 .真实性真实性解析:网络安全涉及到网络信息的保密性、完整性、 可用性、真实性和可控性。通常的安全攻击类型有:第三方使甲方传向 乙方的信息不能传送,称为中断:第三方使甲方传向乙方的信息同时传 送给第三方,称为截取:第三方截取了甲方传向乙方的信息而把第三方 的信息以甲方的名义传给乙方,称为修改;在没有甲方信息的情况下, 第三方以甲方的名义发出信息给乙方,称为捏造。中断属于对可用性的 攻击,截取属于对保密性的攻击,修改属于对完整性的攻击,捏造属于 对真实性的攻击。23 .通用型通用型解析:网络操作系统可以分为两类:面向任务型与通 用型。面向任务型网络操作系统是为某一种特殊网络应用要求而设计的: 通用型网络操作系统能提供基本的网络服务功能,支持用户在各个领域 应用的需求。24 .可堆叠式可堆叠式解析:如果需要联网的结点数超过单一集线器的 端口数时,通常需要采用多集线器的级联结构,或是采用可堆叠式集线 器。25 .下载下载解析:本题考查点是文件传输服务中的下载文件服务。文 件传输服务又称为FTP服务。FTP采用客户机/服务器工作模式,遵守FTP协议(文件传输协议)。因特网中许多可提供下载文件的站点提供 FTP服务。当需要使用FTP服务时,客户机向FTP文件服务器发送请 求,服务器接受请求,建立链路,按客户机要求传送文件。文件传输是 双向的,将FTP服务器上的文件传送到客户机磁盘中称为“下载”文件, 而将客户机磁盘的文件传送到FTP服务器上则称为“上传”文件。26 .层次层次解析:对于复杂的计算机网络协议,最好的组织方式是采 用层次结构模型。27 .超媒体超媒体解析:超文本与超媒体是WWW的信息组织形式。28 .传输层传输层 解析:在OSI参考模型中,传输层的主要任务是向 用户提供可靠的端到端服务,透明的传送报文,它向高层屏蔽了下层数 据通信的细节,因而是计算机通信体系结构中最关键的一层。29 .【审题关键句】以行为单位从字符串左边部分降序排序,排序后左边 部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符 不参加处理。n【解题思路】 定义循环变量i、j、k和整型变量len、Pon第一层for循环中,循环变量i从。开始,依次递增直到其值等于 20,实现对20行数据的逐行处理。在循环体中,对于i行首先调用函数 strlen(xxi)求得第i行字符串的长度,并把其值赋给变量len,再用len 除以2,得到第i行字符串长度的一半,赋给变量P。在第二层for循环 中,循环变量j从0开始,依次递过来增直到其值等于(P-D,在第三层 for循环中,循环变量k从j+1开始,依次递过来增直到其值等于P,比 较字符xxijASCII码值与xxikASCII码值的大小,如果字符xxij(45)公钥加密体制中,没有公开的是C)公钥D)算法A)明文B)密文4 .(41)很多FTP服务器都提供匿名FTP服务。如果没有特殊说明,匿名FTP账号为A) anonymous B) guestC)nimingD)匿名5 .D)响应时间(9)描述计算机网络中数据通信的基本技术参数是数据传输速率与A)服务质量B)传输延迟C)误码率6 .计算机的病毒所造成的危害是()。A.破坏计算机系统软件或文件内容B.造成硬盘或软盘物理破坏C.使计算机突然断电D.使操作员感染病毒7 .下列关于局域网设备的描述中,错误的是()。A.中继器可以用于连接物理层协议相同的局域网缆段8 .连接到一个集线器的所有节点共享一个冲突域C.连接二层交换机上不同VLAN成员之间可以直接通信D.三层交换机是具有路由功能的二层交换机8.以下关于P2P的描述,错误的是()。A.P2P,顾名思义就是PC对PC传输B.BT下载就是一种P2P技术 的ASCII码值小于xxik的ASCII码值,则两者进行互换实现对第i 行字符串左半部分的字符串按降序排列。W用变量len的值对2求余数,如果余数为1,则调用函数字符串拷贝 函数strcpy,把从字符串xxi+P+l开始直到字符串xxi的结尾的子字 符拷贝到字符串变量str中,再调用字符串连接函数stmcat把字符串xxi 的中间字符连接到字符串变量s仃的后面,再调用字符串连接函数 stmcat把字符串xxi的左半部分的子字符串连接到变量str的后面;如 果余数不等于L则调用字符串拷贝函数strcpy,把从字符串xxi+P开 始直到字符串xxi的结尾的子字符拷贝到字符串变量str中,再调用字 符串连接函数stmcat把字符串xxi的左半部分的子字符串连接到变量 str的后面,实现字符串xxi左右部分子字符串的交换。n调用字符串拷贝函数strcpy,把字符串变量str的值拷贝到字符串 xxi,实现把排序后的结果仍按行重新存入字符串数组XX中。n【参考答案】n30.【审题关键句】字符替代f(p)=p*ll mod256,小于等于32或原字符 对应小写字母不变,否则替换。n【解题思路】n本题类似第69套试题,通过审题可以发现主要是排序条件的设置要 求有所不同,参考答案的第6行,修改if条件语句的设置即可。另外, 在源程序中已经定义了一个无符号变量val,因此,在编写答案程序时, 不需要再重新定义。n【参考答案】 n31.B解析:1991年,中国科学院高能物理研究所采用DECNET协议, 以X.25方式连入美国斯坦福线性加速器中心(SLAC)的LIVEMORE实 验室,并开通电子邮件应用。32.C解析:符合相同协议的局域网的互联叫做同种局域网的互联。这 类互联比较简单,一般使用网桥就可以将分散在不同地理位置的多个局 域网互联起来。33.B解析:TCP/IP协议集对主机的操作系统没有规定。34.void countValue() o int ijhalfhuntendata ; for(i=101 ; i (1000 ; i+) hun=i/100 ; /* 求百位数字*/ten=i% 100/10 ; /* 求十位数字*/data=i%10 ; /*求各位数字*/ if(hun=(ten+data)%10) /*如果个位数字与十位数字之和 被10除所得余数恰是百位数字则进一步判断该数是否为素数*/ half=i/2 ; for(j=2 ; j=half ; j+) if(i%j=O) break ; if(j>half) cnt+ ; sum+=i ; /*计算这些素数的个数ent以及这些素数值的和 sum*/ voidcountValue()0rn rninti, j, half, hun, ten, data ; rn for(i=101 ; i ( 1000 ; i+)rn rn hun=i/100 ; /* 求百位数字*/rn ten=i%100/10 ; /* 求十位数字*Arn data=i%10 ; /* 求各位数字*/rn if(hun=(ten+data)% 10) /*如果个位数字与十位数字之和被10除所得余 数恰是百位数字,则进一步判断该数是否为素数*/rn rnhalf=i/2 ;rn for(j=2 ; j二half ; j+)rn if(i%j=O) break ; rn if(j>half)rn cnt+ ; sum+=i ; /*计算这些素数的个数ent,以及这些素数值的和 sum*/rn rn rn 解析:本题的解题思路是利用一个for循环依次取 得100到1000之间的数,接着求得当前所取得的数的各个位上的数字 值,语句"hun=i/100 ; ten=i%100/10 :data=i%10 :”可以分别取得某数的 百位、十位及个位上的数字值,然后判断该数个位数字与十位数字之和 被10除所得的余数是否恰好等于百位上的数字。如果这个条件成立, 接着去判断原数是否是素数,这里,考虑到效率问题,可以依次用从2 到该原数本身一半的数去除原数,如果原数能被除尽,则证明该数肯定 不是素数,不需要做下面的工作,接着去取下一个数,继续判断。只有 同时满足上述两个条件的数才是本题所需的数,这时把该数累加到变量 sum(满足条件素数值的和)中,同时也给计数器变量ent(素数的个数)加 lo35.void jsValue(int a109) int valueijknum; for(i=0;i < 10;i+) value=ai0 ; /*将一行的第一1K元素赋给 value*/ for(j=0;j < 9;j+) value) /*若后面的数中有比第1个数据小的数*/ num=aij;/*则把这个数取出赋给num*/ for(k=j;k > 0;k-) /*将这个数据左侧的数依 次向右移动*/ aik=aik-l; ai0=num;/*再将这个数放在最左侧 */ 解析本题考查的知识点如下:(1)二维数组的访问和数组元素 的移动。(2)循环结构和判断结构的嵌套使用。数据存放在一个二维数 组中每一行数为数据处理的基本单位。将第1个数取出依次和后面的数 比较若后面的数中有比第1个数据小的数则将这个数取出。将这个数据 左侧的数依次向右移动(包括第1个数)然后将这个数放在最左侧。扫描 完一行后比第1个数小的数就都在第1个数的左侧而比它大的就在它的 右侧。对数的扫描和移动均可以使用循环实现。再使用循环实现对每一 行数据的访问。void jsValue(int a109)rn rn int value,i,j,k,num;rn for(i=0;i < 10;i+)rn rn value=ai0 ; /*将一行的第一个元素赋给 value*Arn for(j=0;j < 9;j+)rn if(aij < value) /*若后面的数中有比第 1 个数据小的数*rn num=/*则把这个数取出,赋给num*/rn for(k=j;k > 0;k-) /*将这个数据左侧的数依次向右移动*Arn rn aik=aik-l;rn rn ai0=num; /* 再将这个数放在最左侧 *Arn rn rn rn解析本题考查的知识点如下:rn (1)二维数组的 访问和数组元素的移动。rn (2)循环结构和判断结构的嵌套使用八rn数 据存放在一个二维数组中,每一行数为数据处理的基本单位。将第1个 数取出依次和后面的数比较,若后面的数中有比第1个数据小的数,则 将这个数取出。将这个数据左侧的数依次向右移动(包括第1个数),然 后将这个数放在最左侧。扫描完一行后,比第1个数小的数就都在第1 个数的左侧,而比它大的就在它的右侧。对数的扫描和移动均可以使用 循环实现。再使用循环实现对每一行数据的访问。36.void CoutRs (void) int i count j; char *pf; for (i=0; i < 10;i+) yyi=0; for (i=0; i < 100; i+) pf=xx i; /*指针pf指向字符串的第一个字符*/ count=0; while (*pf) if (*pf=T) count+; /*统计每条记录中 1 的个数*/ pf+; else pf+; if (count < =5) /*如果每条记录中1的个数小于等于5 则为有效票*/ pf=xx用;/*指针pf指向字符串的第一个字符*/j=0; while (*pf)/*统计每个人的选票数并把得票数依次存入yy0到yy9中*/if (*pf=T) yyj+=l; j+; pf+; else if(*pf='O') j+; pf+; ) void CoutRs (void)rn rn int i, count, j;rn char *pf;rn for (i=0; i < 10;i+)rn yyi=O;rn for (i=0; i < 100; i+)rn rn pf=xx i; /*指针 pf 指向字符串 的第一个字符*Arn count=0;rn while (*pf)rn if (*pf='l')rn rn count+; /*统计每条记录中 1 的个数*Arn pf+;rn rn else pf+;rn if (count < =5)/*如果每条记录中1的个数小于等于5则为有效票*Arn rn pf=xx i; /*指针 pf 指向字符串的第一个字符*Arn j=0;rn while (*pf) /* 统计每个人的选票数并把得票数依次存入yy到yy9中*Arn if (*pf=-l')rn rn yyj+=l;rn j+;rn pf+;rn rn else if(*pf'O')rn rn j+;rn pf+;rn rn rn rn 解析:本题考查的知识点如下: 二维数组的操作。指向数组的指针。在本题中,要先判断选票是否有效。因为记录存放在一个二维数组中, 为了简便我们为数组的一组元素定义一个指向该数组每一行数据的指 针,例如,char*P=xx2。初始时该指针指向该行的第一个元素,指针地 址每加1,则指向下一个元素。这样就可以轻松地统计每一个选票。设 一变量标记每一个选票中1的个数,若其不大于5,则选票有效。若选 票有效,则依次查看哪一个元素为1,在数组yy相应的元素上加L使 用循环实现对所有记录的访问。C.P2P技术可以开发出强大的搜索工具D.P2P就是对等网9 .若服务器系统年停机时间为6小时,那么系统可用性至少达到()A.99% B.99.9% C.99.99% D.99.999%10 .广域网所覆盖地理范围一般是()公里。A.几十到几千B.几十到几万C.几到几百D.几到几千二、填空题(10题)11 .在高速主卜网,桌面电视会议、3D图形与高清晰度图像应用中, 一般采用以 太网-12 .第78题 根据网络使用的技术不同,每种网络都规定了一个帧最多能够携带的数据量,这一限制称为 o13 .第66题Internet中的用户远程登录是指用户使用 命令,使自己的计算机暂时成为远程计算机的一个仿真终端的过程。14 .用户数据报协议(UDP)的端口使用 位二进制数示。15 .(11) IP服务的3个主要特点是、面向非连接和尽最大努力投递服务。16 .网络体系结构的概念包括【】和相邻层接口两层含义。17 .(15)客户机/服务器模式在实现中需要解决的主要问题有:标识一 个特定的服务、响应并发请求和服务器程序的 O18 .在通信技术中.通信信道的类型有两类:广播通信信道与21 一通信信道19 .私有密钥加密技术和 技术是两种最基本的加密技术。20 .(13) IP数据报的源路由选项分为两类,一类为严格源路由,另一类 为 原路由。三、2.填空题(8题)标准在LLC子层使用【标准。22 . A公司向B公司发出一份电文,称C公司要向B公司订购大批棉 花,诱使B公司高价向A公司购买大量棉花。这属于安全攻击中的捏 造,是对【】的攻击。23 .网络操作系统可以分为面向任务型和 两类。24 .如果普通集线器的端口数不够用,可以使用 集线器。25 .在文件传输服务中,将文件从服务器传到客户机称为【】文件。26 .对于复杂的计算机网络协议,最好的组织方式是采用 结构模型。27 . WWW的信息组织形式分为超文本和 o28 .在OSI参考模型中,【】是计算机通信体系结构中最关键的一四、C语言程序设计题(2题)29 .函数readDat是从文件in . dat中读取20行数据存放到字符串数组 xx中(每行字符串长度均小于80)。请编制函数jsSort,其函数的功能是: 以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行 重新存入字符串数组XX中,最后调用函数writeDat把结果XX输出到文 件 out . dat 中。条件:字符串从中间一分为二,左边部分按字符的ASCII值降序排序,右边部分不作处理,排序后,左边部分与右边部分按例子所示进行交换。 如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原 位置上。例如/位置0 1 2345678源字符小a be d h g fe123498765则处理后字符申hgfedebaR76s9432 I注意:部分源程序存在test . c文件中。请勿改动数据文件in . dat中的任何数据、主函数main、读函数readDat 和写函数writeDat的内容。1 ! finclude <stdio.h>2 » include <string.h>3 ; char xx2080;456 789void readDat();void writeDat(); void sSort) (1011121314IS1617181920212223242526272829void main()(readDat();jsSort O;writeDat();口,二/从文件m.dat中读取20行依据存故利字符巾散fti xx中/ void readDat() (FILE *in;int i * 0;char p;in fopenwrM);while(i < 20 && fgets(xxi, 80. in) (p = strchr(xx(i H 1n *);if(p) *p - 0;i+;)(close(in);炉 一在2出到文件wufat中/!« NULL)30 ! void writeDat()3132333435363738394041FILE *out; int i; out - fopen(wout.datw, fori - 0; i < 20; 1+) ( .printf(M%snw, xx1); fprintf(outrHtsn* xx(1);fclose(out);30.函数ReadDat实现从文件in . dat中读取一篇英文文章,存入到字符 串数组XX中;请编制函数encryptChar,按给定的替代关系对数组xx中 的所有字符进行替代,仍存入数组XX对应的位置上,最后调用函数WriteDat把结果xx输出到文件oul.dat中。替代关系:f(p尸p*H mod256, mod为取余运算,P是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成 整型变量),如果原字符是小写字母或计算后f(p)值小于等于32,则该字 符不变,否则用f(p)替代所对应的字符。注意:部分源程序存放在test .c文件中,原始数据文件存放的格式是: 每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系 进行处理。请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。1 ;2 ;3 ;4 ; 5 6 ;f7 | 8 :9 J 10 ! 11 i 12 ; 13 ; 14 ; 15 !16 : 17 ;18 ! 19 i 20 j 21 !22 I II 23 ; 24 ; 25 ! 26 ; 27 ; 28 29 ; 30 ! 31 32 ; 33 ! 34 ; 35 ; 36 J 37 ! 38 ; 39 40 : 41 5 42 J 43 ! 44 j 45 j 46 47 ;48 f 49 i 50 j 51 !finclude <stdio.h>include <string<h>linclude <ctype.h>unsigned char xx50(80);int maxline , 0; 7文版的忌打数w/ int ReadDat(void);void WriteDat(void);void encryptChar()unsigned int val;void main。>if (ReadDatO)printf (。数据文件m.dat不能打开!:return; ;» encryptCharO; WriteDat();八从文忖s&i中谀取一霞英文文HU存入到字符率数州xx中/ int ReadDat(void)6十皿二一FILE Fp; int i * 0; unsigned char *p; if open (-in.dat-, Hrn) NULL) return 1;while(fgeta(xx(ir 80,fp) ! NULL)I p strchr(xxij # *n*); if(p) ep 0; ifmaxline i; fclosefp); return 0;,把姐果u 出列文科owt dii中/ void WriteDat(void)FILE #fp; int i; fp - fopen(Hout.dafrwwH); for (1 - 0; i < maxline; 1() ( printf(w%snR# xxi); fprintf(fpr HtsnR, xx(i);fclose(fp);