(2022年)浙江省湖州市全国计算机等级考试网络技术真题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2022年)浙江省湖州市全国计算机等级考试网络技术真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(10题)
1.主板主要组成部分是
A.运算器、控制器、存储器
B.CPU和外设
C.CPU、存储器、总线、插槽以及电源
D.CPU、存储器、插槽以及电源电路
2.Cisco路由器上使用团体字pub向管理站pub.abc.edu.cn发送自陷消息,正确的snmp配置语句是()。
A.snmp—server enable traps snmp—server host pub.abc.edu.cn pub
B.snmp—server traps enable snmp—server host pub.abc.edu.cn pub
C.snmp—server enable traps snmp—server pub.abc.edu.cn pub
D.snmp—server traps enable snmp—server pub.abc.edu.cn pub
3.通信控制处理机在网络拓扑结构中被称为()。
A.网络服务器
B.网络防火墙
C.网络交换机
D.网络结点
4.在以下认证方式中,被广泛研究和使用,常用于操作系统登录、Telnet、rlogin等的是()。
A.账户名/口令认证
B.使用摘要算法的认证
C.基于公钥基础设施的认证
D.基于个人特征的认证
5.IPV6地址FE::45:A2:A的::之间被压缩的二进制数字0的位置为()
A.16
B.32
C.64
D.96
6.()是我国使用人数最多的即时通信软件。
A.ICQ
B.QQ
C.MSN
D.AIM
7.以下哪个协议不属于应用层协议( )。
A.TELNET
B.ARP
C.HTTP
D.FTP
8.某主机的IP地址为202.93.120.15,该主机的直接广播地址为( )。
A.255.255.255.255
B.202.93.120.0
C.255.111.255.255
D.202.93.120.255
9.下列关于RPR技术的描述中,错误的是()。
A.RPR环能够在50ms内实现自愈
B.RPR环中每一个节点都执行DPT公平算法
C.RPR环限制数据帧只在源节点和目的节点之间的光纤段上传输
D.RPR的内环与外环都可以传输数据分组与控制分组
10.第27题N—ISDN提供的基本入口线的组成是:2B+D,其中B信道的带宽是()
A.16kbps
B.64kbps
C.128kpbs
D.144kbps
二、填空题(10题)
11. 以太网MAC地址的长度为______位。
12.
13.
14.
15.通过协议可以获取与网上IP地址对应的MAC地址。
16. 宽带城域网必须具备IP地址分配能力,能够支持动态和静态地址分配,支持____________功能。
Ware操作系统是以文件服务器为中心的,主要由三个部分组成:、工作站外壳与低层通信协议。
18. 平均无故障时间的英文缩写是______。
19. Ethernet V2.0规定帧的数据字段的最大长度是______。
20.(9)网络操作系统可分为面向任务型和通用型两类,而通用型网络操作系统又可分为____________和基础级系统。
三、2.填空题(8题)
21. TCP使用IP传递信息,每一个TCP信息被封装在一个【】中并通过互联网传送。
22. 纵观近20年来网络操作系统的发展,网络操作系统经历了______的过程。
23. Token Bus局域网中的令牌是一种特殊的控制帧,它用来控制结点对总线的【】。
24. IEEE【】标准定义了CSMA/CD总线介质访问控制层与物理层规范。
25. ______是第一个使用TCP/IP协议的广域网。
26. 在网络管理中,______功能域监视网络吞吐率、利用率、错误率和响应时间等参数。
27. Web站点可以限制用户访问Web服务器提供的资源,访问控制一般分为四个级别:硬盘分区权限、用户验证、Web权限和______限制。
28. 在网络层上实现多个网络互联的设备是【】。
四、C语言程序设计题(2题)
29.已知数据文件in.dat中存有300个四位数,并已调用读函数readDat 把这些数存入数组a中,请编制一函数jsValue,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjzl,以及所有不满足此条件的四位数平均值pjz2。
最后maini函数调用写函数writeDat把结果cnt,pjzl,pjz2输出到out.dat文件。
例如:7153,7+1=5+3,则该数满足条件计算平均值pjzl,且个数cnt=cnt+1。
8129,8+1!=2+9,则该数不满足条件计算平均值pjz2。
注意:部分源程序存在test.c文件中。
程序中已定义数组:a[300],已定义变量:cnt,pjzl,pjz2
请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat 和写函数writeDat的内容。
第5类按条件对字符进行筛选、替换
30.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVai,其功能是:若一个四位数的千位数位置上的值小于等于百位数位置上的值,百位数位置上的值小于等于十位数位置上的值,以及十位数位置上的值小于等于个位数位置上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数
writeDat把结果cnt以及数组b中符合条件的四位数输出到文件out.dat 中。
注意:部分源程序存在test.c文件中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat 和写函数writeDat的内容。
五、1.选择题(3题)
31. 在网络管理的5个功能中,确定设备的地理位置、名称、记录并维护设备参数表的功能属于( )。
A.配置管理
B.性能管理
C.故障管理
D.计费管理
32. Internet在我国被称为( )。
A.外部网
B.局域网
C.国际互联网
D.计算机网络系统
33. 任何两个并发进程之间( )。
A.一定存在互斥关系
B.一定存在同步关系
C.资源静态分配策略
D.可能存在同步或互斥关系
六、1.程序设计题(3题)
34. 下列程序的功能是:选出100~1000间的所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数cnt,以及这些素数值的和sum。
请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT17.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDAT()的内容。
试题程序:
#include 〈stdio.h>
int cnt, sum;
void countValue()
{
}
main ( )
{
cnt=sum=0;
countValue ();
printf("素数的个数=%d\n", cnt);
printf ("满足条件素数值的和=%d", sum);
writeDAT ();
}
writeDAT ()
{
FILE *fp;
fp=fopen("OUT17.DAT", "w");
fprintf(fp, "%d\n%d\n", cnt, sum);
fclose (fp);
}
35. 函数ReadDat()的功能是实现从文件ENG62.IN中读取一篇英文文章,存入到字符串数组xx中。
请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS62.DAT中。
替代关系:f(p)=p*13mod256(p是数组xx中某一个字符的ASCII值,f(b)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件的存放格式是每行的宽度均小于80个字符。
请勿改动函数main()、读函数ReadDat()和写函数WriteDa()的内容。
#include<conio. h>
#include<stdio. h>
#include<string. h>
#include<ctype. h>
unsigned char xx[50] [80];
int maxline=0;
int ReadDat (void);
void WriteDat(void);
void encryChar()
{
}
void main()
{
clrscr ();
if {ReadDat ())
{
printf ("数据文件ENG62. IN不能打开! \n\007");
return;
}
encryChar ();
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i=0;
unsigned char *p;
if ( (fp=fopen ("ENG62. IN", "r") ) ==NULL)
return 1;
while (fgets (xx [ii, 80, fp) !=NULL)
{
p=strchr(xx[i], '\n');
if (p) *p=0;
i++;
}
maxline=i;
fclose (fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
fp= fopen ("ps62.dat", "w");
for (i=0;i<maxtine; i++)
{
printf ("%s\n", xx [i] );
fprintf (fp, "%s\n", xx [i] );
}
fclose (fp);
}
36. 函数ReadDat()的功能是实现从文件IN2.DAT中读取一篇英文文章存入到字符串数组xx中:请编制函数StrOL(),该函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。
最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。
例如:原文:YOU He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
char xx[50] [80];
int maxline = 0;/* 文章的总行数*/
int ReadDat (void);
void WriteDat (void);
void StrOL(void)
{
main ( )
{
clrscr ( );
if (ReadDat ())
{
printf("数据文件IN2.DAT不能打开! \n\007"); return;
}
StrOL ( );
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i = 0;
char *p;
if((fp = fopen("IN2.DAT", "r")) == NULL) return 1; while(fgets(xx[i], 80, fp) != NULL)
{
p = strchr(xx [i], '\n');
if(p) *p = 0;
i++;
}
maxline = i;
fclose (rD):
return 0;
}
void WriteDat (void)
{
FILE*fp;
int i;
clrscr ();
fp = fopen("OUT2.DAT", "w");
for(i = 0; i <maxline; i++)
{
printf("%s\n", xx[i]);
fprintf(fp, "%s\n", xx[i]);
}
fclose (fp);
}
参考答案
1.C解析:主板是计算机主机的主要部件。
通常,主板由5部分组成:CPU、存储器、总线、插槽以及电源。
2.A设置路由器上的snmp代理具有发出通知的功能:在全局模式下的命令格式为“(config)# snmp—server enable traps[<通知类型>][<通知选项>]”。
设置接收通知的管理站:此命令在全局模式下执行,用于设置网络中的哪台主机作为接收自陷消息的管理站,命令格式为“(config)#snmp—server host<主机名或IP地址>[traps |informs][version{l|2c}]<团体名>[udpport<端口号>][<通知类型>]”。
故选择A选项。
3.D
4.A选项A),账户名/口令认证方法是被广泛研究和使用的一种身份验证方法,也是认证系统所依赖的一种最实用的机制,常用于操作系统登录、Telnet、rlogin等。
5.C
6.B
7.BARP是地址解析协议,用来实现IP地址到物理地址的转换,不属于应用层协议;其余均属于应用层协议,其中Telnet是远程登录协议,HTTP是超文本传输协议,FTP是交换式文件传输协议。
8.D直接广播地址是指包含一个有效的网络号和一个全“1”的主机号。
主机的IP地址为202.93 120.15,这是一个C类IP地址,C类IP地址的主机号为8位,因此主机所在网络的网络号是202.93.120.0,因此直接广播地址是202 93.120.255。
9.BRPR环中每一个节点都执行SRP公平算法。
故选择B选项。
10.B一个N-ISDN的信道是2B+D模式,其中B通道是64kbps用于传输一路数字化的语音或者数字数据,D通道是16kbps,用于传输控制信息。
11.48位48位解析:MAC地址又叫硬件地址或以太网的物理地址,一般用12个十六进制数表示,长度为48位(6字节)。
例如,00-06-80-A3-BD-67(数字中不能有比F大的数),每个生产厂商分配以太网的前3个字节(即公司标识)。
12.
13.
14.
15.ARPARP,即地址解析协议,用于将IP地址转换为相应的MAC地址。
ARP协议采用广播消息的方法来获取网上IP地址对应的MAC地址。
当一台主机要发送报文时,首先通过ARP协议广播,获取MAC地址,并将结果存储在ARP缓存的IP地址和MAC地址对应表中,下次该工作站需要发送报文时,就不用再发送ARP请求,只要在ARP缓存中查找就可以了。
与ARP协议类似,RARP协议也采用广播消息的方法来确定与MAC地址相对应的IP地址。
16.\n网络地址转换或NAT
17.文件服务器内核【解析】NetWare操作系统是以文件服务器为中心的,它主要由3个部分组成:文件服务器内核、工作站外壳与低层通信协议。
18.MTBFMTBF 解析:MTBF是MeanTimeBetweenFailures的缩写,指多长时间系统发生一次故障,即平均无故障时间。
19.1500B1500B 解析:Ethernet II类型以太网帧的最小长度为6+6+2+46+4=64字节,最大长度为6+6+2+1500+4=1518字节。
数据部分的长度范围为46~1500B,故数据字段的最大长度为1500B。
20.(9)变形级系统
【解析】通用型网络操作系统又可分为变形级系统和基础级系统。
21.IP数据报IP数据报解析:TCP协议利用IP层提供的不可靠的数据报服务,在将数据从一端发送到另一端时,为应用层提供可靠的数据传输服务。
TCP使用IP传递信息。
每一个TCP信息被封装在一个IP数据报中并通过互联网传送。
但数据报到达目的主机时,IP将先前封装的TCP信息再送交给TCP。
尽管TCP使用IP传送其信息,但是IP并不
解释或读取其信息。
TCP将IP看成一个连接两个终端主机的报文投递通信系统,IP将TCP信息看成它要传送的数据。
22.从对等结构向非对等结构演变从对等结构向非对等结构演变解析:从网络操作系统的发展来看,网络操作系统经历了从对等结构向非对等结构演变的过程。
对等结构网络操作系统中,所有的连网结点地位平等,安装在每个连网结点的操作系统软件相同,连网计算机的资源在原则上都是可以相互共享的。
在非对等结构网络操作系统设计中,连网结点分为:网络服务器和网络工作站两类。
网络服务器采用高配置与高性能的计算机,以集中方式管理局域网的共享资源,并为网络工作站提供各类服务;网络工作站一般是低配置的微型机系统,主要为本地用户访问本地资源与访问网络资源提供服务。
23.访问权访问权解析:Token\u3000Bus用来控制结点对总线的访问权。
24.3
25.NSFNETNSFNET 解析:NSFNET与ARPANET采用的软件技术不同,一开始就使用了TCP/IP协议,成为第一个使用TCP/IP协议的广域网。
26.性能管理性能管理解析:性能管理使网络管理人员能够监视网络运行的关键参数,如吞吐率、利用率和错误率等。
27.IP地址IP地址解析:Web站点访问控制一般分为4个级别,即IP 地址限制、用户验证、Web权限和硬盘分区权限。
其中,IP地址限制是指Web服务器审核所访问的用户计算机的IP地址,以决定该用户能否访问Web站点的资源。
28.路由器路由器解析:路由器是一种典型的网络层设备。
它在两个局
域网之间按帧传输数据,完成网络层中继或第三层中继的任务。
路由器负责在两个局域网的网络层间按帧传输数据。
29.【审题关键句】千位+百位等于十位+个位的数的个数,求满足此条件以及不满足此条件的四位数平均值pjzl和pjz2。
\n【解题思路】
\n本题类似第20套试题,通过审题可以发现仅有一个不同点,即判断符合条件的四位数是“千位+百位等于十位+个位”,参考答案的第8条语句,修改if条件语句的判断条件即可。
\n【参考答案】
\n
\n第5类按条件对字符进行筛选、替换
30.【审题关键句】千位-百位-十位-个位,结果大于等于零且原四位数是奇数,统计出满足此条件的个数,并按从小到大的顺序存入数组。
\n【解题思路】
\n本题类似第9套试题,通过审题可以发现主要有两个不同点:一是要求统计的四位数的条件是“千位-百位-十位-个位>=0”,二是要求该四位数是奇数,这两个不同点都体现在参考答案的第8条语句中,对该语句进行修改即可,其中,可以判断奇数的表达式是“a[i]%2”。
\n【参老答案】
\n
\n
31.A解析:配置管理的目标是:掌握和控制网络的配置信息,从而保证
网络管理员可以跟踪、管理网络中各种设备的运行状态。
内容可分为两部分:对设备的管理和对设备连接关系的管理。
对设备的管理包括:识别网络中的各种设备,确定设备的地理位置、名称和有关细节,记录并维护设备参数表;使用适当的软件设置参数值和配置设备功能;初始化、启动和关闭网络或网络设备。
32.C解析:因特网是计算机互联网络的一种,也被称为“国际互联网”。
33.D解析:进程同步是指进程之间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务;进程互斥是指在系统中,许多进程常常需要共享资源,而这些资源往往要求排他性地使用,即一次只能为一个进程服务,因此,各进程间互斥使用这些资源。
并发则从另外的角度描述了进程之间的执行关系,所以任何两个并发进程之间可能存在同步或互斥关系。
34.void countValue()。
{ 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==0) break;if(j>half) {cnt++;sum+=i;} /*计算这些素数的个数cnt以及这些素数值的和sum*/ } } }void countValue()。
\r\n {\r\n int i,j,half,hun,ten,data;\r\n for(i=101;i〈1000;i++)\r\n {\r\n hun=i/100;/*求百位数字*/\r\n ten=i%100/10;/*求十位数字*/\r\n data=i%10;/*求各位数字*/\r\n if(hun==(ten+data)%10) /*如果个位数字与十位数字之和被10除所得余
数恰是百位数字,则进一步判断该数是否为素数*/ \r\n {\r\n half=i/2;\r\n for(j=2;j〈=half;j++)\r\n if(i%j==0) break;\r\n if(j>half)\r\n {cnt++;
sum+=i;} /*计算这些素数的个数cnt,以及这些素数值的和
sum*/\r\n }\r\n }\r\n } 解析:本题的解题思路是利用一个for循环依次取
得100到1000之间的数,接着求得当前所取得的数的各个位上的数字
值,语句“hun=i/100;ten=i%100/10:data=i%10:”可以分别取得某数的
百位、十位及个位上的数字值,然后判断该数个位数字与十位数字之和
被10除所得的余数是否恰好等于百位上的数字。
如果这个条件成立,
接着去判断原数是否是素数,这里,考虑到效率问题,可以依次用从2
到该原数本身一半的数去除原数,如果原数能被除尽,则证明该数肯定
不是素数,不需要做下面的工作,接着去取下一个数,继续判断。
只有
同时满足上述两个条件的数才是本题所需的数,这时把该数累加到变量sum(满足条件素数值的和)中,同时也给计数器变量cnt(素数的个数)加
1。
35.void encryChar() { int i; char *pf; for (i=O;i { while (*pr !=0) { if(((*pf*13%256)%2==O) || (*pf*13%256<=32)) /*如果计算后的值小于
等于32或其ASCII值是偶数* / { pf++; /*则该字符不变去取下一个字符*/ continue; /*退出此次循环*/ } *pf=*pf*13%256; /*否则将新字符替代原字符*/ pf++; /*去取下一个字符*/ } } }void encryChar()\r\n {\r\n int i;\r\n char *pf;\r\n for (i=O;i {\r\n while (*pr !=0)\r\n {\r\n if(((*pf*13%256)%2==O) || (*pf*13%256<=32))\r\n /*如果计算后的值小于等于32或其ASCII值是偶数* /\r\n {\r\n pf++; /*则该字符不变,去取下一个字符*/ \r\n continue; /*退出此次循环*/\r\n }\r\n *pf=*pf*13%256;
/*否则将新字符替代原字符*/\r\n pf++; /*去取下一个字符*/\r\n }\r\n }\r\n} 解析:本题考查的知识点如下:
(1)字符对应的ASCII码。
(2)判断结构中多个条件的“或”运算。
(3)退出一次循环。
在C语言中,字符可参与任何整数运算。
实际上,是字符的ASCII码参与了运算。
所以可以直接用字符代入f(p)的关系式中求出替换字符。
若f(p)≤32或其ASCII值是偶数,则该字符不变。
两个条件满足一个即可,所以这两个条件之间用“或”运算。
若字符不变,则可不必计算替换字符,使用continue跳出本次循环,进入下一次循环的条件判断中。
因为这里不是直接退
36.void strOL(void) { int ijkstrl1;char c; for (i=0;i<maxline;i++) /*把各行中多余的标点符号去掉*/ for(j=0;j<strlen (xx[i]);j++) { c=xx[i] [j]; if( (c <='A'&&c<='Z')|| (c<='a'&&c<='z')||c==''||(c>='0'&&c<='9')); else xx[i] [j]=' '; for (1=0; l<maxline; l++) { char ch[80]={0}; char pp[80]={0); strl=strlen(xx[l]); i=str1-1; k=1; while (1) { while (((xx[l] [i]>='a' && xx[l] [i]<='z') || (xx[l] [i]>='A' && xx[l] [i]<='z') || (xx[l] [i]>='0' &&xx[1] [i]<='9')) &&i>=0) /* 处理字母和数字*/ { for (j=k; j>=0; j--) /*从当前行的最后一个字符开始取字符直到遇到空格*/ pp[j+1]=pp[j]; pp[O]=xx[l] [i]; k++; i--; } strcat (chpp); /*把该单词存放到数组ch中*/ strcpy(pp "" ); /*清空数组pp*/ k=1; if (i==-l)break; /*如果处理完了一行则退出循环*/ while((xx[1] [i]<'0'|| (xx[l] [i]>'9'&&xx[l] [i]<'A') || xx[1] [i]>'z') && i>
=0) /*处理空格*/ { for (j=k; j>=0; j--) pp[j+1]=pp [j]; pp[0]=xx[l] [i]; k++; i--; } strcat (ch pp); /*把空格加到数组ch中*/ strcpy (pp "" ); /*清空数组* / k=0; if (i==-1) break; /*如果处理完了一行则退出循环* / } strcpy(xx[l] ch); /*把已处理完的字符串仍按行重新存入字符串数组xx中*/ } }void strOL(void)\r\n {\r\n int i,j,k,strl,1;char c;\r\n for (i=0;i<maxline;i++) /*把各行中多余的标点符号去掉*/\r\n for(j=0;j<strlen (xx[i]);j++)\r\n {\r\n c=xx[i] [j];\r\n if( (c<=\'A\'&&c<=\'Z\')|| (c<=\'a\'&&c<=\'z\')||c==\'\'||(c >=\'0\'&&c<=\'9\'));\r\n else xx[i] [j]=\' \';\r\n for (1=0; l<maxline; l++)\r\n
{\r\n char ch[80]={0};\r\n char pp[80]={0);\r\n strl=strlen(xx[l]);\r\n i=str1-1;\r\n k=1;\r\n while (1)\r\n {\r\n while (((xx[l] [i]>=\'a\' && xx[l] [i]<=\'z\')
|| (xx[l] [i]>=\'A\' &&\r\n xx[l] [i]<=\'z\') || (xx[l] [i]>=\'0\' &&xx[1] [i]<=\'9\')) &&i>=0) /*\r\n 处理字母和数字*/\r\n {\r\n for (j=k; j>=0; j--)\r\n /*从当前行的最后一个字符开始取字符,直到遇到空格*/\r\n pp[j+1]=pp[j];\r\n pp[O]=xx[l] [i];\r\n k++; i--;\r\n }\r\n strcat (ch,pp); /*把该单词存放到数组ch中*/\r\n strcpy(pp, '' ); /*清空数组pp*/\r\n k=1;\r\n if (i==-l)break; /*如果处理完了一行,则退出循环*/\r\n while((xx[1] [i]<\'0\'|| (xx[l] [i]>\'9\'&&xx[l] [i]<\'A\') ||\r\n xx[1] [i]>\'z\') && i>=0) /*处理空格*/\r\n {\r\n for (j=k; j>=0; j--)\r\n pp[j+1]=pp [j];\r\n pp[0]=xx[l] [i];\r\n k++;\r\n i--;\r\n }\r\n strcat (ch, pp); /*把空格加到数组ch中*/\r\n strcpy (pp, '' ); /*清空数组* /\r\n k=0;\r\n if (i==-1) break; /*如果处理完了一行,则退出循环* /\r\n }\r\n strcpy(xx[l] ,ch); /*把已处理完的字符串仍按行重新存入字符串数组xx中*/\r\n }\r\n } 解析:本题是有关字符串的处理问题。
首先利用二重循环来按照先行后列的顺序取得xx数组中的
各个字符元素,这里用到了strlen()函数,用来求字符串长度。
对依次取得的字符做一些处理,即把多余的标点符号去掉,使新的字符数组中只含有字母和空格。
准备工作做完后,从当前行的最后一个字符开始取,不断的取每一个字符前面的字符,直到取得一个完整的单词后(即遇到空格分隔时),就把该单词存放到数组ch中(用到了strcatt()函数来连接两个字符串,用strlen()函数来对字符串求取串长度),还要把分隔符也放到ch中去。
接着去取该行中其他的字符组成的单词,重复上面的操作,对其他行同样处理。
这样最终得到的字符串就是各行中单词出现的顺序的逆序了,但单词本身的字符顺序没有发生变化。