2018 七牛云校招笔试题 [卷二]
-
找出规律填写空白的数字,2, 3, 7, 16, ___, 57, 93 ()
16 + 16 = 32
32 + 25 = 57
1, 4, 9, 16, 25
答案: 16 -
在局域网上执行 ping www.qiniu.com 没有涉及到的网络协议是?()
A. ARP
B. DNS
C. TCP
D. ICMPARP: 数据链路层
将32位的IP地址转换为48位的物理地址。
IP地址是网络层的地址,连上互联网的每一台主机的每一个接口都会有一个IP地址,
每台主机的每个网卡均有唯一的物理地址,物理地址在生产时就已经定死,无法改变,
而每个网卡的IP地址是可以改变的(例如连上不同的wifi,IP地址也会不同)。DNS:
1、DNS系统的作用
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP地址查找对应的主机域名
2、DNS系统的工作模式
递归查询
迭代查询TCP: -> 传输层
什么是 TCP/IP?
TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。在 TCP/IP 内部
在 TCP/IP 中包含一系列用于处理数据通信的协议:
TCP (传输控制协议) - 应用程序之间通信
UDP (用户数据包协议) - 应用程序之间的简单通信
IP (网际协议) - 计算机之间的通信
ICMP (因特网消息控制协议) - 针对错误和状态
DHCP (动态主机配置协议) - 针对动态寻址ICMP: -> 网络层
网际控制报文协议
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (InternetControl Message Protocol)。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。OSI中的层 功能 TCP/IP协议族
应用层: 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层: 数据格式化,代码转换,数据加密 没有协议
会话层: 解除或建立与别的接点的联系 没有协议
传输层: 提供端对端的接口 TCP,UDP
网络层: 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层: 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层: 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2TCP
DNS 应该有, 需要进行域名解析
TCP 面向连接, UDP面向无连接, ping使用的是 UDP
ARP ?
ICMP ? -
有三个节点,可以构成多少种二叉树?()
3
4
5
6
=> 5
二叉树的特征: 每个节点最多有两个节点
-
下列对于数据库索引的说法一定是错误的()
A. 索引不会影响表的更新、插入和删除操作的效率
B. 全表扫描不一定比使用索引执行效率低
C. 对于只有很少数据值的列,不应该创建索引
D. 索引可以加速表和表之间的连接查询
=> A
- 以下程序输出多少个“-”()
int main(void) {
int i;
for (i = 0; i < 2; i++) {
fork();
printf("-");
}
return 0;
}
=> ?
fork() 函数什么意思 ?
-
Linux 下两个进程同时打开同一个文件,这时以下描述正确的是:()
A. 两个进程中会生成同一个fd
B. 如果有一个进程删除该文件,另一个进程会立刻出现读/写文件失败
C. 操作系统会禁止两个进程同时向文件进行写入操作
D. 进程可以通过系统调用对文件加锁,从而实现对文件内容的保护
=> D
- 255.255.254.0 网段最多能支持 _____ 台主机? ()
=>
255.255.254.0 的二进制:
11111111 11111111 11111110 00000000
由二进制可以得出主机数为 9 个二进制位 (2^9)
因为在每个网段中都包括一个广播地址 和 一个网络地址
所以实际子网可容纳主机数为:2^9 - 2 = 512 - 2 = 510
-
如果一个数组(长度超过10万)仅由0-10的整数组成,以下哪种排序算法对该数组排序效率最高?()
快速
冒泡
计数
希尔 -
下面关于Linux文件系统的描述中错误的是:()
A. inode 和文件名是一一对应的
B. 通过inode可以获得文件占用的块数
C. 文件执行了删除操作之后,仍可通过之前创建的硬链接进行正常访问
D. inode 描述了文件大小和指向数据块的指针 -
21点是一种扑克游戏。如果玩家拿到扑克牌的点数总和超过21点则称为爆点,被判失败。
其中A牌可以被记为11点或者1点,J, Q, K 都记为10点。如果用一副牌玩游戏(52张牌),玩家手上拿到一个J和7。那他再抽两张牌会爆点的可能性约有多大?(C)17, 4
-
5个骰子,六个面分别标有1-6,现在将五个同时随机投掷,五个点数之和概率最大的点数是
-
验证远端服务器(IP:180.97.72.166)的 1935 端口是否开启的命令是
-
根据下面递归函数:调用函数fun(2),返回值是
int fun(int n) {
if(n==5)
return 2;
else
return 2 * fun(n+1);
}2 * 2 * 2 * 2 * 2
-
有一组关键字序列 [5, 8, 14, 20, 31, 55, 78, 81, 93, 97, 111],使用二分法查找关键字97需要进行 () 次比较
3次
-
(简答题)在Linux中,file.sh 的权限用数值表示是 645。请简述这个文件权限数值的含义。
user group other
1: r
2: w
4: x6: user w + x
4: group x
5: other r + x -
(简答题)一个单向链表从头到尾遍历每个节点只会访问到一次,则为无环链表,如果存在节点会被重复遍历,则为有环链表。试解答:
(1)如何判断一个单向链表是否存在环?(4分)
(2)如果链表有环,如何找到环的入口节点?(8分)
(3)如何计算环的长度?(3分) -
(编程题)请编写一个函数,获得输入整数的平方根,如果结果不是整数则向下取整。
-
(编程题)请使用字符串来表达任意大小的长整数,使用你熟悉的编程语言编写程序来计算两个长整数之和。例如:sum(“123”,”456”) 返回的结果是”579”。
-
(论述题)当线上服务CPU使用过高的时候。你会用什么方法对程序进行分析、发现服务的瓶颈?
-
Linux的进程通信方式有哪些 ()(至少给出3个)
进程通信的方式 管道( pipe ): 管道包括三种: 普通管道PIPE: 通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用. 流管道s_pipe: 去除了第一种限制,为半双工,只能在父子或兄弟进程间使用,可以双向传输. 命名管道:name_pipe:去除了第二种限制,可以在许多并不相关的进程之间进行通讯. 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 共享内存( shared memory ) : 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。