阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。
【说明】
函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。
例如,单链表LA、LB的示例如下图中的(a)、(b)所示,删除与LB共有的元素后的LA如下图中的(c)所示。
链表的结点类型定义如下:
typedef struct Node {
int data;
struct Node *next;
}Node, *LinkList;
函数SetDiff(LinkList LA, LinkList LB)的处理思路如下:
(1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素。
(2)在LB中进行顺序查找,查找与LA的当前元素相同者,方法是令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止。
(3)结束在LB表的一次查找后,若在LB中发现了与LA的当前元素相同者,则删除LA的当前元素,否则保留LA的当前元素。
(4)取LA的下一个元素为当前元素,重复(2)、(3),直到LA的表尾。
【C函数】
void SetDiff (LinkList LA, LinkList LB)
{
LinkList pre, pa, pb;
/* pa用于指向单链表LA的当前元素结点,pre指向pa所指元素的前驱 */
/* pb用于指向单链表LB的元素结点 */
(1) ; /* 开始时令pa指向LA的第一个元素 */
pre=LA;
while (pa) {
pb=LB->next;
/* 在LB中查找与LA的当前元素相同者,直到找到或者到达表尾 */
while( (2) ) {
if (pa->data==pb->data)
break;
(3) ;
}
if (!pb) {
/* 若在LB中没有找到与LA中当前元素相同者,则继续考察LA的后续元素 */
pre=pa;
pa=pa->next;
}
else{
/* 若在LB中找到与LA的当前元素相同者,则删除LA的当前元素 */
pre->next= (4) ;
free (pa);
pa= (5) ;
}
}
}
(1)pa=LA->next
(2)pb,或pb!=0,或pb!=NULL
(3)pb=pb->next
(4)pa->next
(5)pre->next
本题考查C程序设计基本技术及指针的应用。
题目中涉及的考点主要有链表的查找、删除运算以及程序逻辑,分析程序时首先要明确各个变量所起的作用,并按照语句组分析各段代码的功能,从而完成空缺处的代码填充。
根据注释,空(1)处应为指针变量pa赋值,使其指向LA链表的第一个元素结点,由于LA为指向头结点的指针,因此空(1)处应填入“pa=LA->next”。
以指针pa的值为循环条件的以下循环语句用于遍历LA的每一个元素。
while (pa) {
…
}
对于LA中的每一个元素pa->data,需要在LB中查找是否存在与其相同者,代码段为:
pb=LB->next;
/* 在LB中查找与LA的当前元素相同者,直到找到或者到达表尾 */
while( (2) ) {
if (pa->data==pb->data)
break;
(3) ;
}
显然,通过“pb=LB->next”已经令pb指向了LB的第一个元素,接下来的while语句就用于和LB的元素pb->data逐个比较,显然,空(2)处应填入“pb”,表明pb为非空指针,使得循环体中进行“pa->data==pb->data”运算时,pb指针是有效的。在该循环中,若找到了两个链表的共有元素,则用break跳出循环,此时pb正指向LB中的该共有元素;否则继续在LB中查找,那就需要在空(3)处填入“pb=pb->next”。
在LB结束查找后,如果找到了与pa->data相同的元素,则之前已经令pb指向它;若是没有找到,则pb是空指针。
因此,接下来根据pb的值判断是否需要删除LA的当前元素。若不删除,则执行语句组“pre=pa; pa=pa->next;”,继续考察LA的后续元素;若需删除(pa指向的结点),则相关指针的指向如下图所示。
显然,pre已经指向pa所指结点的前驱,要删除pa所指结点,只要将pre->next设置为指向pa所指结点的后继结点即可,即令pre->next= pa->next。因此,在free(pa)之后需重新设置pa的指向,即令pa= pre->next,为继续处理后续元素做好准备。对应地,空(4)应填入“pa->next”,空(5)应填入“pre->next”。
思科路由器的内存体系由多种存储设备组成,其中用来存放IOS引导程序的是( ),运行时活动配置文件存放在( )中。
问题1选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
问题2选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
电信运营商提供的ISDN服务有两种不同的接口,其中供小型企业和家庭使用的基本速率接口(BRI)可提供的最大数据速率为( )。供大型企业使用的主速率接口(PRI)可提供的最大数据速率为( )。
问题1选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
问题2选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
PGP (Pretty Good Privacy)是一种电子邮件加密软件包,它提供数据加密和数字签名两种服务,采用( )进行身份认证,使用( )(128位密钥)进行数据加密,使用( )进行数据完整性验证。
问题1选项
A.RSA公钥证书
B.RSA私钥证书
C.Kerboros证书
D.DES私钥证书
问题2选项
A.IDEA
B.RSA
C.DES
D.Diffie-Hellman
问题3选项
A.HASH
B.MD5
C.三重DES
D.SHA-1
边界网关协议BGP4被成为路径矢量协议,它传送的路由信息是由一个地址前缀后跟( )组成,这种协议的优点是( )。
问题1选项
A.一串IP地址
B.一串自治系统编号
C.一串路由器编号
D.一串子网地址
问题2选项
A.防止域间路由循环
B.可以及时更新路由
C.便于发现最短通路
D.考虑了多种路由度量因素
某公司域名为pq.com,其POP服务器的域名为pop.pq.com,SMTP服务器的域名为smtp.pq.com,配置Foxmail邮件客户端时,在发送邮件服务器栏应该填写( ),在接收邮件服务器栏应该填写( )。
问题1选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
问题2选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
CDMA for cellular systems can be described as follows. As with FDMA, each cell is Allocated a frequency ( ),which is split into two parts; half for reverse (mobile unit to base station) and half for( )(base station to mobile unit). For full-duplex( ), a mobile unit uses both reverse and forward channels. Transmission is in the form of direct-sequence spread( )which uses a chipping code to increase the data rate of the transmission, resulting in an increased signal bandwidth.Multiple access is provided by assigning( )chipping codes to multiple users, so that the receiver can recover the transmission of an individual unit from multiple transmissions.
问题1选项
A.wave
B.signal
C.bandwidth
D.domain
问题2选项
A.forward
B.reverse
C.backward
D.ahead
问题3选项
A.connection
B.transmission
C.compromise
D.communication
问题4选项
A.structure
B.spectrum
C.stream
D.strategy
问题5选项
A.concurrent
B.orthogonal
C.higher
D.lower
结构化布线系统分为六个子系统,其中水平子系统的作用是( ),园区子系统的作用是( )。
问题1选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
问题2选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
IPv6的可聚合全球单播地址前缀为( ),任意播地址的组成是( )。
问题1选项
A.010
B.011
C.001
D.100
问题2选项
A.子网前缀+全0
B.子网前缀+全1
C.链路本地地址前缀+全0
D.链路本地地址前缀+全1
DNS服务器中的资源记录分成不同类型,其中指明区域主服务器和管理员邮件地址的是( ),指明区域邮件服务器地址是( )。
问题1选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
问题2选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
采用抓包工具截获的结果如下图所示,图中第1行记录显示的是( ),该报文由( )发出。
问题1选项
A.TCP错误连接响应报文
B.TCP连接建立请求报文
C.TCP连接建立响应报文
D.Urgent紧急报文
问题2选项
A.Web客户端
B.Web服务器
C.DNS服务器
D.DNS客户端