zoukankan      html  css  js  c++  java
  • 2018 七牛云校招笔试题 [卷二]

    2018 七牛云校招笔试题 [卷二]

    1. 找出规律填写空白的数字,2, 3, 7, 16, ___, 57, 93 ()

      16 + 16 = 32
      32 + 25 = 57
      1, 4, 9, 16, 25
      答案: 16

    2. 在局域网上执行 ping www.qiniu.com 没有涉及到的网络协议是?()
      A. ARP
      B. DNS
      C. TCP
      D. ICMP

      ARP: 数据链路层

      将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.2

      TCP
      DNS 应该有, 需要进行域名解析
      TCP 面向连接, UDP面向无连接, ping使用的是 UDP
      ARP ?
      ICMP ?

    3. 有三个节点,可以构成多少种二叉树?()

      3
      4
      5
      6

    => 5
    二叉树的特征: 每个节点最多有两个节点

    1. 下列对于数据库索引的说法一定是错误的()

      A. 索引不会影响表的更新、插入和删除操作的效率
      B. 全表扫描不一定比使用索引执行效率低
      C. 对于只有很少数据值的列,不应该创建索引
      D. 索引可以加速表和表之间的连接查询

    => A

    1. 以下程序输出多少个“-”()
     	int main(void) {
            int i;
            for (i = 0; i < 2; i++) {
                fork();
                printf("-");
            }
            return 0;
        }
    

    => ?
    fork() 函数什么意思 ?

    1. Linux 下两个进程同时打开同一个文件,这时以下描述正确的是:()

      A. 两个进程中会生成同一个fd
      B. 如果有一个进程删除该文件,另一个进程会立刻出现读/写文件失败
      C. 操作系统会禁止两个进程同时向文件进行写入操作
      D. 进程可以通过系统调用对文件加锁,从而实现对文件内容的保护

    => D

    1. 255.255.254.0 网段最多能支持 _____ 台主机? ()

    =>

    255.255.254.0 的二进制:
    11111111 11111111 11111110 00000000
    
    由二进制可以得出主机数为 9 个二进制位 (2^9)
    
    因为在每个网段中都包括一个广播地址 和 一个网络地址
    所以实际子网可容纳主机数为:2^9 - 2 = 512 - 2 = 510
    
    1. 如果一个数组(长度超过10万)仅由0-10的整数组成,以下哪种排序算法对该数组排序效率最高?()

      快速
      冒泡
      计数
      希尔

    2. 下面关于Linux文件系统的描述中错误的是:()
      A. inode 和文件名是一一对应的
      B. 通过inode可以获得文件占用的块数
      C. 文件执行了删除操作之后,仍可通过之前创建的硬链接进行正常访问
      D. inode 描述了文件大小和指向数据块的指针

    3. 21点是一种扑克游戏。如果玩家拿到扑克牌的点数总和超过21点则称为爆点,被判失败。
      其中A牌可以被记为11点或者1点,J, Q, K 都记为10点。如果用一副牌玩游戏(52张牌),玩家手上拿到一个J和7。那他再抽两张牌会爆点的可能性约有多大?(C)

      17, 4

    4. 5个骰子,六个面分别标有1-6,现在将五个同时随机投掷,五个点数之和概率最大的点数是

    5. 验证远端服务器(IP:180.97.72.166)的 1935 端口是否开启的命令是

    6. 根据下面递归函数:调用函数fun(2),返回值是
      int fun(int n) {
      if(n==5)
      return 2;
      else
      return 2 * fun(n+1);
      }

      2 * 2 * 2 * 2 * 2

    7. 有一组关键字序列 [5, 8, 14, 20, 31, 55, 78, 81, 93, 97, 111],使用二分法查找关键字97需要进行 () 次比较

      3次
      
    8. (简答题)在Linux中,file.sh 的权限用数值表示是 645。请简述这个文件权限数值的含义。

      user group other
      1: r
      2: w
      4: x

      6: user w + x
      4: group x
      5: other r + x

    9. (简答题)一个单向链表从头到尾遍历每个节点只会访问到一次,则为无环链表,如果存在节点会被重复遍历,则为有环链表。试解答:
      (1)如何判断一个单向链表是否存在环?(4分)
      (2)如果链表有环,如何找到环的入口节点?(8分)
      (3)如何计算环的长度?(3分)

    10. (编程题)请编写一个函数,获得输入整数的平方根,如果结果不是整数则向下取整。

    11. (编程题)请使用字符串来表达任意大小的长整数,使用你熟悉的编程语言编写程序来计算两个长整数之和。例如:sum(“123”,”456”) 返回的结果是”579”。

    12. (论述题)当线上服务CPU使用过高的时候。你会用什么方法对程序进行分析、发现服务的瓶颈?

    13. Linux的进程通信方式有哪些 ()(至少给出3个)

      进程通信的方式
          管道( pipe ):
              管道包括三种:
                  普通管道PIPE: 通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用.
                  流管道s_pipe: 去除了第一种限制,为半双工,只能在父子或兄弟进程间使用,可以双向传输.
                  命名管道:name_pipe:去除了第二种限制,可以在许多并不相关的进程之间进行通讯.
      
          信号量( semophore ) :
              信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
      
          消息队列( message queue ) :
              消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
      
          信号 ( sinal ) :
              信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
      
          共享内存( shared memory ) :
              共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
              
          套接字( socket ) :
              套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。
      
  • 相关阅读:
    MySQL——视图/触发器/事务/存储过程/函数/流程控制
    python连接MySQL/redis/mongoDB数据库的简单整理
    docker安装和使用
    【Python】Django2.0集成Celery4.1详解
    django-haystack全文检索详细教程
    ubuntu16.04安装FastDFS-5.08
    redis之django-redis
    uva 1152 4 Values whose Sum is 0
    2015暑假acm短训小结
    Uva 12569 Planning mobile robot on Tree (EASY Version)
  • 原文地址:https://www.cnblogs.com/bobo132/p/13950340.html
Copyright © 2011-2022 走看看