【2023年】甘肃省平凉市全国计算机等级考试网络技术模拟考试(含答案)

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

【2023年】甘肃省平凉市全国计算机等级考试网络技术模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(10题)
1.如果用户应用程序使用UDP协议进行数据传输,那么下列必须承担可靠性方面的全部工作的是( )。

A.数据链路层程序
B.互联层程序
C.传输层程序
D.用户应用程序
2.
3. 在使用因特网进行电子商务活动中,通常可以使用安全通道访问Web 站点,以避免第三方偷看或篡改。

安全通道使用( )技术。

A.SET
B.RSA
C.SSL
D.CA
4.信息存储安全通常采用用户访问权限设置、用户口令加密、用户身份认证和()方法等进行提高存储安全。

A.数据加密与结点地址过滤
B.存储转发与数据过滤
C.数据传输与数据过滤
D.存储加密与结点地址过滤
5.下列对IPv6地址FA32:0:0:0801:FE:0:O:Al50的简化表示中,错误的是()。

A.FA32::801:FE:0:0:A15
B.FA32::801:FE:0:0:A150
C.FA32:0:O:801:FE::A150
D.FA32:0:0:0801:FE::A150
6.下列关于B/S模式应用服务器的描述中,错误的是()
A.网络应用建立在Web服务的基础上
B.访问不同的应用服务器需要不同的客户端程序
C.浏览器不能直接访问数据库服务器
D.采用3层架构
7.下列关于常见网络版防病毒系统的描述中,错误的是()。

A.管理控制台可以安装在客户机端
B.客户端的安装可以采用脚本登录安装方式
C.系统的数据通信端口是固定的
D.系统的升级可以采用从网站上下载升级包后进行手动升级的方式
8.基于网络的入侵检测系统采用的识别技术主要有:频率或阈值、统计意义上的非正常现象检测、事件的相关性,以及()。

A.系统事件
B.模式匹配
C.安全性事件
D.应用程序事件
9.时移电视和直播电视的基本原理相同,主要差别在于传输方式的差异.时移电视是采用什么来为用户实现时移电视的功能?( )
A.组播方式
B.广播方式
C.点播方式
D.多播方式
10.类信息主要是一些信息服务商为了扩大本身的影响,从产生的社会效益上得到回报,推出的一些方便用户的信息,如在线免费软件、实时股市信息等()。

A.标准收费信息
B.免费信息
C.优质优价信息
D.低收费信息
二、填空题(10题)
11.移动计算将和移动通信技术结合起来,为用户提供一种移动的计算机环境和新的计算模式。

12.
13. 在TCP/IP协议中,地址【】被称为有限广播地址。

14.(20)P2P网络的基本结构之一是_________结构,其特点是由服务器负责记录共享的信息以及回答对这些信息的查询。

15.
第69 题在口数据报分片后,通常用___________负责数据报的重组。

16. 计算机网络层次结构模型和各层协议的集合叫做计算机网络【】。

17. 网络需求详细分析主要包括:网络总体需求分析、综合布线需求分析、网络可用性与可靠性分析、网络安全性需求,以及分析网络工程_________估算。

18. 不经过CPU,数据直接在I/O设备与存储器间传输的方法称为【】。

19. 有一种虚拟局域网的建立是动态的,它代表了一组IP地址,并由叫做代理的设备对虚拟局域网中的成员进行管理。

在这个虚拟局域网中,代理和多个IP结点组成IP【】虚拟局域网。

20. TCP/IP参考模型的传输层定义了两种协议,即传输控制协议TCP和______。

三、2.填空题(8题)
21. 网络的配置管理主要目的在于______网络和系统的配置信息以及网络内各设备的状态和连接关系。

22. 进程间的直接相互作用构成进程同步,进程间的间接相互作用构成进程______。

23. IP地址可分为A、B、C、D、E共5类。

其中A类地址主机号占用【】个字节。

24. 帧中继(FrameRelay) 是在X.25分组交换的基础上,简化了差错控制、流量控制和【】功能,而形成的—种新的交换技术。

25. 交换式局域网的核心是______。

26. 在经典奔腾中有两条______流水线和一条浮点指令流水线。

27. ______用有助于记忆的符号和地址符号来表示指令,它也是一种低级语言。

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

(2003年9月)
四、C语言程序设计题(2题)
29. 函数RData实现从文件in.dat中读取一篇英文文章存入到字符串数组original中,请编写函数StrCharMove,其函数的功能是:以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。

最后把已处理的字符串仍按行重新存入字符串数组original
中,最后调用函数WData,把结果original输出到文件out.dat中。

原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。

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

请勿改动主函数main、读数据函数RData和输出数据函数WData的内容。

30.请编制函数ReadDat实现从文件in.dat中读取1000个十进制整数到数组xx中,请编制函数Compute分别计算出xx中数值为奇数的个数odd,xx中所有奇数的平均值ave1,并求出xx中数值为偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat把结果输出到out.dat文件中。

注意:方差变量必须采用双精度类型。

计算方差的公式如下:
设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。

(每个数均大于0且小于等于2000)注意:部分源程序存放在test.c文件中。

请勿改动主函数main和输出数据函数writeDAT的内容。

五、1.选择题(3题)
31. 在EDI的工作流程中,发送信息之前,系统需要将报文翻译成什么格式的报文?( )。

A.标准格式
B.用户需要
C.内容需要
D.超文本
32. 与传统的政府政务相比,电子政务具有下列________突出的特点。

Ⅰ.使政务工作更有效、更精简Ⅰ.使政府工作更公开、更透明Ⅰ.为企业和居民提供更好的服务Ⅰ.使企业和居民能够更好的参与政府的管理
A.Ⅰ、Ⅰ和Ⅰ
B.Ⅰ、Ⅰ和Ⅰ
C.Ⅰ、Ⅰ和Ⅰ
D.全部
33. 计算机的应用领域可以分为( )。

A.科学计算、信息处理、计算机控制
B.信息处理、辅助设计
C.科学计算、计算机控制
D.多媒体处理、信息处理
六、1.程序设计题(3题)
34. 已知数据文件IN15.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT15.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("IN15.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 ("In");
writeDat ();
}
writeDat ()
{
FILE *fp;
int i;
fp = fopen("OUT15.DAT", "w"); fprintf(fp, "%d\n", cnt);
for(i = 0; i 〈cnt; i++)
fprintf(fp, "%d\n", b[i]);
fclose (fp);
}
35. 已知数据文件1N56.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数(新十位数的十位数字是原4位数的个位数字,新个位数的个位数字是原4位数的百位数字),如果新组成的两个十位数均为素数且新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足亡述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT56.DAT文件中。

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

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

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

试题程序:
#include<stdio . h>
#define MAX 200
int a[MAX] ,b[MAX] ,cnt=0;
int isprime(int m)
{
int i;
for (i=2; i<=m/2 ;i++)
if(re%i==0) return 0;
return 1;
}
void jsVal()
{
}
void readDat ( )
{
int i;
FILE rfp;
fp= fopen (" IN56. 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\n", b [i] ;
printf ("kn'');
writeDat ();
}
writeDat ()
{
FILE *fp;
int i;
fp=fopen ("OUT56. DAT", "w"); fprintf (fp, "%d\n", cnt);
for (i=0; i<cnt; i++)
fprintf(fp, "%dkn",b[i]);
fclose (fp);
}
36. 下列程序的功能是:把s字符串中所有的字符左移一个位置,串中的第一个字符移到最后。

请编制函数chg(char*s)实现程序要求,最后调用函数readwriteDat()把结果输出到out63.dat文件中。

例如:s字符串中原有内容为Mn,123xyZ,则调用该函数后,结果为n,123xyZM。

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

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

试题程序:
#include<conio. h>
#include<stdio. h>
#define N 81
void readwriteDAT();
void chg(char *s)
{
}
main ( )
{
char a [N];
clrscr ();
printf("Enter a string :");
gets (a);
printf("The original string is :");
puts (a);
chg (a);
printf("The string after modified :");
puts (a);
readwriteDAT ( );
}
void readwriteDAT()
{ int i;
char a [N];
unsigned char *p;
FILE *rf,*wf;
rf=fopen ("in63.dat", "r");
wf=fopen ("out63.dat", "w");
for (i=0; i<10;i++)
{ fgets (a, 80, rf);
p=strchr (a, ' \n' );
if(p) *p=0;
chg (a);
fprintf (wf, "%s\n", a);
}
fclose(rf);
fclose (wf);
}
参考答案
1.DUDP既不使用确认信息对数据的到达进行确认,也不对收到的数据进行排序。

因此,利用UDP协议传送的数据有可能会出现丢失、重复或乱序现象,一个使用UDP协议的应用程序要承担可靠性方面的全部工作。

2.B
3.C解析:交互敏感信息时应避免第三方偷看或篡改是用户在浏览Web 站点及与Web站点进行交互时通常要考虑的安全问题之一。

为避免这一问题,可以使用安全通道访问Web站点,安全通道使用SSL(安全套接层)技术。

4.A
5.AIPv6采用128位地址长度,每l6位划分为一个位段。

每个位段被转
换为一个4位的十六进制数,位段间用冒号隔开,这种方法称为冒号十六进制表示法,因此一个IPv6地址最多有8个位段。

另外一种是零压缩表示法,规则为:对于—个位段中中问的0不做省;对于一个位段中全部数字为0的情况,只保留一个0;当地址中存在一个或者多个连续的16比特位为0字符时,可以用::(双冒号)来表示,但是一个IPv6地址只允许有一个双冒号;不能将一个段内有效的0压缩掉。

A选项中的Al50后面的0不能省,因此A选项错误。

故选A选项。

6.B
7.C为了使网络版病毒软件的通信数据能顺利地通过防火墙,通常系统需要手动设置数据通信端口,因此系统的数据通信端口是不固定的,只要不和已有的通信端口冲突即可。

故选择C选项。

8.B基于网络的入侵检测系统采用的识别技术主要有:模式匹配、统计意义上的非正常现象检测、事件的相关性以及频率或阈值。

故选择B选项。

9.C
10.B
11.计算机网络移动计算网络是当前网络领域中一个重要的研究课题。

移动计算将计算机网络和移动通信技术结合起来,为用户提供移动的计算环境和新的计算模式,其作用是在任何时间都能够及时、准确地将有用信息提供给处在任何地理位置的用户。

移动计算技术可以使用户在汽车、飞机或火车上随时随地办公,从事远程事务处理、现场数据采集、股市行情分析、战场指挥、异地实时控制等。

12.
13.255.255.255.255255.255.255.255 解析:在TCP/TP协议中存在两种类型的广播地址。

一种是将IP地址的主机地址部分全部置0或置1,这种广播地址称为直接广播地址。

利用该地址可以向任何子网直接广播。

另外还有一个特殊的IP地址,用于向本网广播,被称为有限广播地址,其值为255.255.255.255。

14.(20)集中式【解析】目前,P2P网络存在4种主要的结构类型,集中式拓扑结构、分布式非结构化拓扑结构、分布式结构化拓扑结构以及混合式P2P网络结构。

15.目的主机
【解析】在接收到所有分片的基础上,主机对分片进行重新组装的过程称为IP数据报重组。

IP协议规定,只有最终的目的主机才可以对分片进行重组。

16.体系结构体系结构解析:本题考查点是计算机网络体系结构的定义。

计算机网络的通信功能被分解到若干层次中分别定义,并且各层对等实体之间存在着通信和通信协议。

下层通过层间“接口”向上层提供“服务”。

一个功能完备的计算机网络需要一套复杂的协议集。

计算机网络的所有功能层次、各层次的通信协议以及相邻层间接口的集合称为网络体系结构。

构成网络体系结构的分层、协议和接口是其三要素,可以表示为:网络体系结构={分层、协议、接口}需要指出的是,网络体系结构说明了计算机网络层次结构应如何设置,并且应该如何对各层的功能进行精确的定义。

它是抽象的,而不是具体的,其目的是在统一的原则下来设计、建造和发展计算机网络。

网络体系结构仅给出一般性指导标准和概
念性框架,至于用何种硬件和软件来实现定义的功能,则不属于网络体系结构的范畴。

可见,对同样的网络体系结构,可采用不同的方法,设计完全不同的硬件和软件来实现相应层次的功能。

17.\n造价
\n
18.直接存储器存取方式(DMA)直接存储器存取方式(DMA) 解析:不经过CPU,数据直接在I/O设备与存储器间传输的方法称为直接存储器存取方式(DMA)
19.广播组广播组解析:虚拟局域网技术基于交换技术,而交换技术涉及到网络的多个层次,所以虚拟局域网也可以在网络的不同层次上实现,主要表现在对虚拟局域网成员的定义方法上,通常有以下4种:1)用交换机端口号定义虚拟局域网;2)用MAC地址定义虚拟局域网;3)用网络层地址定义虚拟局域网;4)IP广播组虚拟局域网。

有一种虚拟局域网的建立是动态的;它代表了一组IP地址,并由叫做代理的设备对虚拟局域网中的成员进行管理,这就是IP广播组虚拟局域网。

20.用户数据报协议(UDP)用户数据报协议(UDP) 解析:TCP/IP参考模型的传输层定义了两种协议,即传输控制协议TCP和用户数据报协议UDP。

TCP协议是面向连接的协议,UDP协议是面向非连接的协议。

21.掌握和控制或控制和掌握掌握和控制或控制和掌握解析:配置管理的目标是掌握和控制网络和系统的配置信息以及网络内各设备的状态和连接关系。

现代网络设备是由硬件和设备驱动程序组成的,适当配置设备参数可以更好地发挥设备的作用,获得优良的整体性能。

22.互斥互斥解析:进程同步是指进程之间一种直接的协同工作关系,
是一些进程相互合作,共同完成一项任务,进程间的直接相互作用构成进程的同步;各进程互斥使用临界资源,进程间的这种关系是进程的互斥,进程间的间接相互作用构成进程互斥。

23.33 解析:IP地址由4个字节(32bit)组成,可以分为A、B、C、D、E共5类。

其中A、B、C类地址的网络号和主机号所占用的位数不同,以适应不同规模的网络。

A类地址中网络号占1个字节的7位(首位为0),其余的3个字节表示主机号,适用于大型网络。

B类地址中网络号占前2个字节中的14位(第1、2位为10),其余的3个字节表示主机号。

C类地址中网络号占前3个字节中的2l位(第1、2、3位为110),其余的3个字节表示主机号,适用于规模较小的网络。

D类和E类IP 地址少用。

24.路由选择路由选择解析:帧中继的主要特点是:中速到高速的数据接口:标准速率为DSI即T1速率;可用于专用和公共网:使用可变长分组,它简化了差错控制、流量控制和路由选择功能。

25.局域网交换机局域网交换机解析:交换式局域网的核心是局域网交换机。

26.整数指令整数指令解析:在经典奔腾中,有两条整数指令流水线(U 指令流水线和V指令流水线)和一条浮点指令流水线。

27.汇编语言汇编语言解析:汇编语言是一种符号化的机器语言,用有助于记忆的符号和地址符号来表示指令,它是一种低级语言。

28.802.3802.3 解析:本题考查点是IEEE 802.3标准。

美国电气和电子工程师学会IEEE下设的局域网标准委员会针对局域网制定了IEEE 802
标准,它描述了局域网参考模型。

该标准已被国际标准化组织(ISO)接纳作为国际标准,称为ISO 8802或称为IEEE 802标准。

IEEE 802委员会制定了11条标准。

其中IEEE 802.3标准描述了CSMA/CD介质访问控制方法和物理层技术规范;IEEE 802.4标准描述了令牌总线介质访问控制方法和物理层技术规范;IEEE 802.5标准描述了令牌环介质访问控制方法和物理层技术规范。

29.【审题关键句】以行为单位把所有字符的ASCII值右移4位,后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符。

\n【解题思路】
\n①首先定义循环变量i、j和表示字符串长度的整型变量strl。

\n②在第一层for循环中,循环变量i从0开始,依次递增直到其值等于或大于maxline,在循环体中,首先用函数strlen(original[i])计算字符串original[i]的长度,把这个值赋给整型变量strl。

在第二层for循环中,循环变量j从0开始,依次递增直到其值等于或大于strl,利用表达式original[i][j]+=original[i][j]>>4实现对字符original[i][j]的ASCII码值右移4位后所得到值与原字符original[i][j]的ASCII码值相加,仍存入原字符串对应的位置上的功能。

\n【参考答案】
\n
30.【审题关键句】读取l 000个数,奇数个数、平均值及方差,偶数个数及平均值。

\n【解题思路】
\n本题类似第48套试题,通过审题可以发现本题仅一个不同点,即本题中要求计算的是奇数的方差,参考答案的第15~20条语句。

另外,本题给出的原程序中已经定义了odd,因此在答案程序中不需要再次定义该变量。

\n【参考答案】
\n
\n
31.A解析:EDI强调在其系统上传输的报文遵守一定的标准,因此,在发送之前,系统需要使用翻译程序将报文翻译成标准格式的报文。

32.D解析:与传统的政府政务相比,电子政务具有下列四个突出的特点:1、电子政务将使政务工作更有效、更精简;2、电子政务将使政府工作更公开、更透明;3、电子政务将为企业和居民提供更好的服务;4、电子政务将重新构造政府、企业、居民之间的关系,使之比以前更加协调,使企业和居民能够更好的参与政府的管理。

33.A解析:应用技术领域可分为以下几个方面:科学计算,事务处理,过程控制,辅助工程,人工智能,网络应用。

从大的方面来讲,就是科学计算,信息处理,计算机控制。

34.void jsVal() { int ijflag=0;for(i=0;i〈MAX-5;i++) /*如果该4位数连续小于该4位数以后的5个数*/ { for(j=i+1;j〈=i+5;j++) { if(a[i]〈a[j]) flag=l;/*则置flag为1*/ else flag=0;/*否则置flag为0*/ if(a[i]%2 !=0) /*如果该数是奇数则置flag为0*/ flag=0;if(flag==0) /*如果flag为0则退出循环*/ break;} if(flag==1) /*如果flag为土则将该数存入数组b中
并统计满足条件的数的个数*/ { b[cnt]=a[i];cnt++;} } for(i=0;i〈cnt-1;i++) /*将数组b中的数按从小到大的顺序排序*/ for(j=i+1;j〈cnt;j++) if(b[i]>b[j]) { flag=b[i];b[i]=b[j];b[j]=flag;} }void jsVal()\r\n {\r\n int i,j,flag=0;\r\n for(i=0;i〈MAX-5;i++) /*如果该4位数连续小于该4位数以后的5个数*/\r\n {\r\n for(j=i+1;j〈=i+5;j++)\r\n {\r\n if(a[i]〈a[j])\r\n flag=l;/*则置flag为1*/\r\n else flag=0;/*否则置flag为0*/\r\n if(a[i]%2 !=0) /*如果该数是奇数则置flag为0*/\r\n flag=0;\r\n if(flag==0) /*如果flag为0,则退出循环*/\r\n break;\r\n }\r\n if(flag==1) /*如果flag为土,则将该数存入数组b中,并统计满足条件的数的个数*/\r\n {\r\n b[cnt]=a[i];\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 { flag=b[i];\r\n b[i]=b[j];\r\n b[j]=flag;\r\n }\r\n } 解析:根据题意可知,要编制函数的功能有两部分:一是找出满足条件的4位数;二是对找出的数进行从小到大排序。

首先利用一个for循环来依次从数组中取得4位数,接着用当前得到的4位数与该数后面的5个数(可以用循环次数来控制)依次进行比较,如果该数比它后面的5个数都小,则给标志变量flag赋值1。

接着对flag进行判断,如果不为1,则该数肯定不符合条件,直接去取下一个数;若flag值为1,再来判断该数是否是偶数,如果恰好该数又是偶数,则把该数加入到数组b中。

这样就可以依次取出符合条件的数,然后利用选择法对b数组中的元素进行从小到大的排序。

35.void jsVal() { int i thou hun ten data j; int ab cd; for (i=0; i<200; i++)
{ thou=a [i]/1000; /*求四位数的千位数字*/ hun=a [i] %1000/100; /*求位烽的百位数字*/ ten=a [i] %10 0 / 10; /*求四位数的十位数字*/ data=a [i] %10; /*求四位数的个位数字*/ ab= 10 *thou+ ten; /*把千位数字和十位数字重新组合成一个新的十位数*/ cd=lO*data+hun; /*把个位数和百位数组成另一个新的十位数*/ if (isprime (ab)&&isprime (cd)&&ab ! =O&&cd! =0) /*如果新组成的两个十位数均为素数且新十位数字均不为零*/ { b[cnt]=a[i]; /*把满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=O; i<cnt-1; i++) /*将满足此条件的4位数按从大到小的顺序存入数组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] %10 0 / 10; /*求四位数的十位数字*/\r\n data=a [i] %10; /*求四位数的个位数字*/\r\n ab= 10 *thou+ ten; /*把千位数字和十位数字重新组合成一个新的十位数*/\r\n cd=lO*data+hun; /*把个位数和百位数组成另一个新的十位数*/\r\n if (isprime (ab)&&isprime (cd)&&ab ! =O&&cd! =0)\r\n /*如果新组成的两个十位数均为素数且新十位数字均不为零*/\r\n {\r\n b[cnt]=a[i]; /*把满足条件的数存入数组b中*/\r\n cnt++; /*统计满足条件的数的个数*/\r\n }\r\n }\r\n for (i=O; i<cnt-1; i++) /*将满足此条件的4位数按从大到小的顺序存入数组b中*/\r\n for (j=i+l; j<cnt; j++)\r\n if(b[i]<b[j])\r\n { data=b[i];\r\n b[i]=b[j];\r\n b [j] =data;\r\n } 解析:本题考查的知识点如下:
(1)将4位数各位亡的数拆分为独立的数字。

(2)循环结构的使用。

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

在本题中,首先要将4位数各位上的数字拆分为独立的数字。

这要借助运算符“%” (取余)与“/” (整除)。

将一个4位数整除1000则叫‘得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。

求得各位上的数字后,就可以重新组合进行比较。

题中已给出判断素数的函数,只要带入求出数据即可。

各条件必须同时满足,所以用“与”运算。

题中要求将符合条件的数按从大到小的顺序存入数组b,可以先将符合条件的数存入数组b,再对数组b进行排序。

排序使用“选择排序法”。

36.void chg(char *s) { int istrl; char ch; strl=strlen (s); /*求字符串的长度*/ ch=*s; /*将第一个字符暂赋给ch* / for (i=O; i<strl-1; i++) /*将字符依次左移*/ *(s+i) =* (s+i+l); * (s+strl-1) =ch; /*将第一个字符移到最后*/ }void chg(char *s)\r\n {\r\n int i,strl;\r\n char ch;\r\n strl=strlen (s); /*求字符串的长度*/\r\n ch=*s; /*将第一个字符暂赋给ch* /\r\n for (i=O; i<strl-1; i++) /*将字符依次左移*/\r\n *(s+i) =* (s+i+l);\r\n * (s+strl-1) =ch; /*将第一个字符移到最后*/\r\n } 解析:本题考查的知识点如下:
(1) 数组中元素的移动。

(2) 指针的使用。

我们可以使用一个循环实现数组中所有字符元素的左移。

这里要注意的足第1个字符要移至最后1个字符处,所以首先要将第1个字符保存。

在移动时,要从左到右依次移动,否则,左侧的字符会在移动前被其右侧的字符覆盖。

在这里使用了指针,初始时,指针指向数组的第1个元素,随着地址的增加指针指向数组后面的元素。

例如,若地址加2,。

相关文档
最新文档