admin管理员组

文章数量:1530862

2023年12月19日发(作者:)

【2023年】江苏省宿迁市全国计算机等级考试网络技术模拟考试(含答案)

学校:________ 班级:________ 姓名:________ 考号:________

一、单选题(10题)

1.如果系统高可用性达到99.9%,那么每年的停机时间应()。

A.≦53分钟 B.≦5分钟 C.≦8.8小时 D.≦13.6小时

s NT和Windows 2000系统能设置为在几次无效登录后锁定帐号,这可以防止()。

A.木马 B.暴力攻击 欺骗 D.缓存溢出攻击

3.若两台服务器系统可用性分别达到99.999%和99.99%,那么下面关于两台服务器每年停机时间的描述中正确的是()。

A.两台服务器每年的停机时间之差不可能小于5分钟

B.两台服务器每年的停机时间之和不可能大于58分钟

C.两台服务器每年的停机时间必须小于等于的时长分别是5分钟和8.8小时

D.两台服务器每年的停机时间必须小于等于的时长分别是53分钟和8.8小时

4.在通信条件下,为解决发送者事后否认曾经发送过这份文件和接收者伪造一份文件并宣称它来自发送方这类的问题的发生,可采用的方法是( )。

A.数字加密机制 B.数字签名机制 C.访问控制机制 D.数据完整性机制

5.

6.攻击者采用某种手段,使用户访问某网站时获得一个其他网站的IP地址,从而将用户的访问引导到其他网站,这种攻击手段称为( )。

欺骗攻击 欺骗攻击 C.暴力攻击 D.重放攻击

7.某企业分配给产品部的IP地址块为121.55.31.192/26,分配给市场部的IP地址块为121.55.31.160/27,分配给财务部的IP地址块为121.55.31.128/27,那么这3个地址块经过聚合后的地址为()。

A.121.55.31.0/25

B.121.55.31.0/26

C.121.55.31.128/25

D.121.55.31.128/26

8. 10Mbps的传输速率,每秒钟可以发送( )bit。

A.1×107 B.1×106 C.1×109 D.1×1012

9. 数据包过滤通常安装在( )上。

A.路由器 B.专用的工作站系统 C.局域网网卡 D.以上都不对

10.攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应。这种攻击被称为( )。

欺骗攻击 攻击 C.重放攻击 Floodin9攻击

二、填空题(10题)

11.(8) IEEE 802. 11的MAC层采用的是 ________ 冲突避免方法。

12.(18)在IPSec协议族中,有两个主要的协议,分别是_________ 协议和身份认证头协议。

13.(13) RIP协议用于在网络设备之间交换____信息。

14.源路由选项可以分为两类,一类是严格源路由选项,另一类是___________选项。

15.(19) QQ客户端间进行聊天有两种方式。一种是客户端直接建立连接进行聊天,另一种是用服务器_________的方式实现消息的传送。

16.

17.搜索引擎在外观、功能等方面千差万别,但其构成一般包括搜索器、索引器、和用户接口4个部分。

18. 目前实际存在和使用的广域网基本上都是采用______拓扑结构类型。

19.

20. ______层负责错误的确认和恢复。

三、2.填空题(8题)

21. 网桥完成______间的连接,可以将两个或多个网段连接起来,网桥可以通过过滤不跨网段传输信息,避免了线路的拥塞。

22. IEEE【 】标准定义了CSMA/CD总线介质访问控制子层与物理层规范。

23. 在Internet中,需要使用进行路由选择的设备一般采用______驱动的路由选择算法。

24. 测量CPU处理速度有两种常用单位,其中表示执行浮点指令的平均速度是用【 】。

25. 安腾是______位的芯片。

26. 在引进线程的操作系统中,线程是______的基本单位,而不是独立分配资源的基本单位。

27. 在客户机/服务器工作模式中,客户机可以使用【 】向数据库服务器发送查询命令。

28. 网络操作系统的发展经历了从对等结构向【 】结构演变的过程。

四、C语言程序设计题(2题)

29.在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组xx中。请编制函数CalValue,其功能要求:1.求出该文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后main函数调用函数WriteDat把所求的结果输出到out.dat文件中。

注意:部分源程序存放在test.c文件中。

请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。

30.已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat把这两个文件中的数存入数组a和b中,请考生编制一个函数jsVal,实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat把结果C输出到文件out.dat中。组成新数的条件:如果数组a和b中相同下标位置的数均是奇数,则数组a中十位数字为新数的千位数字,个位数字仍为新数的个位数字,数组b中的十位数字为新数的百位数字,个位数字为新数的

十位数字,这样组成的新数并存入数组c中。

注意:部分源程序存在test.c文件中。

程序中已定义:a[100]、b[100]和c[100]。

请勿改动数据文件IN1.DAT和1N2.DAT中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。

五、1.选择题(3题)

31. 长期以来,网络操作系统的3大传统阵营指的是:Microsoft的WindowsNT、Novell的NetWare和( )。

/2

32. 关于域名系统和域名服务,下列说法不正确的是( )。

et的域名结构是由TCP/IP协议集的域名系统来定义的

B.顶级域的划分采用了两种划分模式:组织模式和地理模式

C.中国互联网信息中心负责管理中国的顶级域

D.域名解析包括两种方式:正向域名解析和反向域名解析

33. 在电子商务中,保证数据传输的安全性就是

A.保证在公共因特网上传送的数据信息不被篡改

B.保证在公共因特网上传送的数据信息不被第三方监视和窃取?

C.保证电子商务交易各方的真实身份

D.? 保证发送方不能抵赖曾经发送过某数据

六、1.程序设计题(3题)

34. 已知数据文件中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数和十位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个十位数必须是一个奇数,另一个为偶数且两个十位数中至少有一个数能被17整除,同时两个新十位数字均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数wfiteDat()把结果cnt及数组b中符合条件的4位数输出到OUT76. DAT文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200], b[200], 己定义变量:cnt。

请勿改动主函数main()、读函数madDat()和写函数writeDat()的内容。

试题程序:

#include<stdio. h>

#define MAX 200

int a[MAX] , b[MAX] , cnt=0;

void jsVal( )

{

}

void readDat ( )

{

int i;

FILE *fp;

fp=fopen ("", "r");

for (i=0; i<MAX; i++)

fscanf (fp, "%d", &a [i] );

fclose (fp);

}

main ( )

{

int i;

readDat ();

jsVal ( );

printf ("满足条件的数=%dn", cnt);

for (i=0; i<cnt; i++)

printf("%d",b[i]);

printf ("n");

writeDat ();

}

writeDat ()

{

FILE *fp;

int i;

fp=fopen ( "OUT7 6. DAT", "w" );

fprintf (fp, "%dn", cnt);

for (i=0; i<cnt; i++)

fprintf(fp, "%dn",b[i]);

fclose (fp);

}

35. 下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例

如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件中。

注意:部分源程序已给出。

请勿改动主函数main()。

#include<stdio.h>

int jsValue(long n)

{

}

main ( )

{

long m;

FILE *out;

out=fopen ("", "w");

for (m=11;m<1000;m++)

{

if(jsValue(m) && jsValue(m*m) && jsValue(m*m*m))

{

printf ("m=%41d, m*m=%61d, m*m*m=%81d", m, m'm, m*m*m);

fprintf (out, "m=%41d, m*m=%61d, m*m*m=%81dn", m, m*m, m*m*m);

}

}

fclose (out);

}

36. 函数ReadDat()的功能是实现从文件中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件中。

替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)

是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。

注意:部分源程序已给出。

原始数据文件存放的格式是:每行的宽度均小于,80个字符。

请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

试题程序:

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <ctype.h>

unsigned char xx[50][80];

int maxline = 0;/* 文章的总行数 */

int ReadDat (void);

void WriteDat(void);

void encryptChar()

{

main ( )

{

clrscr ();

if (ReadDat ())

{

printf ("数据文件不能打开! n007");

return;

}

encryptChar ();

WriteDat ();

}

int ReadDat (void)

{

FILE *fp;

int i = 0;

unsigned char *p;

if((fp = fopen("", "r")) ==NULL) return 1;

while(fgets(xx[i], 80, fp) !=NULL)

{

p = strchr(xx[i], 'n');

if (p) *p = 0;

i++;

}

maxline = i;

fclose (fp);

return 0;

}

void WriteDat(void)

{

FILE *fp;

int i;

fp = fopen("", "w");

for(i = 0; i < maxline; i++)

{

printf("%sn", xx[i]);

fprintf(fp, "%sn", xx[i]);

}

fclose (fp);

}

参考答案

1.C

2.B

3.B如果要保证服务器系统可用性达到99.999%和99.99%,系统的每年的停机时间要小于0.0876小时和0.876小时。5分钟约是0.0833小时,53分钟约是0.883小时。采用估算的方法,两台服务器停机时间之和小于58分钟。故选择B选项。

4.B解析:数字签名作为身份认证技术中的一种具体技术,同时还可用于通信过程中的不可抵赖行为的实现。

5.B6.A

7.C地址聚合是指是把几个小网络合并为一个大网络,主要是通过修改子网位实现(增大)。具体方法是判断这些地址最左边的多少位相同的,需要如下3步。第1步:将地址转换为二进制格式,并将它们对齐第2步:找到所有地址中都相同的最后一位。第3步:计算有多少位是相同的。通过分析题目发现,本题中只有最后一个点位不同,其它3个点位都相同,在进行十进制向二进制转换时,只需计算最后一个点位就行了。

121.55.31.192:121.55.31.11000000 121.55.31.160:121.55.31.10100000 121.55.31.128:121.55.31.10000000得121.55.31.10000000/25,即121.55.31.128/25。故选择C选项。

8.A解析:数据传输速率在数值上等于每秒钟传输构成数据代码的二进制比特数,单位为比特/秒 (bit/second或bit per second),记作b/s或bps。常用的数据传输速率单位有Kbps、Mbps、Gbps。1Kbps=103bps,1Mbps=106bps,1Gbps=109bps。

9.A

rn

数据包过滤技术是在网络层对数据包进行选择。通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等因素,或者它们的组合来确定是否允许数据包通过。通常安装在路由器上。

Floodin9:攻击者利用TCP连接的三次握手过程进行攻击,攻击者主机使用无数的IP地址,与受害主机进行TCP的三次握手,在完

成第二步后,受害主机就会处于开放会话的请求之中,但会话并未真正的完成,受害主机必须等待连接超时,之后才能清除未完成的会话,在此期间,受害主机将会连续接受这种会话请求,最终因耗尽用来管理会话的资源而停止响应。因此,本题的正确答案是D。

/CD 【解析】IEEE 802,11的MAC层采用的是CSMA/CD冲突避免方法,冲突避免要求每个结点在发送帧前先侦听信道。

12.18)封装安全负载或ESP或封装安全负载(ESP)

【解析】在IPSec协议族中,有两个主要的协议,分别是封装安全负载协议和身份认证头协议。

13.(13)路由 【解析】RIP协议是向量-距离路由选择算法在局域网上的直接实现,它规定了路由器之间交换路由信息的时间、交换信息的格式、错误的处理等内容。

14.松散源路由

【解析】源路由选项可以分为两类,一类是严格源路由选项,另一类是松

散源路由选项。

15.(19)转发

【解析】QQ客户端间进行聊天有两种方式。一种是QQ客户端之间直接建立TCP或UDP连接进行聊天交互,另一种是当客户端之间无法直接通信时,采用通过服务器转发的方式来实现即时信息的传送。

16.

17.检索器搜索引擎的原理起源于传统的信息全文检索理论。现在的全文搜索引擎由搜索器、索引器、检索器和用户接口4部分组成。搜索器也称为“蜘蛛”、“机器人”或“爬虫”,它实际上是一个基于Web的程序,主要用于在Internet上自动搜集网页信息。索引器将搜索器在Internet上采集到的信息进行分类并建立索引,然后存放在索引数据库中。检索器的功能是根据用户的查询在索引库中快速地检索出文档,进行文档与查询的相关度评价,对输出的结果进行排序,并实现某种用户相关性反馈机制。用户接口的作用是输入用户查询,显示查询结果,提供用户相关性反馈机制。

18.网状网状 解析:在采用点—点线路的通信子网中,每条物理线路连接一对结点。基本拓扑构型有4种:星形、环形、树形与网状形。网状拓扑的主要优点是系统可靠性高,但是结构复杂,必须采用路由选择算法与流量控制方法。目前实际存在和使用的广域网基本上都是采用网状拓扑构型。

19.

20.传输传输 解析:传输层负责错误的确认和恢复,以确保信息的可靠传递。在必要时,它也对信息重新打包,把过长信息分成小包发送;而在接收端,把这些小包重构成初始的信息。

21.数据链路层数据链路层 解析:网桥完成数据链路层间的连接,可以将两个或多个网段连接起来,可以通过过滤不跨网段传输的信息,避免

了线路的拥塞。

22.802.802. 解析:IEEE 802委员会为局域网制定了一系列标准,统称为IEEE 802标准。这些标准主要是:1、IEEE 802.1标准,它包括局域网体系结构、网络互连,以及网络管理与性能测试;2、IEEE 802.2标准,定义了逻辑链路控制LLC子层功能与服务。3、IEEE 802.3标准,定义了CSMMCD总线介质访问控制子层与物理层规范。4、IEEE 802.4标准,定义了令牌总线(TokenBus)介质访问控制子层与物理层规范。5、IEEE 802.5标准,定义了令牌环(TokenRing)介质访问控制子层与物理层规范。6、IEEE 802.6标准,定义了城域网MAN介质访问控制子层与物理层规范。7、IEEE 802.7标准,定义了宽带技术。8、IEEE 802.8标准,定义了光纤技术。9、IEEE 802.9标准,定义了综合语音与数据局域网IVDLAN技术。10、IEEE 802.10标准,定义了可互操作的局域网安全性规范SILS。11、IEEE 802.11标准,定义了无线局域网技术。

23.表表 解析:需要使用进行路由选择的设备一般是采用表驱动的路由选择算法。每台需要路由选择的设备保存一张IP选路表(路由表),需要传送数据时,通过查询该表决定发送方向。

MFLOPS 解析:CPU处理速度有两种常用单位的表示方法:第一种是每秒钟执行的指令条数来表示。例如每秒执行定点指令的平均数目,单位是MIPS(Million Instruction Per Second)即每秒百分条指令。第二种用于每秒执行浮点指令的平均数日来表示的,单位是MFOPS(Million Floating Onstruction Per Second),即每秒百万条浮点指令。

25.6464 解析:从奔腾到安腾,标志着英特尔体系结构从IA-32向IA-64的推进。奔腾是32位芯片,而安腾是64位芯片。

26.调度分配调度分配 解析:在引入线程的操作系统中,线程是进程中的一个实体,是CPU调度和分派的基本单位。

27.结构化查询语言/SQL结构化查询语言/SQL 解析:在客户机/服务器工作模式中,客户机可以使用结构化查询语言/SQL向数据库服务器发送查询命令,实现数据查询功能。

28.非对等非对等 解析:本题考查点是网络操作系统的发展演变过程。网络操作系统的发展经历了从对等结构向非对等结构演变的过程。对等结构网络操作系统是指安装在每个联网结点上的操作系统软件相同,局域网中所有的联网结点地位平等,从而形成对等局域网。结点之间的资源,包括共享硬盘、共享打印机、共享CPU等都可以在网内共享。对等结构网络操作系统结构简单,但效率不高,仅适用于规模较小的网络系统。 目前,局域网中使用最多的是非对等结构网络操作系统。流行的“服务器/客户机”网络应用模型中使用的网络操作系统就是非对等结构的。非对等结构网络操作系统的思想是将局域网中结点分为网络服务器和网络工作站两类,通常简称为服务器(Server)和工作站(Workstation)。局域网中是否设置专用服务器是对等结构和非对等结构的根本区别。这种非对等结构能实现网络资源的合理配置与利用。

29.【审题关键句】读取正数,统计个数,各位数字之和为偶数的数的个数及平均值。

n【解题思路】

n①定义整型循环变量i、j,表示各位数字之和的长整型变量he以及存储一个四位数的字符数组num[5]。

n②循环变量i从0开始,依次递增到4,对字符数组hum[5]的每个元素赋初值0。

n③循环变量i从0开始,依次递增到MAXNUM.1,对每个数组元素xx[i]进行判断,如果xx[i]的值非零,则变量totNum加1,退出循环时,totNum的值就是文件in.dat中存有的四位正整数的个数。

n④循环变量i从0开始,依次递增到totNum-1,对于每个数组元素xx[i]调用库函数sprintf以4个字符宽度形式输出到字符数组num中,用字符数组num中的每个元素减去0的ASCII码48,就分别得到xx[i]这个四位数每位上的数字,并把这四个数字相加赋给变量j。再对变量j对2求余数进行判断其值是否等于0,如果等于0,则说明j是偶数,变量totCnt加1,并把xx[i]的值累加到变量he。

n⑤退出循环后,把变量he的类型转换成双精度型再除以totCnt得到符合条件的数的算术平均值totPjz。

n【参考答案】

n

30.【审题关键句】数组相同下标位置上的奇数,数组a中十位数等于新数的千位数字,个位等于新数个位数字,数组b中的十位等于新数的百位数字,个位数字等于新数的十位数字,存入数组,从小到大排序。

n【解题思路】

n④定义整型循环变量i、j和局部变量tmp。

n②在for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于MAX,用if条件语句判断如果a[i]和b[i]同时为奇数,由a[i]的十位数字为新数的千位数字,个位数字为新数的个位数字,b[i]的十位数字为新数的百位数字,个位数字为新数的十位数字,把这个新组成的数存入数组元素c[cn],同时数组下标变量cn加1。

n③在第一层for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于cnt,在第二层循环中,循环变量j从 i+1开始,依次递增直到其值等于cnt,用if条件语句判断如果数组元素c[i]大于c[j],则两者进行互换,实现数组C中的数按从小到大的顺序进行排序。

n【参考答案】

n

31.A解析:通常认定的网络操作系统3大阵营指的是:Microsoft的windows NT、Novell的NetWare和UNIX。Linux是后来出现的,被看作是UNIX的衍生品种。

32.D解析:因特网的域名结构由TCP/IP协议集中的域名系统进行定义;顶级域的划分采用了两种划分模式,即组织模式和地理模式,前7个域对应于组织模式,其余的域对应于地理模式;顶级域名cn由中国互联网中心CNNIC管理,它将cn域划分成多个子域;域名解析可以有两种方式,第一种叫递归解析,要求名字服务器系统一次性完成全部名字-地址变换,第二种叫反复解析。

33.B解析:本题考查点是电子商务中的数据传输安全性。保障数据信息的安全性是电子商务应用中的关键技术。电子商务的安全要求包括4方

面。①数据传输的安全性——保证在公共因特网上传送的数据信息不被第三方监视和窃取通常采用数据加密技术,如数字信封技术。②数据的完整性——保证在公共因特网上传送的数据信息不被篡改。通常采用安全散列函数和数字签名技术等。③身份认证——保证电子商务交易各方的真实身份。通常采用口令认证、数字证书、数字签名技术等。④交易的不可抵赖——保证发送方不能抵赖曾经发送过某数据,通常采用数字证书、数字签名技术等。综上所述,选项B正确。

jsVal ( ) { int i thou hun ten data j; int abcd; for(i=0;i<200;i++)

{ thou=a [i]/1000; /*求四位数的千位数字*/ hun=a [i]%1000/100; /*求四位数的百位数字*/ ten=a [i]%100/10; /*求四位数的十位数字*/ dst a=a

[i] %10; /*求四位数的个位数字*/ ab=data*10+thou; /*把个位数和千位数组合成一个新的十位数ab*/ cd=hun*10+ten; /*把百位数和十位数组成另一个新的十位数cd*/ if( (ab%17==0 ||cd%17==0 &&((ab%2!=l

&&cd%2==1) || (ab%2==1 &&cd%2 !=1) ) &&ab !=0 && cd !=0 ) { /*如果新组成的两个十位数必须是一个奇数另一个为偶数且两个十位数中 至少有一个数能被17整除同时两个新十位数字均不为0*/ b[cnt]=a[i]; /*则将满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } }

for (i=0; i<cnt-1; i++) /*将数组b中的数按从大到小的顺序排列*/ for

(j=i+l; j<cnt; j++) if(b[i]<b[j]) { data=b [i]; b[i]=b[j]; b [j] =data; } }void

jsVal ( )rn {rn int i, thou, hun, ten, data, j;rn int ab,cd;rn for(i=0;i<200;i++)rn {rn thou=a [i]/1000; /*求四位数的千位数字*/rn hun=a

[i]%1000/100; /*求四位数的百位数字*/rn ten=a [i]%100/10; /*求四位数

的十位数字*/rn dst a=a [i] %10; /*求四位数的个位数字*/rn

ab=data*10+thou; /*把个位数和千位数组合成一个新的十位数ab*/rn

cd=hun*10+ten; /*把百位数和十位数组成另一个新的十位数cd*/rn

if( (ab%17==0 ||cd%17==0 &&((ab%2!=l &&cd%2==1) || (ab%2==1rn

&&cd%2 !=1) ) &&ab !=0 && cd !=0 )rn { /*如果新组成的两个十位数必须是一个奇数,另一个为偶数且两个十位数中rn 至少有一个数能被17整除,同时两个新十位数字均不为0*/rn b[cnt]=a[i]; /*则将满足条件的数存入数组b中*/rn cnt++; /*统计满足条件的数的个数*/rn }rn }rn for (i=0; i<cnt-1; i++) /*将数组b中的数按从大到小的顺序排列*/rn for (j=i+l; j<cnt; j++)rn if(b[i]<b[j])rn {rn data=b [i];rn

b[i]=b[j];rn b [j] =data;rn }rn } 解析:本题考查的知识点如下:

(1)将一个4位整数各位上的数转变成单独的个位数。

(2)判断结构中多个条件的布尔运算。

(3)循环的使用。

(4)数据的排序。

在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%” (取余)和“/” (整除)。将—个4位数整除1000则可得到其千位—卜的数字,除以1000取余再整除 100则可得百位。上的数字,除以100取余再整除10则可得十位卜的数字,除以10取余则得个位上的数字。若一个数除以2取余为0,则这个数是偶数,否则为奇数。两个数必须一个为奇数,另一个为偶数,这就有两种情况;ad为奇数,cd为偶数;或者ab为偶数,cd为奇数。两者满足一种即可,所以这两种情况间用“或”运算。两个数中至少有1个能被17整

除,ab能被17整除与cd能被17整除两个条件满足一个即可,所以这两个条件之间用“或”运算。但这个条件与其他条件必须同时满足,所以此条件与其他条件之间用“与”运算。先将满足条件的数存入数组b中,再对数组中的数据进行排序。最后的排序采用“选择排序法”。

jsValue(long n) { int i strlhalf; char xy[20]; ltoa (nxy 10); /*将长整数n转换成与其等价的字符串存入xy指向的字符串中输出串为十进制*/

strl=strlen(xy); /*求字符串的长度*/ half=strl/2; for (i=0; i<half; i++)

if(xy[i] !=xy[--strl]) break; /*判断字符串是否左右对称*/ if(i>=half)

return 1; /*如果字符串是回文则返回1*/ else return O; /*否则返回0*/ }int

jsValue(long n)rn { int i, strl,half;rn char xy[20];rn ltoa (n,xy, 10); /*将长整数n转换成与其等价的字符串存入xy指向的字符串中,输出串为十进制*/rn strl=strlen(xy); /*求字符串的长度*/rn half=strl/2;rn for (i=0; i<half; i++)rn if(xy[i] !=xy[--strl]) break; /*判断字符串是否左右对称*/rn if(i>=half) return 1; /*如果字符串是回文,则返回1*/rn else return

O; /*否则返回0*/rn } 解析:本题考查的知识点如下:

(1)将整型变量转换成字符串。

(2)字符串长度的确定和循环的使用。

(3)字符串是否对称的判断。

回文数是指其各位数字左右均对称的整数,因为给出的数的位数不确定,所以不采用将各位上的数字转变成单独的数再比较的方法。这里使用函数char*ltoa(long num,char*str,int radix),其功能是将长整数num转换成与其等价的字符串存入str指向的字符串中,输出串的进制由radix决

定。将整数转变成字符串后,判断字符串是否左右对称。求得字符串长度后设置两个变量,一个从字符串的头开始向后移动,一个从字符串的倒数第一个元素开始向前移动,直到移至数组的中间元素。若两者所决定的数组元素均相等,则字符串左右对称。

encryptChar() { int i; char *pf; for (i=O; i<maxline; i++) { pf=xx [i];

/*指针pf指向各行的首地址*/ while (*pf !=0) { if(*pf*11%256>130 ||

*pf*11%256<=32); /*如果广计算后的值小于等于32或大于130*/ /*则该字符不变*/ else *pf=*pf*11%256; /* 否则将所对应的字符进行替代* /

pf++; /*指针pf指向下一个字符*/ } } }void encryptChar()rn {rn int i;rn

char *pf;rn for (i=O; i<maxline; i++)rn {rn pf=xx [i]; /*指针pf指向各行的首地址*/rn while (*pf !=0)rn {rn if(*pf*11%256>130 ||

*pf*11%256<=32);rn /*如果广计算后的值小于等于32或大于130*/rn

/*则该字符不变*/rn elsern *pf=*pf*11%256; /* 否则将所对应的字符进行替代* /rn pf++; /*指针pf指向下一个字符*/rn }rn }rn } 解析:本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行,当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它进行条件判断。根据题意,条件用“if(*pf*11%256>130||*pf*11%256<=32)”语句米实现,如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前的字符乘以11的结果再去与256求余数。处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一

个字符,对下一个字符进行处理。

本文标签: 进行数组信息数字数据