2021年陕西省西安市全国计算机等级考试网络技术预测试题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2021年陕西省西安市全国计算机等级考试网络技术预测试题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(10题)
1.在公用密钥数字签名技术中,使用单向散列函数生成信息摘要的目的的是()
A.防止交易者抵赖
B.防止信息被篡改或伪造
C.为了便于解密明文
D.给接收方传递密钥
2.下列关于Windows Server 2003系统下DHCP服务器“排除”和“保留”的描述中,错误的是()。
A.排除地址是作用域地址范围内一个或一组连续IP地址
B.不添加排除和保留,服务器也可将地址池内的IP地址动态分配给D}ICP客户机
C.添加排除时必须输入起始IP地址和结束IP地址
D.添加保留需获得DHCP客户机的MAC地址
3.
4.下列关于路由器技术的描述中,错误的是()
A.吞吐量是指路由器的包转发能力
B.高性能路由器一般采用交换式结构
C.语音视频业务对路由器延时抖动要求不高
D.路由器的冗余是为了保证设备的可靠性与可用性
5.Winmail邮件服务器管理工具提供的设置选项中不包含()。
A.邮件管理
B.用户和组设置
C.系统设置
D.域名设置
6.cisco路由器执行show access—list命令显示如下一组控制列表信息Standard IP access list 30 denv 127.0.0.0.wildcard bits 0.255.255.255 denv 172.16.0.0.wildcard bits 0.15.255.255 permit any 根据上述信息,正确的access-list配置是()。
A.Router(config)#access—list 30 deny 127.0.0.0 255.255.255.0 Router(config、)#aceess—list 30 deny 172.16.0.0 255.240.0.0 Router(config)#aceess—list 30 permit any
B.Router(config—std—nacl)#access—list 30 deny 127.0.0.0 0.255.255.255 Router(config.std—nael)#access—list 30 deny 172.16.0.0 0.15.255.255 Router(config.std—nacl)#access—list 30 permit any
C.Router(config)#access-list 30 deny 127.0.0.0 0.255.255.255 Router((config)#aecess—list 30 deny 172.16.0.0 0.15.255.255 Router(config)#access—list 30 permit any
D.Router(eonfig)#access—list 30 deny 127.0.0.0 0.255.255.255
Router(eonfig)#access—list 30 permit any Router(config)#access-list 30 deny 172.16.0.0 0.15.255.255
7.PKI是利用什么标识密钥持有人的身份()。
A.数字证书
B.数字签名
C.SID
D.用户名和密码
8.
9.下列关于Skype特点,错误的是( )。
A.高清晰音质
B.高度保密性
C.免费多方通话
D.不具各跨平台性
10.下列关于路由器技术特征的描述中,正确的是()。
A.路由器的端口吞吐量是由端口数决定的
B.路由器的整机吞吐量是指路由器的路由表容量决定的
C.语音、视频业务对延时抖动要求较高
D.突发处理能力是以最小帧间隔值来衡量的
二、填空题(10题)
11. IP地址采用层次结构,按照逻辑结构划分为两个部分:__________和主机号。
12.(5)Telnet协议属于TCP/IP的________层协议。
13.
14.(18)数字签名是笔迹签名的模拟,用于确认发送者身份,是一个________ 的消息摘要。
15.
16.
17.
18.
19.(9)早期的网络操作系统经历了由_______结构向非对等结构的过渡。
20.
三、2.填空题(8题)
21. ______层负责错误的确认和恢复。
22. 简单网络管理协议SNMP位于IS0 OSI网络体系结构参考模型的______层,它遵循ISO的管理者—代理网络管理模型。
23. UNIX系统结构由两部分组成:一部分是内核,另一部分是______。
24. 因特网中主机域名需要转换成IP地址,这个过程称之为【】。
25. 局域网从介质访问控制方法的角度可以分为两类:争用式局域网与【】局域网。
26. 典型的以太网交换机允许一部分端口支持10BASE-T,另一部分端口支持100BASE-T。
在采用了【】技术时,交换机端口可以同时支持10Mbps/100Mbps。
27. 按照Client/Server_工作模式开发出的客户端与服务器端数据库应用程序,客户端可以用______向数据库服务器发送查询请求。
28. 在通信技术中,通信信道有点—点通信信道和【】通信信道两类。
四、C语言程序设计题(2题)
29.已知数据文件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的内容。
30.已知数据文件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的内容。
五、1.选择题(3题)
31. 下面哪种业务属于IPTV通信类服务?( )
A.视频点播
B.即时通信
C.时移电视
D.直播电视
32. 以下对网络安全管理的描述中,正确的是______。
A.安全管理不需要对重要网络资源的访问进行监视
B.安全管理不需要验证用户的访问权限和优先级
C.安全管理的操作依赖于设备的类型
D.安全管理的目标是保证重要的信息不被未授权的用户访问
33. 广播式网络中.一个结点广播信息,其他结点都可以“听到”该信息,但其他结点是否接收该信息,取决于______。
A.信息中目的地址是否与本机地址相同
B.信息中源地址是否是与本机地址相同
C.一个结点是否处于可接收状态
D.一个结点是否有专用通信信道
六、1.程序设计题(3题)
34. 已知在文件IN42.DAT中存有N个实数(N<200),函数ReadDat()读取这N个实数并存入数组xx中。
请编制程序Ca1Value(),其功能要求:
(1)求出这N个实数的平均值aver。
(2)分别求出这N个实数的整数部分值之和sumint及其小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT42.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
#include<conio.h>
#define MAXNUM 200
float xx[MAXNUM];
int N=0;
double aver=0.0;
double sumint=0.0;
double sumdec=0.0;
int ReadDat( );
void WriteDat( );
void CalValue( )
{
}
void main ( )
{
clrscr ( );
if (ReadDat ( ) )
{
printf ("数据文件IN42.DAT不能打开! \007\n");
return;
}
CalValue ( );
printf ("文件IN42.DAT中共有实数%d个\n", N);
printf ("平均值=%.21f\n", aver);
printf ("整数部分之和=%.21f\n", sumint);
printf ("小数部分之和=%.21f\n", sumdec);
WriteDat ( );
}
int ReadDat ()
{
FILE *fp;
int j;
if((fp=fopen("in42.dat","r"))==NULL)
return 1;
while (! feof (fp))
{
fscanf (fp, "%f", &xx [N]);
if (xx[N] >0.001) N++;
}
fclose (fp);
return 0;
}
void WriteDat()
{
FILE *fp;
fp=fopen ( "OUT42.DAT", "w");
fprintf (fp, "%dkn%.21f\n%.21f\n%.21f\n", N, aver, sumint, sumdec);
fclose (fp);
}
35. 已知数据文件IN77.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果一个4位数的干位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计㈩满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT77. DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200], b[200], 已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include<stdio. h>
#define MAX 200
int a[MAX] ,b[MAX] ,cnt=0;
void jsVal( )
{
}
void readDat ( )
{
int i;
FILE *fp;
fp=fopen ( "IN77. 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 7. DAT", "w" );
fprint f (fp, "%od\n", cnt);
for (i=0;i<cnt; i++)
fprintf(fp, "%d\n",b[i]);
fclose (fp);
}
36. 己知数据文件IN57.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从大到小的顺序进行排序,最后调用函数writeDat()把数组b中的数输出到OUT57.DAT文件中。
例如: 1239,9—1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,忽略。
注意:部分源程序已给出。
程序中已定义数组:a[300),b[300],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include<stdio.h>
int a[300],b[300],cnt=0;
jsValue()
{
}
main ( )
{
int i;
readDat();
jsValue();
writeDat();
printf ("cnt=%d\n", cnt);
for(i=0;i<cnt;i++)
print f ("b [%d] =%d\n", i,b Iii );
}
readDat ( )
{
FILE *fp;
int i;
fp=fopen ("IN57 .DAT", "r");
for (i=0; i<300; i++)
fscanf (fp, "%d, ",&a [ii );
fclose(fp);
}
writeDat ()
{
FILE *fp;
int i;
fp=fopen { "OUT57. DAT", "w" );
fprintf (fp, "%d\n", cnt);
for (i=0; i<cnt; i++)
fprintf(fp, "%d\n",b[i]);
fclose (fp);
}
参考答案
1.B数字签名使用的技术决定了数字签名的功能:安全单向散列函数的特性使得不同数据生成相同加密摘要的可能性很小,从而保证了数据传输过程中的完整性;公开密钥加密技术决定了除发送者之外,其他任何人都不可能产生该密文,从而证明了发送者的身份,也使得发送者无法抵赖。
2.C在Windows Server 2003系统中DHcP服务器添加排除时输入起始IP地址和结束IP地址,当排除一个单独的地址,结束IP地址省略。
故选择C选项。
3.C
4.C解析:路由器的关键技术指标包括:①吞吐量;②背板能力;③丢包率;④路由表容量;⑤突发处理能力;⑥延时与延时抖动;⑦服务质量;⑧可靠性与可用性;⑨网管能力等。
其中,吞吐量是指路由器的包转发能力,与其端口数量、端口速率、包长度、包类型有关,涉及端口吞吐量与整机吞吐量两个方面的内容。
端口吞吐量是指路由器某个具体端口的包转发能力,而整机吞吐量是指路由器整机的包转发能力。
5.Awinmail邮件服务器管理工具包括:系统设置、域名设置、用户和组
设置、系统状态和系统日志等项目。
故选择A选项。
6.C选项A中,wildcard—mask是错误的,选项B中,配置模式是错误的,选项D中,permit any命令应是最后一条,题中的顺序将导致最后一个IP地址不能被禁止掉。
因此选择C选项。
7.A
8.A
9.D
10.C端口吞吐量是指路由器的具体一个端口的包转发能力,而整机吞吐量是指路由器整机的包转发能力。
路由器的包转发能力与端口数量、端口速率、包长度和包类型有关。
背板是路由输入端与输出端之间的物理通道,背板能力决定了路由器的吞吐量。
延时抖动是指延时的变化量,由于数据包对延时抖动要求不高,因此通常不把延时抖动作为衡量高速路由器的主要指标,但是语音、视频业务对延时抖动要求较高。
突发处理能力是以最小帧间隔发送数据包而不引起丢失的最大发送速率来衡量的。
故选择C选项。
11.网络号网络号解析:每台接入因特网的计算机的每个连接都有一个由授权单位分配的用于彼此区别的号码:IP地址。
IP地址采用层次结构,按照逻辑结构划分为两个部分:网络号和主机号。
网络号用于识别一个逻辑网络,而主机号用于识别网络中的一台主机的一个连接。
具有相同网络号的主机在一个逻辑网络中。
12.(5)应用
【解析】Telnet协议属于TCP/IP的应用层协议。
13.
14.(18)加密【解析】利用公钥密码体制,数字签名是一个加密的消息摘要,附加在消息的后面。
15.16
【解析】以太网协议规定~个帧的最大重发次数为16。
如果重发次数超过16,则认为线路故障,进入“冲突过多”结束状态。
如果重发次数n≤16,则允许结点随机延迟再重发。
16.
17.
18.
19.(9)对等
【解析】早期的网络操作系统经历了由对等结构向非对等结构的过渡。
20.
21.传输传输解析:传输层负责错误的确认和恢复,以确保信息的可靠传递。
在必要时,它也对信息重新打包,把过长信息分成小包发送;而在接收端,把这些小包重构成初始的信息。
22.应用应用解析:简单网络管理协议SNMP位于ISO/OSI网络体系
结构参考模型的应用层。
SNMP模型由网络管理站、代理结点、管理信息库和SNMP协议4大部分组成。
23.核外程序核外程序解析:在系统结构上,UNIX可分为两大部分:一部分是操作系统的内核,另一部分是核外程序。
内核部分由文件子系统和进程控制子系统组成,核外程序则由用户程序和系统提供的服务组成。
24.域名解析域名解析解析:因特网中采用域名系统的目的是便于人们的记忆,但在IP协议中只能识别IP地址,所以在数据传输时,主机域名需要转换成IP地址,这个过程称之为域名解析。
因特网中有一组既独立又协作的域名服务器,每台域名服务器保存着它所管辖区域内的域名与IP地址的对照表,据此即可进行域名解析。
由于域名具有层次结构,所以对应的名字服务器也具有层次结构。
25.交换式交换式解析:局域网从介质访问控制方法的角度可以分为两类:争用式局域网与交换式局域网。
IEEE 802.2标准定义的争用式(共享介质)局域网有三类:采用CSMA/CD介质访问控制方法的总线型局域网、采用令牌总线介质访问控制方法的总线型局域网与采用令牌环介质访问控制方法的环形局域网。
交换式局域网的核心设备是局域网交换机,它可以在它的多个端口之间建立多个并发连接。
26.自动检测自动检测解析:本题考查点是典型的以太网交换机。
在典型的以太网交换机中,一部分端口支持10BASE-T,另一部分端口支持100BASE-T。
如果采用了10Mbps/100Mbps自动检测技术,则交换机端口可以根据端口上所连设备的传输速率而调整,实现在同一个局域网中
支持10Mbps/100Mbps的主机。
27.结构化查询语言或SQL结构化查询语言或SQL 解析:在实际系统开发中,选择适当的网络数据库软件,按照客户机/服务器工作模式,开发出客户端与服务器端数据库应用程序,这样客户端可以用结构化查询语言(SQL) 向数据库服务器发送查询请求,服务器进行查询后将查询结果传送到客户端。
它优化了局域网系统的协同操作模式,从而有效地改善了局域网应用系统性能。
28.广播广播解析:在通信技术中,通信信道的类型有两类:点一点通信信道和广播通信信道。
29.【审题关键句】数组相同下标位置上的奇数,数组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
30.【审题关键句】大于前连续5个数,偶数,从大到小排序。
\n【解题思路】本题类似于第35套题,通过审题可以发现主要有3个不同点:①要求进行比较的元素大于连续前5个数,因此在设置for循环条件语句时,应该从第6个元素开始,即数组下标i的值等于5,参考答案的第2条语句;②当前元素连续大于前5个数时,前5个元素的数组下标表示也有所不同,判断表达式也不一样,参考答案的第4条语句;
③统计结果按从大到小的方式进行排序,即参考答案的第9条语句。
\n【参考答案】
\n
\n
31.BIPTV服务将以通信为导向的服务和以内容为导向的服务紧密联系在一起,它可以提供的服务种类主要包括电视类服务、通信类服务,以及各种增值服务。
具体来说,电视类服务是指与电视服务相关的服务,如视频点播、直播电视和时移电视等;通信类服务主要是指基于IP的语音业务、即时通信服务和电视短信等;增值业务则是指电视购物、互动广告和游戏等,所以答案为B)。
32.D解析:安全管理的目标是按照一定的策略控制对网络资源的访问,保证重要的信息不被未授权的用户访问,并防止网络遭到恶意或是无意的攻击。
33.A解析:在广播通信网络中,计算机利用共享传输介质发送信息,一台计算机发送的信息,网络中所有其他的计算机都能“收听”到,但是,是否真正接收该信息,则要检查信息中的目的地址是否与本机地址相同。
如果相同,则接收,否则丢弃。
34.void CalValue() { int i;double xsum=0.0;for(i=0;i<N;i++) { sumint=sumint+(int)xx[i];/*求整数部分之和*/ x=xx[i]-(int)xx[i];/*求每个数的小数部分*/ sumdec=sumdec+x;/*求小数部分之和*/ sum=sum+xx[i];/*求N个数之和*/ } aver=sum/N;/*求N个数的平均数*/ }void CalValue()\r\n { int i;\r\n double x,sum=0.0;\r\n for(i=0;i<N;i++)\r\n { sumint=sumint+(int)xx[i];/*求整数部分之和*/\r\n x=xx[i]-(int)xx[i];/*求每个数的小数部分*/\r\n sumdec=sumdec+x;/*求小数部分之和*/\r\n sum=sum+xx[i];/*求N个数之和*/\r\n }\r\n aver=sum/N;/*求N个数的平均数*/\r\n } 解析:本题考查的知识点如下;
(1)循环结构的使用。
(2)强制类型转换。
将一个实数的整数部分和小数部分分开,这里使用的方法是强制类型转换法。
强制类型转换是按照要求将表达式的值转换成指定的类型。
将一个实数强制转换成整型数之后,其小数部分被去掉(不是四舍五入,而是直接删除)。
对数组中的200个实数求和及平均值,可以使用循环结构。
35.void jsVal( ) { int i thou hun ten data j; int ab cd; for (i=0; i<MAX; i++) { thou=a [i]/1000; /*求四位数的千位数字*/ hun=a [i] %1000/100; /*
求四位数的百位数字*/ ten=a [i] %100/10; /*求四位数的十位数字*/ data=a [i] %10; /*求四位数的个位数字*/ if ((thou+ten==hun+data)
&&a [i] %2 !=1) { /*如果千位数加十位数等于百位数并且此数是偶数*/
b [cnt]=a [i]; /*则将满足条件的数存入数组b中*/ cnt++; /*统计满足条
件的数的个数*/ } } for (i=0; i<cnt-1; i++) /*将数组b中的数按从小到大
的顺序排列*/ for (j=i+1; j<cnt; j++) if (b[i]>b[j]) { da ta=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<MAX; 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 data=a [i] %10; /*求四位数的个位数字*/\r\n if ((thou+ten==hun+data) &&a [i] %2 !=1)\r\n { /*如果千位数加十位数等于百位数,并且此数是偶数*/ \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+1; j<cnt; j++)\r\n if (b[i]>b[j])\r\n {\r\n da ta=b [i];\r\n b[i]=b[j];\r\n b [j] =data;\r\n }\r\n } 解析:本题考查的知识点如下:
(1)将一个4位整数各位上的数转变成单独的个位数。
(2)判断结构中多个条件的布尔运算。
(3)数据的排序。
在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的
数字。
这里借助特殊运算符号“%” (取余)和“/” (整除)。
将一们位数整除
1000则可得到其千位上的数字,除以1000取余再整除100则可得百位
上的数字,除以100取余再整除10则可得—卜位上的数字,除以10取余则得个位上的数字。
若一个数除以2取余为0,则这个数是偶数。
题目中的两个条件必须同时满足,所以两条件之间用“与”运算。
先将满足条件的数存入数组b中,再对数组中的数据进行排序。
最后的排序采用“选择排序法”。
36.jsValue ( ) { int i thou hun ten data j; for (i=0; i<300; i++) { thou=a
[i]/1000; /*求四位数的千位数字*/ hun-a [i] %1000/100; /*求四位数的百位数字*/ ten=a [i] %100/10; /*求四位数的十位数字*/ data=a [i] %10; /*求四位数的个位数字*/ if (data-hun-ten-thou>0) /*如果个位烽减千位数减百位数减十位数大于零*/ { b [cnt] -a [ i ]; /*则将满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=0; i<cnt-1; i++) /*对数组b的4位数按从大到小的顺序进行排序*/ for (j=i+1; j<cnt; j++) if (b[i]<b[j]) { data=b [ii; b[i]=b[9]; b [j] =data; } }jsValue ( )\r\n {\r\n int i, thou, hun, ten, data, j;\r\n for (i=0; i<300; 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 data=a [i] %10; /*求四位数的个位数字*/\r\n if (data-hun-ten-thou>0) /*如果个位烽减千位数减百位数减十位数大于零*/\r\n {\r\n b [cnt] -a [ i ]; /*则将满足条件的数存入数组b中*/\r\n cnt++; /*统计满足条件的数的个数*/\r\n }\r\n }\r\n for (i=0; i<cnt-1; i++) /*对数组b的4位数按从大到小的顺序进行排序*/\r\n for (j=i+1; j<cnt; j++)\r\n if (b[i]<b[j])\r\n {\r\n data=b [ii;\r\n b[i]=b[9];\r\n b [j] =data;\r\n }\r\n } 解析:本题考查
的知识点如下:
(1)运算符“%”及“/”的使用。
(2)循环结构及选择结构的使用。
在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。
这里借助特殊运算符号“%” (取余)和“/” (整除)。
将一个4位数整除1000则叫得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。
然后按照题意要求将各位依次相减进行判断。
将符合条件的数存入数组b中,最后的排序采用“选择排序法”。