【2023年】四川省资阳市全国计算机等级考试网络技术模拟考试(含答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【2023年】四川省资阳市全国计算机等级考试网络技术模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(10题)
1.下列关于局域网设备的描述中,错误的是()。

A.中继器只能起到对传输介质上信号波形的接收、放大、整形与转发的作用
B.连接到一个集线器的所有节点共享一个冲突域
C.透明网桥一般用在两个MAC层协议相同的网段之间的互联
D.二层交换机维护一个表示MAC地址与IP地址对应关系的交换表
2.以下关于P2P的描述,错误的是()。

A.P2P,顾名思义就是PC对PC传输
B.BT下载就是一种P2P技术
C.P2P技术可以开发出强大的搜索工具
D.P2P就是对等网
3.关于以太网交换机的帧转发方式的说法,不正确的是()。

A.直接交换方式中帧出错检测由结点主机完成
B.存储转发方式具有帧差错检测能力
C.交换延迟时间最长的是存储转发方式
D.改进的直接交换方式只对长帧的地址字段进行差错控制
4.以下哪个不是网络商务信息的特点()。

A.收益大
B.便于存储
C.时效性强
D.准确性高
5.下列关于OSPF协议的描述中,错误的是()。

A.每一个OSPF区域拥有一个32位的区域标识符
B.OSPF区域内每个路由器的链路状态数据库包含着全网的拓扑结构信息
C.OSPF协议要求当链路状态发生变化时用洪泛法发送此信息
D.距离、延时、带宽都可以作为OSPF协议链路状态度量
6.在建筑群布线子系统可采用的四种铺设方式中,对线缆保护最有利和最不利的方式分别是()。

A.巷道布线和架空布线
B.管道内布线和架空布线
C.巷道布线和直埋布线
D.管道内布线和直埋布线
7.类信息是有极高使用价值的专用信息,如重要的市场走向分析、网络畅销商品的情况调查、新产品新技术信息、专利技术以及其它独特的专门性的信息等,是信息库中成本费用最高的一类信息()。

A.标准收费信息
B.优质优价信息
C.低收费信息
D.免费信息
8.下列关于C类IP地址的说法中,正确的是()。

A.在一个网络中理论上最多连接256台设备
B.此类IP地址则保留为今后使用
C.可用于中型规模的网络
D.此类IP地址用于广播地址发送
9.下列关于路由器技术指标的描述中,错误的是()
A.路由器的包转发能力与端口数量、端口速率、包长度和包类型有关
B.高性能路由器一般采用共享背板的结构
C.丢包率是衡量路由器超负荷工作的性能指标之一
D.路由器的服务质量主要表现在队列管理机制与支持的QoS协议类型上
10. 计算机网络几种典型的拓扑结构中,______有一个中心结点控制着全网的结点进行通信,任何两结点之间的通信都要通过中心结点。

A.星型拓扑B.环型拓扑C.树型拓扑D.总线拓扑
二、填空题(10题)
11. 防火墙是指设置在不同网络或______之间的一系列部件的组合。

12.息摘要。

(19)目前,即时通信系统通用的协议主要有SIMPLE协议集和______两个代表。

13. 在网络管理中,一般采用管理者-代理的管理模型,其中代理位于【】的内部。

14. 网络系统分层设汁的另一个好处是可以方便地分配与规划带宽,有利于均衡负荷,提高网络效率。

经验数据是:层次之问的上联带宽与下一级带宽之比一般控制在1:_________ 。

15. 无线传输有着显而易见的诸多优点,目前已广泛应用于通信领域,其中最常见的无线信道有微波、红外线和【】。

16.
第80 题在数据传输系统中,表示二进制码元传输出出错概率的参数是___________。

17. 接人Internet通常采用两种方法:①通过【】直接与ISP连接,
②连接已接入Internet的局域网。

18.在传输数字信号时,为了便于传输,减少干扰和易于放大,在发送端需要将发送的数字信号变换成为模拟信号,这种变换过程称为【ll】。

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

20.(19)组播路由协议可分为域内组播路由协议和域间组播协议两大类。

其中,域内组播协议又分为两种模式:________模式和稀疏模式。

三、2.填空题(8题)
21. 网络操作系统的缩写是______。

22. 千兆位每个比特的发送时间为【】。

23. 在因特网中,文件传输服务采用的工作模式为【】模式。

24. 安腾是______位的芯片。

25. 典型的以太网交换机允许一部分端口支持10BASE-T,另一部分端口支持100BASE-T。

在采用了【】技术时,交换机端口可以同时支持10Mbps/100Mbps。

26. 如果用户通过ADSL接人技术连接到Internet,其上行传输速率可达到1Mbps,下行传输速率可达到【】。

27. 因特网中需要进行路由选择的设备使用______的路由选择算法。

28. 下一代互联网的互联层使用的协议为IPv______。

四、C语言程序设计题(2题)
29.已知数据文件in.dat中存有200个四位数,并已调用读函数readDat 把这些数存入数组a中,请考生编制一函数jsVal,其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat把结果cnt以及数组b中符合条件的四位数输出到out.dat文件中。

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

程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件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]。

请勿改动数据文件lN1.DAT和IN2.DA T中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。

五、1.选择题(3题)
31. 关于HTML ,描述正确的是( )。

A.该语言用于建立超文本链接
B.HTTP文档本身包含多媒体数据
C.用来给网页命名,网页名称会显示在浏览器窗口的标题栏上
D.以上都不正确
32. EDI用户通常采用哪种平台完成数据交换?( )
A.专用的EDI交换平台
B.通用的电子邮件交换平台
C.专用的虚拟局域网交换平台
D.通用的电话交换平台
33. Ethernet物理地址长度为48位,允许分配的物理地址应该为______。

A.245个
B.246个
C.247个
D.248个
六、1.程序设计题(3题)
34. 已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT53.DAT中。

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

试题程序:
#include<stdio.h>
#define MAX 200
int a[MAX],b[MAX],cnt=0;
void jsVal()
{
}
void readDat() {
{
int i;
FILE *fp;
fp=fopen("in53.dat","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf ("满足条件的数=%d\n", cnt);
for(i=0;i<cnt;i++)
printf("%d",b[i]);
printf("\n");
writeDat();
}
writeDat()
{
FILE *fp;
int i;
fp=foPen("out53.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp,"%d\n",b[i]);
fclose(fp);
}
35. 下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组
xx。

请编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数read write DAT()把结果输出到out31.dat文件中。

例如,若输入17,5,则应输出19,23,29,31,37。

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

请勿改动主函数main()和输入输出函数read write DAT()的内容。

试题程序:
#include < conio.h>
#include
V oid readwriteDAT();
V oid num(int m,int k,,int XX[])
{
}
main()
{
int m,n,xx[1000];
Clrscr();
printf(“\nPlease enter tWO integers:”)
‘scanf(“%d,%d”,&m,&n);
num(m, n, XX);
for(m=0;m<n;m++)
printf(“%d”, XX[m]);
printf(”\n”);
readwriteDAT();
)
VOid read write DAT()
{
int m,n,xx[1000],i;
FILE *rf.,*Wf;
rf=fopen(“in31.Dat”,r”);
Wffopen(“ou1t31.Dat”/”w”);。

for(i=0;i<10;i++)
{
fscanf(rf,%d,” %d”,&m,&n);
num(m,n,XX);
for(m=0;m fprintf(wf,%d”,xx[m]);
fprintf (wf, “\n”);
}
fclose(rf);
fclose (wf);
}
36. 已知数据文件IN76.DAT中存有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 ("IN76.DAT", "r");
for (i=0; i<MAX; i++)
fscanf (fp, "%d", &a [i] );
fclose (fp);
}
main ( )
{
int i;
readDat ();
jsVal ( );
printf ("满足条件的数=%d\n", 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, "%d\n", cnt);
for (i=0; i<cnt; i++)
fprintf(fp, "%d\n",b[i]);
fclose (fp);
}
参考答案
1.D交换机的基本功能是建立和维护一个表示MAc地址与交换机端口对应关系的交换表,而不是MAC和IP地址对应关系的交换表,因此D 选项错误。

2.A选项A)和选项D),P2P是Peer to Peer的简称,可以理解为端对端,或称对等网;选项B),BT下载通过BT服务器上的种子文件定位资源后,下载者将直接与文件提供者建立连接并下载,是一种P2P技术;选项C),P2P技术可以开发出强大的搜索工具。

3.D
改进的直接交换方式结合了直接交换方式和存储转发方式的优点,改进的直接交换方式对长帧的地址字段和控制字段都进行了差错检测。

4.A
5.B0SPF区域内每个路由器的链路状态包含着本区域而不是全网的拓扑结构信息。

每一个OSPF区域拥有一个32位的区域标识符,在一个区域内的路由器数不超过200。

OSPF协议要求当链路发生变化时用洪泛法向所有路由器发送此信息。

链路状态'度量'主要是指费用、距离、延时、带宽等,综上所述B项错。

6.D管道布线法:是由管道和入孔组成的地下系统,用来对网络内的各建筑物进行互联。

由于管道是由耐腐蚀材料做成的,所以这种方法对电缆提供了最好的机械保护,使电缆受到维修的机会减到最小程度。

直埋布线法:该方法除了穿过基础墙部分电缆外,电缆的其余部分都没有管道保护,容易受到破坏。

巷道布线法:利用建筑物之间的地下巷道铺设
电缆,不仅造价低而且还可以利用原有的安全设施给线缆提供保护。

由于地下巷道存在热水管道,因此可能会把电缆烫伤。

架空布线法:利用原有的电线杆布线,这种布线方法成本较低,但是保密性、安全性和灵活性较差。

故选择D选项。

7.B
8.A
9.B
10.A解析:星型结构的所有结点都连接到一个中心结点上。

该中心结点通常是一台集线器(HuB),结点之间发送和接收的数据都需经过该中心结点。

星型拓扑结构简单,容易组建,便于管理,但是网络的中心结点的可靠性是全网可靠性的关键所在,中心结点的故障可能造成整个网络中断。

环型拓扑、树型拓扑和总线拓扑都没行这样一个中心结点。

,结点之间发送和接收的数据都需经过该中心节点。

星型拓扑结构简单,容易组建,便于管理,但是网络的中心结点的可靠性是全网可靠性的关键所在,中心结点的故障可能造成整个网络中断。

环型拓扑、树型拓扑和总线拓扑都没有这样一个中心结点。

11.网络安全域网络安全域解析:防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合。

12.(19) XMPP协议集【解析】目前,即时通信系统通用的协议主要有SIMPLE协议集和XMPP 协议集两个代表。

13.被管理设备被管理设备解析:在网络管理中,一般采用管理者-代理的管理模型。

管理者与代理之间通过网络实现管理信息的交换、控制、协调和监视网络资源,完成网络管理。

其中,管理者是运行在计算机操作系统之上的一组程序,从代理处收集管理信息,进行处理;代理位于被管
理设备的内部,把来自管理者的命令或信息请求转换为本设备特有的指令,完成管理者的指示,或是返回他所在设备的信息。

14.
15.激光激光解析:微波、红外线和激光是最常见的无线信道。

16.误码率
【解析】误码率是指二进制码元在数据传输系统中被传错的概率,它在数值上近似等于:Pe=Ne/N,其中N为传输的二进制码元总数,Ne为被传错的码元数。

17.电话线路电话线路解析:接人Internet通常采用两种方法:通过电话线路直接与ISP连接和连接已接入Internet的局域网。

通过电话线路到ISP的服务器与Internet相连,是一般家庭上网常用的方法,通过连接已接入Internet的局域网接人,则是公司或学校等经常采用的方法。

18.调制计算机发出的数字信号,有时需要将其转换成模拟信号。

如个人计算机以拨号方式接入Internet网,或者为了便于传输.减少干扰和易于放大.数字信号必须转换成模拟信号,这种变换过程称为调制。

这种转换需要使用调制解调器。

接收方的计算机则需要将传输过来的模拟信号转换成数字信号,这种变换过程称为解调,也需要通过调制解调器。

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

20.(19)密集【解析】组播路由协议可分为域内组播路由协议和域间组播协议两大类,域内组播协议又分为两种模式:密集模式和稀疏模式。

21.NOSNOS 解析:网络操作系统缩写是NOS,即Network Operating
System。

22.1ns1ns 解析:千兆位以太网的传输速率达到1Gbps,但仍保留着10Mbps速率以太网的的数据帧格式、介质访问控制方法和组网方法。

千兆位以太网将每个比特的发送时间降低到1ns。

除此之外,还采用光纤或短矩离双绞线作为传输介质,并定义了一种千兆位媒体专用接口GMII(Gigabit Media Independent Interface),它将MAC子层与物理层分隔开来。

23.客户机/服务器或C/S客户机/服务器或C/S 解析:在因特网中,文件传输服务(FTP)也采用了客户机朋艮务器模式。

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

奔腾是32位芯片,而安腾是64位芯片。

25.自动检测自动检测解析:本题考查点是典型的以太网交换机。

在典型的以太网交换机中,一部分端口支持10BASE-T,另一部分端口支持100BASE-T。

如果采用了10Mbps/100Mbps自动检测技术,则交换机端口可以根据端口上所连设备的传输速率而调整,实现在同一个局域网中支持10Mbps/100Mbps的主机。

26.8Mbps8Mbps 解析:用户可以通过ADSL接人技术连接到Internet。

ADSL技术使用一对电话铜线,上行速度可达1Mhps,下行速度可达8Mbps,最大连接距离可达5.5km。

27.表驱动表驱动解析:每台需要路由选择的设备中保留一张IP选路由表。

28.66 解析:现在的互联网是在IPv4协议的基础上运行。

IPv6是下一版
本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。

为了扩大地址空间,拟通过IPv6重新定义地址空间。

29. 【审题关键句】大于后连续5个数,奇数,从小到大排序。

\n【解题思路】本题类似第35套试题,通过审题可以发现主要有两个不同点:①判断数值为奇数,可通过a[i]%2进行判断,参考答案的第4条语句;②要求进行比较的元素大于后连续5个数,因此在设置判断条件时,作为比较的两个数之间应该是大于关系,参考答案的第4条语句。

\n【参考答案】
\n
30.【审题关键句】数组相同下标位置上的奇数和偶数,二进制数左移八位,对应数组元素相加,保存到新数组,从小到大排序。

\n【解题思路】
\n①定义循环变量i、j和无符号整型变量v。

\n②在for循环语句中,循环变量i从0开始,依次递增直到其值等于MAX。

在循环体中,用if语句判断如果a[i]是奇数且b[i]是偶数或者a[i]是偶数且b[i]是奇数,则把a[i]左移八位后与b[i]的和赋给c[cnt],同时cnt加1。

\n③在第一层for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于cnt。

在第二层for循环语句中,循环变量j从i+1开始,依次递增直到其值等于或大于cnt。

在循环体中,用if语句判断如果c[i]大
于c[j],则两者互换,实现数组C中元素从小到大的排序。

\n【参考答案】
\n
31.A解析:HTML是一种超文本标记语言,主要特点是可以包含指向其他文档的链接项,即建立超级链接。

HTTP文档本身并不包含多媒体数据,它仅含有指向这些多媒体数据的链接项。

32.A解析:建立EDI用户之间数据交换关系,通常是EDI用户之间采用专用EDI平台进行数据交换。

33.C解析:Ethernet的物理地址长度为48位(6个字节),理论上存在的物理地址有248个,但是第32位为组播标识位,必须为0,因此允许分配的物理地址为247个。

34.void jsVal() { int ijflag; for (i=5; i<MAX; i++) { for(j=i-5;j<i;j++) { if(a[i]>a[j]) /*如果该4位数连续大于它以前的5个数*/ flag=l; /*则置flag为1*/ else flag=0; /*否则置flag为0*/ if (a[i]%2!=0) /*如果该四位数为奇数*/ flag=0; /*则置flag为0*/ if (flag==O) break; /*如果flag为0 则退出循环*/ } if (flag==1) { 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] ) { flag=b[i]; b[i]=b[j]; b[j]=flag; } }void jsVal()\r\n { int i,j,flag;\r\n for (i=5; i<MAX; i++)\r\n {\r\n for(j=i-5;j<i;j++)\r\n {\r\n if(a[i]>a[j]) /*如果
该4位数连续大于它以前的5个数*/\r\n flag=l; /*则置flag为1*/\r\n else flag=0; /*否则置flag为0*/\r\n if (a[i]%2!=0) /*如果该四位数为奇数*/\r\n flag=0; /*则置flag为0*/\r\n if (flag==O)\r\n break; /*如果flag为0, 则退
出循环*/\r\n }\r\n if (flag==1)\r\n { b[cnt] =a[i]; /*把满足条件的数存入数组b中*/\r\n cnt++; /*统计满足条件的数的个数*/\r\n }\r\n }\r\n for (i=0; i <cnt-1; i++) /*将数组b中的数按从大到波折顺序排列*/\r\n for ( j =i+l; j <cnt; j ++)\r\n if(b[i]<b[j] )\r\n { flag=b[i];\r\n b[i]=b[j];\r\n b[j]=flag;\r\n }\r\n } 解析:本题考查的知识点如下:
(1)使用循环对数组的元素进行比较和排序。

(2)强行退出循环结构。

在本题中,数组b中的数据要满足的条件有两个。

在这里,不再使用判断结构中条件的布尔运算,而采用一种新的方法——设置标志变量flag。

当数据不满足某一条件时,如数据不是偶数,将flag设置为0:当flag 等于0时,可直接退出本层循环结构,进入外层的循环中。

否则,根据题意要求,将数据存入数组b中。

对数组b中的数据排序,使用“选择排序法”。

35.void num(int mint kint xxl)) { int data=m+l; /*从大于整数m的数开始找*/ int halfIn=0;while(1) { half=data/2; for(I=2;I<=half;I++) /*如果该数依次除以从2到一半的整数余数都不是0 则该数是素数*/ if(]if(data%I==O) break;/*如果余数为0则退循环取下一个数判断*/ if(I >half) { xx[n]=data;n++; /*判断该数为素数后将该数存入数组xx中并累计素数的个数*/ } if(n>=k) break;/*如果累计素数的个数超过了要求的个数则退出循环*/ data++; /*如果累计素数的个数小于要求的个数则继续取下一个数*/ } }void num(int m,int k,int xxl))\r\n {\r\n int data=m+l; /*从大于整数m的数开始找*/\r\n int half,I,n=0;\r\n while(1)\r\n {\r\n
half=data/2;\r\n for(I=2;I<=half;I++) /*如果该数依次除以从2到一半的整数,余数都不是0,\r\n 则该数是素数*/\r\n \r\n if(]if(data%I==O) break;/*如果余数为0,则退循环,取下一个数判断*/\r\n if(I>half)\r\n { \r\n xx[n]=data;n++; /*判断该数为素数后,将该数存入数组xx中,并累计素数的个数*/\r\n } \r\n if(n>=k) break;/*如果累计素数的个数超过了要求的个数,则退出循环*/\r\n data++; /*如果累计素数的个数小于要求的个数,则继续取下一个数*/\r\n }\r\n } 解析:本题考查的知识点如下:
(1)循环结构与选择结构的嵌套使用。

(2)强行退出循环结构。

(3)特殊运算符'%'的使用。

素数是除了1和它本身之外不能被其他数整除的数(1除外)。

在本题中,首先要结合相关数学知识找出判定一个数是否为素数的方法,从而对数据进行筛选。

如果数据a依次除以从2到a/2的整数,余数都不是0,则该数是素数。

因为所给的数据是连续的数,而且最终所求的数据的个数一定,所以这里可以使用循环结构对数据依次筛选。

同时嵌套选择结构对筛选的数据进行不同的处理。

在a依次除以从2到a/2的整数的过程中,只要有一次余数为0,则可退出这一层循环,即退出整除取余的循环,进入下一个数的判断中。

36.void 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 ( )\r\n {\r\n int i, thou, hun, ten, data, j;\r\n int ab,cd;\r\n for(i=0;i<200;i++)\r\n {\r\n thou=a [i]/1000; /*求四位数的千位数字*/\r\n hun=a [i]%1000/100; /*求四位数的百位数字*/\r\n ten=a [i]%100/10; /*求四位数的十位数字*/\r\n dst a=a [i] %10; /*求四位数的个位数字*/\r\n ab=data*10+thou; /*把个位数和千位数组合成一个新的十位数ab*/\r\n cd=hun*10+ten; /*把百位数和十位数组成另一个新的十位数cd*/\r\n
if( (ab%17==0 ||cd%17==0 &&((ab%2!=l &&cd%2==1) || (ab%2==1\r\n &&cd%2 !=1) ) &&ab !=0 && cd !=0 )\r\n { /*如果新组成的两个十位数
必须是一个奇数,另一个为偶数且两个十位数中\r\n 至少有一个数能被17整除,同时两个新十位数字均不为0*/\r\n b[cnt]=a[i]; /*则将满足条件的数存入数组b中*/\r\n cnt++; /*统计满足条件的数的个数*/\r\n }\r\n }\r\n for (i=0; i<cnt-1; i++) /*将数组b中的数按从大到小的顺序排列*/\r\n for (j=i+l; j<cnt; j++)\r\n if(b[i]<b[j])\r\n {\r\n data=b [i];\r\n b[i]=b[j];\r\n b [j] =data;\r\n }\r\n } 解析:本题考查的知识点如下:(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中,再对数组中的数据进行排序。

最后的排序采用“选择排序法”。

相关文档
最新文档