(2023年)广东省广州市全国计算机等级考试网络技术真题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2023年)广东省广州市全国计算机等级考试网络技术真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(10题)
1.下列关于路由协议的描述中,正确的是()。
A.RIP协议适用于路由变化剧烈的互联网络环境
B.RIP协议中,路由器在接收到更新报文后按照最短路径原则更新路由表
C.OSPF协议中,链路状态协议“度量”是指距离、带宽
D.OSPF协议中,每一个区域OSPF拥有一个128位的区域标识符
2.
3.一个路由表通常包含许多(N,R)对偶序。
其中,N和R代表的是( )。
A.N指源主机的IP地址,R是到网络N路径上的“下一个”路由器的IP 地址
B.N指要到达的网络的IP地址,R是到网络N路径上的“下一个”路由器的护地址
C.N指源网络的IP地址,R是到网络N路径上的默认路由IP地址
D.N指要到达的网络的IP地址,R是到网络N路径上的“上一个”路由器的企地址
4. 超媒体与超文本的区别是______。
A.文档内容不同
B.文档性质不同
C.链接方式不同
D.无区别
5.下列关于典型的高端路由器可靠性与可用性指标的描述中,错误的是()。
A.无故障连续工作时间大于1万h
B.系统故障恢复时间小于30min
C.主备用系统切换时间小于50ms
D.SDH接口自动保护切换时间小于50ms
6.下列关于FTP服务的描述中,错误的是()。
A.使用FTP可以传送任何类型的文件
B.传送文件时客户机和服务器间需建立控制连接和数据连接
C.服务器端发起的连接是数据连接,客户端的端口为20
7.在计算机网络体系结构中,要采用分层结构的理由是( )。
A.可以简化计算机网络的实现
B.各层功能相对独立,各层因技术进步而做的改动不会影响到其他层,从而保持体系结构的稳定性
C.比模块结构好
D.只允许每层和其上、下相邻层发生联系
8.下列对IPv6地址FE80:0:0:0801:FE:0:0:04A1的简化表示中,错误的是()
A.FE8::801:FE:0:0:04A1
B.FE80::801:FE:0:0:04A1
C.FE80:0:0:801:FE::04A1
D.FE80:0:0:801:FE::4A1
9.在Cisco路由器上进行SNMP设置时,如果团体名为admin,访问权限为只读,那么正确的配置语句是()。
10.在安全区域划分中DMZ区通常用做()。
A.数据区
B.对外服务区
C.重要业务区
二、填空题(10题)
11. 电子商务应用系统通常包含CA安全认证系统、______、业务应用系统和用户及终端系统。
12.(20)Google搜索引擎主要采用了分布式爬行网页采集技术、超文本匹配技术和__________。
13.HFC采用的传输方式,用户数越多,每个用户实际可使用的带宽就越窄。
14. IEEE制定的UNIX统一标准是______。
15. 如果普通集线器的端口数不够用,可以使用______集线器。
16.在NetWare 网络中,负责网络文件目录结构的创建与维护,建立用户与用户组,以及设置用户权限、目录文件权限与目录文件属性等任务。
17.
18. 拨号上网有【】与SLIP/PPP协议连接两种方式。
19.(8)以太网协议将接收出错分为3种类型:帧校验错、帧长度错和________。
20.
三、2.填空题(8题)
21. 在软磁盘存储器中,软磁盘适配器是______。
22. 通过自身常驻系统内存,优先获得系统的控制权,监视和判断系统中是否有病毒存在是______技术。
23. B-ISDN是以______作为干线和用户环路的传输介质。
24. 密码分析的过程通常包括:【】、假设、推断和证实等步骤。
25. TCP/IP参考模型应用层协议中,用于实现互联网中电子邮件的传送功能的是______。
26. 在Internet中,需要使用进行路由选择的设备一般采用______驱动的路由选择算法。
27. 在交换式局域网中,如果交换机的端口既能自动地和10 Mbps设备连接,又能自动地和100 Mbps的设备连接,那么,这种局域网交换机被称为【】。
28. TCP可以为其用户提供【】、面向连接的、全双工的数据流传输服务。
四、C语言程序设计题(2题)
29.已知在文件in.dat中存有200组数据,每组有3个数,每个数均是三位数。
函数readDat是读取这200组数据存放到结构数组aa中。
请编制函数jsSort,其函数的功能是:要求在200组数据中找出第二个数大于第一个数加第三个数之和的数,其中满足条件的个数作为函数jsSort的返回值,同时把满足条件的数据存入结构数组bb中,再对bb 中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat把结果bb输出到out.dat文件中。
注意:部分源程序存在test.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat 和写函数writeDat的内容。
30.函数ReadDat实现从文件in.dat中读取一篇英文文章存入到无符号字符串数组xx中;请编制函数ChA,其函数的功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新的值,存入数组单元xx[i][0]中(其中:i是文章中的某行)。
第
二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的值,存入数组单元xx[i][1]中。
以此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的值,存放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新存入无符号字符串数组xx中。
最后main函数调用函数WriteDat把结果xx输出到out.dat文件中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按它的ASCII值作以上处理。
注意:部分源程序存放在test.c文件中。
请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat 的内容。
五、1.选择题(3题)
31. 下列不是奔腾芯片技术的是( )。
A.超标量技术
B.超流水线技术
C.简明并行指令计算EPIC
D.双Cache 的哈佛结构
32. 在Interne 的IP 地址中,关于C 类1P 地址的说法正确的是______。
A.可用于中型规模的网络
B.在一个网络中最多只能连接256台设备
C.C类IP地址可用于多目的地址发送
D.C类IP地址保留为今后使用
33. 网络协议的三要素是语法、语义与时序,语法是关于( )。
A.用户数据与控制信息的结构和格式的规定
B.需要发出何种控制信息,以及完成的动作与做出的响应的规定
C.事件实现顺序的详细说明
D.接口原语的规定
六、1.程序设计题(3题)
34. 已知在文件in37.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。
其中,金额=单价×数量可计算得出。
函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。
请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件out37.dat中。
注意;部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
#include<mem.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 100
typedef struct
{
char dm[5];
char mc[11];
int dj;
int sl;
long je;
} PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();
void SortDat()
{
}
void main()
{
memset(sell,0,sizeof(sell)); ReadDat()
SortDat()
WriteDat( ;
}
void ReadDat ()
{
FILE *fp;
char str[80],ch[11];
int i;
fp=fopen("IN37.DAT","r"); for(i=0;i<100;i++)
{
fgets(str,80,fp);
memcpy(sell[i].dm, str, 4);
memcpy(sell[i].mc, str+4,10);
memcpy(ch, str+14, 4);
ch[4]=0;
sell [i].dj=atoi (ch);
memcpy (ch, str+18, 5);
ch[5]=0;
sell [i]. sl=atoi (ch);
sell [i].je=(long)sell[i].dj*sell[i].sl;
}
fclose (fp);
}
void WriteDat()
{
FILE *fp;
int i;
fp=fopen ( "OUT37.DAT", "w" );
for(i=0; i<100; i++)
{
fprintf(fp,"%s %s %4d %5d %101d\n", sell [i].dm, sell[i].mc,
sell[i].dj,sell[i].sl, sell[i].je);
}
fclose (fp);
}
35. 函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。
最后调用函数writeDat()把结果xx输出到文件out71.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCⅡ值降序排序,右边部分按字符的ASCⅡ值升序排序。
如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:位置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
处理后的字符串d c b a e f g h
4 3 2 1 9
5
6
7 8
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDatO的内容。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char xx[20][80];
void isSoYt()
{
}
void main()
{
readDat();
isSort();
writeDat();
{
readDat ( )
{
FILE *in;
int i=0;
char *p;
in=fopen ("in71.dat", "r");
while (i<20 && fgets(xx[i],80,in)!=NULL)
{
p=strchr (xx [i] , '\n' );
if (p)
*p=0;
i++;
}
fclose (in);
}
writeDat ()
{
FILE *out;
int i;
clrscr ();
ut=fopen ("out71. dar ", "w");
for (i=0; i<20; i++)
{
printf("%s\n",xx[i]);
fprintf {out, "%s\n", xx [i] );
}
fclose (out);
}
36. 下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从小到大的/顷序,再计算其间隔加、减之和,即第1个素数-第2个素数十第3个素数-第4个素数+第5个素数……的值sum。
请编写函数countValue()实现程序的要求,最后调用函数writeDaI()把结果cnt和sum输出到文件OUT66.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDAT()的内容。
试题程序;
#include<stdio. h>
int cnt, sum;
void countValue()
{
}
void main()
{
cnt=sum=0;
countValue ();
printf ("素数的个数=%d\n", ont);
printf ("按要求计算得值=%d\n", sum );
writeDAT ();
}
writeDAT ()
{
FILE *fp;
fp=fopen ( "OUT66. DAT", "w" );
fprintf (fp, "%d\n%d\n", cnt, sum);
fclose (fp);
}
参考答案
1.BRIP协议是一种分布式、基于距离向量的路由选择协议,其优点是实现简单,但是它不适用于大型或路由变化剧烈的互联网环境。
RIP协议中,路由刷新报文主要内容是由若干(V,D)组成的表,矢量V标识该路由器可以到达的目的网络或目的主机,距离D标识该路由器可以到达的目的网络或目的主机的跳数。
其它路由器在接收到某个路由器的(v,D)报文后,按照最短路径原则对各自的路由表进行刷新。
()SPF’使用分布式链路状态协议,链路状态协议“度量”主要是指费用、距离、延时、带宽等,OSPF。
协议中,每一个区域OSPF拥有一个32位的区域标识符。
故选择B选项。
2.A
3.B
4.A解析:超媒体与超文本的区别是文档内容的不同,超文本只包含文本信息,而超媒体则包含了其他表示方式的信息,如图形,声音,动画等。
5.A典型的高端路由器的可靠性与可用性指标应该达到:①无故障连续工作时间(MTBF)大于10万小时;②系统故障恢复时间小于30分钟;③系统具有自动保护切换功能,主备用切换时间小于50毫秒;④SDH与ATM接口自动保护切换功能,切换时间小于50毫秒;⑤主处理器、主存储器、交换矩阵、电源、总线管理器与网络管理接口等主要部件需要有热拔插冗余备份,线卡要求有备份,并提供远程测试诊断能力;⑥路由器系统内部不存在单故障点。
6.CFTP是文件传输协议,允许用户从服务器上获取文件副本,或者将本地计算机上的一个文件上传到服务器。
FTP采用的是客户机/服务器工作方式。
传输文件时,为了分开数据流和控制流,服务器和客户机间需要建立控制连接和数据连接。
当客户机向服务器发起连接请求时,服务器端的默认端口为2l。
服务器端在接收到客户端发起的控制连接时,控制进程创建一个数据传送进程,其端口为20,与客户端提供的端口建立数据传输的TCP连接,故选择C选项。
7.B解析:分层结构和模块结构相比,各具特点。
计算机软件的模块结构使得软件的编制可以实现模块相对独立;只要对外功能不变,则模块内部的变化不影响其他模块;但是模块间可以相互调用,模块结构并不确定只允许每层和其上、下相邻层发生联系。
而采用分层结构既具有模
块结构的优点,又能保证只允许每层和其上、下相邻层发生联系,或者说,层次结构是一种特殊的模块化结构,核心内容是层间的相对独立性。
8.A
9.C配置团体名:snmp—servercommunity团体名{view视阈名roIrw}[访问控制表号]。
团体名为admin,只读为ro,访问控制表号可以省,根据语法结构,故选C选项。
10.B
11.支付网关系统支付网关系统解析:电子商务应用系统由各子系统构成,其中有些子系统(CA安全认证系统、支付网关系统)在电子商务系统中必不可少,没有这些子系统就不能成为完整的电子商务系统,而有些子系统则可以根据企业用户或个人用户的需求来建立(业务应用系统、用户及终端系统)。
12.页面等级技术
【解析】Google搜索引擎主要采用了分布式爬行网页采集技术、超文本匹配技术和页面等级技术。
13.非对称HFC(混合光纤/同轴电缆网)接入是指借助有线电视网接入Internet的方式。
HFC接入也采用非对称的数据传输,上行传输速率在10Mbps左右,下行传输速率为10Mbps~40Mbps。
由于HFC的接入速率较高且24小时在线,所以无论是单机接入还是局域网接入都非常简单。
HFC采用共享式的传输方式,用户越多,每个用户实际可以使用的带宽就越窄。
14.POSIX(易移植操作系统环境)POSIX(易移植操作系统环境) 解析:在20世纪80年代,UNIX用户协会开始了UNIX的标准化工作,后来由
IEEE接手,它制定了“易移植操作系统环境”,即POSIX标准。
15.可堆叠式可堆叠式解析:如果需要联网的结点数超过单一集线器的端口数时,通常需要采用多集线器的级联结构,或是采用可堆叠式集线器。
16.网络管理员在NetWare网络中,网络管理员负责网络文件目录结构的创建与维护,建立用户与用户组,设置用户权限、目录文件权限与目录文件属性,完成网络安全保密、文件备份、网络维护与打印队列管理等任务。
17.主机所在网络
18.拨号连接终端方式拨号连接终端方式解析:拨号上网有拨号连接终端方式与SLIP/PPP协议连接两种方式。
19.(8)帧位错【解析】以太网协议将接收出错分为3种类型:帧校验错、帧长度错和帧位错。
20.
21.软盘驱动器与CPU进行信息交换的通道口软盘驱动器与CPU进行信息交换的通道口解析:软磁盘存储器主要有软磁盘、软盘驱动器和软磁盘适配器组成。
软磁盘适配器是CPU与软盘驱动器进行信息交换的通道口。
22.预防病毒预防病毒解析:网络反病毒技术主要包括预防病毒、检测病毒和消毒3种技术。
预防病毒是断绝计算机病毒的传染途径,预防的同时可以采用检测软件检测病毒,一旦发现病毒,应该用消毒软件的消
毒功能消除病毒。
23.光纤光纤解析:N-ISDN是以目前正在使用的公用电话交换网为基础,而B-ISDN是以光纤作为干线和用户环路传输介质。
24.分析分析解析:试图发现明文或密钥的过程称为密码分析。
密码分析人员使用的策略取决于加密方案的特性和分析人员可用的信息。
密码分析的过程通常包括:分析(统计所截获的消息材料)、假设、推断和证实等步骤。
25.电子邮件协议或SMTP电子邮件协议或SMTP 解析:应用层协议主要包含下列几项:①网络终端协议(TELNET),用于实现互联网中远程登录功能;②文件传输协议(FTP),用于实现互联网中交互式文件传输功能;③电子邮件协议(SMTP),用于实现互联网中电子邮件传送功能;
④域名服务(DNS),用于实现互联网设备名字到IP地址映射的网络服务功能;⑤路由信息协议(RIP),用于实现网络设备之间交换路由信息功能;
⑥网络文件系统(NFS),用于实现网络中不同主机间的文件共享功能;
⑦HTTP协议,用于实现WWW服务功能。
26.表表解析:需要使用进行路由选择的设备一般是采用表驱动的路由选择算法。
每台需要路由选择的设备保存一张IP选路表(路由表),需要传送数据时,通过查询该表决定发送方向。
27.10/100Mbps自适应交换机10/100Mbps自适应交换机解析:局域网交换机有以下几种类型。
①10 Mbps局域网交换机——这种交换机的结构简单,价格低,但它的端口只能连接10 Mbps 的设备。
②10/100 Mbps 自适应局域网交换机——这种交换机可以自动检测连接设备的技术参数,适应连接设备的工作方式。
因此,它既能自动地和
10 Mbps设备连接,又能自动地和100 Mbps的设备连接。
③大型局域网交换机——它是一种模块化设备,在应用时可根据具体的情况灵活配置相关功能模块(比如:各种速率的以太网模块、路由模块、中继器模块和ATM模块等)。
28.可靠的可靠的解析:本题考查点是TCP协议提供的服务。
Internet 网络中,网络层的IP协议提供不可靠的数据报服务。
数据报在传输过程中可能出现差错、丢失、顺序错乱等现象。
对大多数的应用而言,需要通过TCP协议对IP层进行“弥补”和“加强”,以便为上层应用进程提供一个可靠的(包括传输数据不重复、不丢失、顺序正确)、面向连接的、全双工的数据流传输服务。
29.【审题关键句】第2个数大于第1个数加第3个数,存入数组,按第2个加第3个数之和降序排序。
\n【解题思路】
\n①首先定义两个循环变量i、j;一个计数变量count;一个用于中间转换数据的结构体变量CC。
\n②建立一个for循环,指定第一个for循环的循环变量i从0开始,到200时结束,每循环一次,变量i的值加1。
在循环体中依次判断每行数据中,如果aa[i]的第二个数大于第一个数加第三个数之和,则把aa[i]复制到bb[count]中,同时数组下标变量count加1。
\n③将所有满足条件的记录筛选保存到数组bb口后,再通过两个for循
环对数组bb[]中记录进行排序。
第一个for循环的循环变量i的初值为0,当等于数组计数变量count的值减1时停止循环,每循环一次,i的值加1;第二个for循环的循环变量j的初值等于i+1,当等于数组计数变量count的值时停止循环,每循环一次,j的值加1;每次进行比较时,如果第i行的第二个数加第三个之和小于其后面第i行的第二个数加第三个之和,将执行if条件语句后面花括号中的命令,花括号中3条命令的功能就是根据题目要求按每行数据中第二个数加第三个之和从大到小排序。
\n④最后将计数函数count返回。
\n【参考答案】
\n
\n
30.【审题关键句】以行为单位,新字符串中每个字符的ASCII码值等于该位置上的原字符ASCII码值加其后面一个字符的ASCII码值,逆序排序。
\n【解题思路】
\n①定义整型循环变量i、j和字符局部变量yuan。
\n②在第一层for循环中,循环变量i从0开始,依次递增直到其值大于或等于maxline,在循环体中,首先把第i行的第一个字符xx[i][O]赋给变量yuan,在第二层for循环中,循环变量j从0开始,依次递增直到其值等于该行字符串的长度减l,在循环体中,将字符xx[i][j]的ASCII 码值与字符xx[i][j+1]的ASCII码值相加的和保存到字符xx[il[j]中。
当
退出第二层for循环后,把第i行的最后一个字符与第一个字符变量yuan的值相加,最后通过strrevi函数对i行字符串逆序排序。
\n【参考答案】
\n
31.C解析:奔腾的技术特点有10项:①超标量技术;②超流水线技术;
③分支预测;④双Cache的哈佛结构:指令和数据分开;⑤固化常用指令;⑥增强的64位数据总线;⑦采用PCI标准的局部总线;⑧错误检测及功能冗余校验技术;⑨内建能源效率技术;⑩支持多重处理。
32.B解析:C类IP地址的前三位用二进制数110表示,用21位(第3位一第23位)二进制数表示网络地址,用8位表示主机地址。
在一个网络中最多只能连接256台设备,因此,C类IP地址适用于较小规模的网络。
而B类IP地址可用于中型规模的网络;D类IP地址用于多目的地址发送,E类IP地址则保留为今后使用。
33.A解析:语法、语义与时序是网络协议组成的三要素。
其中,语法是指用户数据与控制信息的结构和格式;语义,即需要发出何种控制信息,以及完成的动作与做出的:响应;时序是对实践实现顺序的详细的说明。
34.void SortDat() { int ij; PRO xy; for (i=0; i<99; i++) for (j=i+l; j<100; j++) { if (strcmp (sell [i].dm sell [j].dm) >0)/*按产品代码从小到大进行排列*/ { xy=sell [i]; sell [i]=sell [j]; sell [j]=xy; } else if (strcmp (sell [i].dm sell[j].dm)==0) /*若产品代码相同*/ if (sell [i].je<sell [j].je) /*则按金额从大到小的进行排列*/ { xy=sell[i]; sell [i] =sell [j]; sell [j] =xy; } } }void SortDat()\r\n { int i,j;\r\n PRO xy;\r\n for (i=0; i<99; i++)\r\n for (j=i+l;
j<100; j++)\r\n {\r\n if (strcmp (sell [i].dm, sell [j].dm) >0)/*按产品代码从小到大进行排列*/\r\n { xy=sell [i];\r\n sell [i]=sell [j];\r\n sell [j]=xy;\r\n }\r\n else if (strcmp (sell [i].dm, sell[j].dm)==0) /*若产品代码相同*/\r\n if (sell [i].je<sell [j].je) /*则按金额从大到小的进行排列*/\r\n { xy=sell[i];\r\n sell [i] =sell [j];\r\n sell [j] =xy;\r\n }\r\n }\r\n } 解析:本题考查的知识点如下:
(1)结构体及结构数组的相关操作。
(2)结构数组的排序。
(3)字符型数组的比较。
本题着重考查结构体变量的访问、赋值,包括结构体本身及结构体中各个成员的访问和赋值。
结构数组的操作与一般数组的区别不大,只要注意其中的元素是结构体,以及对结构体操作的方法。
根据题意要求,我们首先要比较产品代码。
因为产品代码为字符型,所以不能使用简单的比较运算符进行比较。
在这里,我们使用了字符串处理函数strcmp(char*strl1,char*strl2,unsigned int cout)对其进行比较。
对于比较结果,还要按情况进行新的操作——存入结构数组或者再进行比较。
因为已定义了结构数组,就可以使用循环进行比较排序。
排序采用前面介绍的“选择排序法”。
35.void jsSort () { iht i j k strlhalf; char ch; for(i=0;i<20;i++) { strl=strlen (xx[i] ); /*求各行字符串的总长度*/ half=strl/2; /*求总长度的一半*/ for (j=0; j <half-1; j ++) /*左边部分按字符的ASCII值降序排序*/ for (k=j+l; k<half; k++) if(xx[i] [j]<xx[i] [k]) { ch=xx[i] [j]; xx[i] [j~]=xx[i]
[k]; xx[i] [k] =ch; } if (strl%2) /*如果原字符串长度为奇数则跳最中间的字符使之不参加排序*/ half++; for (j=half; j <strl-1; j++) /*右边部分按字符的ASCII值升序排序* / for (k=j+l; k<strl; k++) if (xx[i] [j]>xx[i] [k]) { ch=xx [i] [j]; xx[i] [j]=xx[i] [k]; xx[i] [k] =ch; } } }void jsSort ()\r\n {\r\n iht i, j, k, strl,half;\r\n char ch;\r\n for(i=0;i<20;i++)\r\n {\r\n strl=strlen (xx[i] ); /*求各行字符串的总长度*/\r\n half=strl/2; /*求总长度的一半*/\r\n for (j=0; j <half-1; j ++) /*左边部分按字符的ASCII值降序排序*/\r\n for (k=j+l; k<half; k++)\r\n if(xx[i] [j]<xx[i] [k])\r\n {\r\n ch=xx[i] [j];\r\n xx[i] [j~]=xx[i] [k];\r\n xx[i] [k] =ch;\r\n }\r\n if (strl%2) /*如果原字符串长度为奇数,则跳最中间的字符,使之不参加排序*/\r\n half++;\r\n for (j=half; j <strl-1; j++) /*右边部分按字符的ASCII值升序排序* /\r\n for (k=j+l; k<strl; k++)\r\n if (xx[i] [j]>xx[i] [k])\r\n {\r\n ch=xx [i] [j];\r\n xx[i] [j]=xx[i] [k];\r\n xx[i] [k] =ch;\r\n }\r\n }\r\n } 解析:本题考查的知识点如下:
(1)二维数组的访问和下标的控制。
(2)字符的ASCII码的比较。
(3)字符的排序。
本题将数据按行存入到二维数组xx中,行数为数组的第1个下标,每行字符的个数为数组的第2个下标。
因为以行为字符串处理的单位,所以要先求得一行字符串的长度。
字符可以参加任何整数运算,实际上是字符的ASCII码参与了运算,所以町以直接使用比较运算符对字符进行比较。
对从0到(长度/2-1)的字符进行降序排序(数组的下标从0开始)。
若长度为奇数,则再从(长度/2+1)开始(跳过最中间的字符)到最后1个字符进行升序排列。
否则,从(长度/2)开始到最后1个字符进行升序排列。
字符排序使用“选择排序法”,最后使用循环实现对每行数据的处理。
36.void countValue() { int ijhalfyy[100]; for(i=500;i<800;i++) { half=i/2; for(j=2;j<=half;j++); if (i%j==0) break; /*如果该数不是素数则退出此
层循环*/ if (j>=half) /*如果该数是素数则将该数存入数组yy中*/ { yy[cnt]=i; cnt++; /*统计素数的个数*/ } } for (i=0 j =-1; i<cnt; i++) /*计算这些素数的间隔加、减之和*/ { j=j*-1; sum+=j*yy[i]; } }void countValue()\r\n { int i,j,half,yy[100];\r\n for(i=500;i<800;i++)\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) /*如果该数是素数,则将该数存入数组yy中*/\r\n { yy[cnt]=i;\r\n cnt++; /*统计素数的个数*/\r\n }\r\n }\r\n for (i=0, j =-1; i<cnt; i++) /*计算这些素数的间隔加、减之和*/\r\n { j=j*-1;\r\n sum+=j*yy[i];\r\n }\r\n } 解析:本题考查的知识点如下:
(1)利用循环和“%”进行素数的判断。
(2)间隔加、减的实现。
在本题中,首先要找出判断素数的方法。
若一个数a依次除以从2到a/2
的数所得的余数都不是0,则这个数是素数。
用此方法依次判断出从500
到800区间内的素数。
由题意可知,第1,3,5…个素数计算加法,第
2,4,6…个素数计算减法。
减去1个正整数就是加上负的这个正整数,
所以可以将这个正整数乘以-1进行加法。
使用循环实现求和,在奇数次
的循环中,每个素数乘以1,偶数次的循环中,素数乘以-1,就可实现
间隔加、减。