1.若有以下程序:
#include<stdio.h>
#define SUB(X,Y) (X+1)*Y
int main()
{
int a = 3, b = 4;
printf("%d\n", SUB(a++, b++));
return 0;
}
程序运行的结果是?
A.25
B.20
C.12
D.16
答案:D.16,后置++,先使用,后++,所以宏函数替换为了(3++ + 1)*4++,结果为16
2.在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是()
A.41
B.82
C.113
D.122
答案:B.82
解析:数的度就是数的分支的数目,这棵树的度为4,说明它是一棵四叉树。
基本定义:度为0的结点成为叶子(leaf)或终端结点。
总节点个数为:根节点+子节点
根节点个数为1,子节点个数为20*4+10*3+1*2+10*1 = 122
所以总结点个数为123个。
只有叶节点度数为0,其他结点都有度数。由题意得其他结点总数为20+10+1+10 =41个
故叶节点(终端节点)=123-41=82个。
3.数据通信系统中采用反馈重发机制()来实现差错控制。
A.ARP
B.RPC
C.ARQ
D.UDP
答案:C.
解析:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
ARQ(自动重传请求)包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。
ARP(Address Resolution Protocol),地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
4.在请求分页系统中,页表中的辅存始地址是供()参考的。
A.页面置换
B.内存分配
C.页面换出
D.页面调入
答案:D.
解析:页表项有:
|页号|物理块号|状态位P|访问字段A|修改位M|外存地址|
各字段说明如下:
1)状态位P:用于指示该页是否已调入内存,供程序访问时参考;
2)访问字段A:用于记录本页在一段时间内被访问次数,供选择换出页面时参考;
3)修改位M:表示该页在调入内存后是否被修改过,供置换页面时参考;
4)外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考;故,此题选D
5.某学校获取到一个B类地址段,要给大家分开子网使用,鉴于现在上网设备急剧增多,管理员给每个网段进行划分的子网掩码设置为255.255.254.0,考虑每个网段需要有网关设备占用一个地址的情况下,每个网段还有多少可用的主机地址()
A.509
B.511
C.512
D.510
答案:A.
解析:子网掩码写成二进制形式则为:1111 1111 1111 1111 1111 1111 1111 11110 0000 0000;可用地址为2^9=512;但是要减去全0和全1,并且要减去一个网关设备,所以512-3=509.
6.An ARP query packet is encapsulated in()
A.a link-layer frame addressed to a specific adapter
B.an IP datagram
C.a link-layer broadcast frame
D.none of above
答案:C.
解析:题目问的是:ARP包包装在什么里面?
A、发给指定网络适配器的链路层帧
B、ip数据报
C、链路层广播帧
ARP是用于将网络层的IP解析成数据链路层的MAC地址的,ARP协议工作在数据链路层。
7.对于有n个结点的二叉树,其高度为()(第一层高度1)
A.nlog2(n)
B.[log2(n+1)](向上取整)
C.log2(n)
D.不确定
答案:D.不确定,如果是完全二叉树或者是满二叉树高度还可以确定,但是这里的二叉树可能是一层只有一个节点的,所以高度是一个不确定的值。
8.关于网络分层的概念,下面说法错误的是( )
A.上层使用下层提供的服务
B.网络中两台主机的对等层之间是直接进行通信的
C.分层后各层易于实现和维护,能促进标准化工作
D.协议是“水平”的,服务是“垂直”的
答案:B.对等层直接不是直接进行通信的。 因为每一层必须依靠下层提供的服务来与另一台主机和对等层进行通信。
9.关于linux的I/O复用接口select和epoll,下列说法错误的是()
A.select调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历
B.select的最大连接数为FD_SETSIZE
C.select较适合于有大量并发连接,且活跃链接较多的场景
D.epoll较适用于有大量并发连接,但活跃连接不多的场景
E.epoll的效率不随FD数目增加而线性下降
F.epoll通过共享存储实现内核和用户的数据交互
答案:C。首先,select就不适合大量的并发操作,一是它的FD数量受限,如何达到“大量”;二是每次调用select需要将全部FD复制到内核,在FD很多时,开销很大。 然后,如果不看FD的数量,只针对活跃链接数的话,select和epoll相比,select更适合活跃链接数多的情况,因为:当活跃链接数多时,不管是select还是epoll,每次均需复制很多FD到内核;但epoll每次在内核还要开辟红黑树和双链表等数据结构,以及注册回调事件,这些操作如果太频繁,反而会降低epoll的效率。
10.Linux中,一个端口能够接受TCP链接数量理论上是多少()
A.1024
B.65535
C.65535*65535
D.无上限
答案:D.无上限,标识一个TCP连接的是,客户端和服务器的IP地址加端口号,尽管服务器IP地址和端口号一样,但是客户端IP地址是不一样的,而客户端端口号只有本地意义,所以理论上服务器一个端口号能接受的TCP连接是无上限的。