1. 下面哪些项是TCP具有的能力?(A B D)

A. 有连接
B. 数据可靠传输
C. 数据按序到达
D. 端到端流量控制

解析:TCP数据报还要由下层的IP协议封装,由于IP数据报到达目的后可能顺序变乱,因此TCP报文顺序也可能变乱。因此到达目的后如果报文顺序混乱,TCP协议会进行排序。

2. 在公司局域网上ping www.bilibili.com 没有涉及到的网络协议是?(A)

A. TCP
B. DNS
C. ICMP
D. ARP

解析:域名DNS,ping指令ICMP协议发送(ICMP请求回显数据包),通过IP获取mac地址的ARP

3. 以下哪个数据结构底层是用红黑树实现的? (C)

A. vector
B. list
C. map
D. deque

解析:map 散列表+红黑树(jdk1.8)

4. 以下ip地址中不属于私网地址的是:(C)

A. 192.168.1.26
B. 172.21.213.56
C. 127.2.0.1
D. 10.1.1.200

解析:
IP地址分为5类,其中A,B,C三类中各保留了3个区域作为私网地址,也就是局域网用的,私网地址不能在公网上出现,只能用在内部网路中,所有的路由器都不能发送目标地址为私网地址的数据报。
私网地址是:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0 ~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
127开头的ip地址是保留本地回环地址,不会出现在网络上的,不论是私网还是公网。

5. 以下排序算法中,最坏情况时间复杂度与其他选项不同的是(D)

A. 冒泡排序
B. 插入排序
C. 快速排序
D. 归并排序

解析:

6. 以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 (B)

解析:
首先,^表示匹配输入的开始,$表示匹配输入的结束
每个选项从前向后看,http都能够严格匹配
?表示匹配某元素0次或1次,这里四个选项都没有问题,能够匹配0次或1次字符s
接下来:严格匹配,//严格匹配两个//
接着往下看,[]表示字符集合,它用在正则表达式中表示匹配集合中的任一字符
A D 选项中的 [a-zA-Z\d] 表示匹配一个小写字母 或者 大写字母 或者 数字
B C 选项中的 \w 表示匹配字母数字或下划线(注意这里比A D中能多匹配下划线类型)
+表示匹配某元素1次或多次,到这里四个选项都能够完美匹配字符www
.可以匹配除了换行符\n \r外的任何字符
接下来我们看选项A,bilibili com video av都严格匹配,而 \D 表示匹配一个非数字字符而非数字字符,av后的数字是无法匹配成功的,A错误
B选项,\d匹配数字,{m,n}表示最少匹配m次,最多匹配n次,/?能匹配末尾的0个或1个/字符,B正确
C选项,*表示匹配某元素0次或多次,但 \w 并不能匹配字符 /,C错误
D选项,前面都对,错在最后的/+至少要匹配一个/,而原字符串最后并没有/

7. 以下设计模式的应用场景中,属于代理模式的选项有(C D)

A. 树形结构的遍历
B. 产品簇创建场景
C. 防火墙
D. CopyOnWriteList

解析:
JUC中与ArrayList有关的线程安全容器类​CopyOnWriteArrayList,在对数组进行remove()、clear()、set()和add()​操作时,在方法里先用ReentrantLock加锁​,再复制一个新数组,修改操作在新数组上完成,再将原数组指向到新数组中,最后解锁。这里的新数组就相当于一个代理

8. 由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数(B)

A. -126
B. -125
C. -32
D. -3

解析: 既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;

9. 深度为k的二叉树至多有几个结点(C)

A. 2^k
B. 2^(k-1)
C. 2^k-1
D. 2^k+1

解析:

10. 以下软件设计模式的应用场景中,属以下git命令中,用于显示工作区和当前分支文件的差异的命令是(D)

A. git diff
B. git diff HEAD HEAD^
C. git diff --cached
D. git diff HEAD

解析:
git diff:是查看 workspace 与 index 的差别的。
git diff --cached:是查看 index 与 local repositorty 的差别的。
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)

11. 以下哪些技术属于局域网技术(A D)

A. FDDI
B. ATM
C. ISDN
D. 令牌环

解析:
局域网的类型很多,
若按网络使用的传输介质分类,可分为有线网和无线网;
若按网络拓扑结构分类,可分为总线型、星型、环型、树型、混合型等;
若按传输介质所使用的访问控制方法分类,又可分为以太网、令牌环网、FDDI网和无线局域网等。其中,以太网是当前应用最普遍的局域网技术。
ATM是Asynchronous Transfer Mode(ATM)异步传输模式的缩写,是实现B-ISDN的业务的核心技术之一。ATM是以信元为基础的一种分组交换和复用技术。(广域网)

12. 线程的哪些资源可以共享(A C)

A. 堆
B. 栈
C. 静态变量
D. 存储器

解析:
线程共享资源有:
1 . 堆由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
2 . 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
3 . 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
4 . 文件等公用资源是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。

13. 下列哪个是建立TCP连接的正确流程:(A)

A. 客户端向服务器端发送SYN包;服务端向客户端发送SYN+ACK;客户端回复ACK。
B. 客户端向服务器端发送SYN包;服务端向客户端发送SYN+ACK。
C. 客户端向服务器端发送FIN;服务器端回复ACK,并进入wait状态;服务器端确认并发送FIN;客户端回复ACK。
D. 客户端向服务器端发送FIN;服务器端回复ACK,并进入wait状态;服务器端确认并发送FIN。

解析:
A 是TCP连接时的3次握手
C 是TCP断开时的4次挥手
有关SYN和ACK的部分:
https://blog.csdn.net/u014507230/article/details/45310847
https://blog.csdn.net/zzz_781111/article/details/4183743

14. 以下说法正确的是:(B)

A. 非静态方法的使用效率比静态方法的效率高。
B. 非静态方法不存在线程安全的问题。
C. 非静态方法可以直接通过类名.方法名的方法来调用。
D. 非静态方法中不可调用静态方法 。

15. 两个人抛硬币,规定第一个抛出正面的人必须穿女装,请问先抛的人穿女装的概率多大?(C)

A. 1/2
B. 1/3
C. 2/3
D. 5/6

解析:

16. 有限状态自动机能识别(B)

A. 上下文无关文法
B. 正规文法
C. 上下文有关文法
D. 短语文法

解析:
A. 下推自动机识别上下文无关文法
B. 有限状态自动机识别正规文法
C. 线性有限状态机(LBA) 识别上下文有关文法
D. 图灵机识别短语文法
参考链接: https://blog.csdn.net/tang_huan_11/article/details/7670268

17. 按照二叉树的定义,具有3个结点的二叉树有几种。(C)

A. 3
B. 4
C. 5
D. 6

解析:

18. 无向图G=(V,E),其中V={a,b,c,d,e,f} E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)} 对该图进行深度优先遍历,得到的顶点序列正确的是(D)

A. a,b,e,c,d,f
B. a,c,f,e,b,d
C. a,e,b,c,f,d
D. a,b,e,d,f,c

解析:
A.a,b,e,d,f,c(从a-b路线走)
B.a,c,f,d,e,b(从a-c路线走)
C.a,e,b,d,f,c或者a,e,d,f,c,b(从a-e路线走)

19. 如果文法G存在一个句子,满足下列条件 之一时,则称该文法是二义文法。(B C D)

A. 该句子的最左推导与最右推导相同
B. 该句子有两个不同的最左推导
C. 该句子有两棵不同的最右推导
D. 该句子有两棵不同的语法树

解析:
参考链接:https://blog.csdn.net/qq_33230935/article/details/78108309

20. 设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为(B)

A. s->next=p->next; p->next=-s;
B. q->next=s; s->next=p;
C. p->next=s->next; s->next=p;
D. p->next=s; s->next=q;

解析:
s->next=q->next;q->next=s

21. a - (b + c) * d + e / f 的逆波兰式是    abc+d*-ef/+

解析:
1、先根据表达式的运算法则的先后顺序进行树的构建(括号不参与构树)

2、逆波兰表达式也叫作后缀表达式 通过树的后序遍历得到结果

22. 当前发送帧数据为101010,发送方和接收方约定除数为1101,用循环冗余算法进行封装后,接收方拿到的数据是    101010011

解析:
CRC算法原理:https://blog.csdn.net/u010190210/article/details/80707698

23. 一个完全二叉树有870个节点 其叶子节点个数为    435

解析:
链接:
1层满二叉树节点数=2^1-1;
2层满 2^2-1;

9层满 2^9-1=511
10 1023
所以870个节点是一个10层的完全二叉树,且它的
第十层有870-511=359个叶子节点;
第九层有256个节点
其中180个节点有孩子节点(下一层的359个叶子)
剩下256-180=76个节点
总计:76+359=435各节点

24. 设某棵二叉树的中序遍历序列为cadb,前序遍历序列为acbd,这个二叉树的后序遍历序列是    cdba

解析:

25. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为    38,13,27,10,65,76,97

解析:
第1趟跑完
结果
[38, 65, 76, 13, 27, 10, 97]
第2趟跑完
结果
[38, 65, 13, 27, 10, 76, 97]
第3趟跑完
结果
[38, 13, 27, 10, 65, 76, 97]

26. 在TCP/IP网络中,TCP协议工作在    传输层 ,FTP协议工作在     应用层

解析:

参考链接:https://blog.csdn.net/qq_22238021/article/details/80279001

27. HTTP协议中的禁止访问(Forbidden)的状态码是     403

解析:
常见HTTP状态码
200 ok 服务器成功处理请求
301/302 重定向 请求的URL已经转移
304 未修改 客户缓存的资源是最新的 客户端使用缓存内容
403 Forbidden 禁止。服务器拒绝请求
404 NotFound 未找到资源
405 Method Not Allowed 不允许使用的方法

28. 在SQL查询时,如果去掉查询结果中的重复组,需使用   distinct   参数
29. 执行C语言程序段“y=1; x=5; while(x–); y++;”后,y的值为   2

解析:
while后面有分号

30. 对下列递归函数 int f(int n) { return((n==0)?1:f(n-1)+2);},函数调用f(3)的返回值是   7

解析:
f(3)=f(2)+2
f(2)=f(1)+2
f(1)=f(0)+2
f(0)=1
即 f(3)=1+2+2+2

31. 实现一个HTML语法检查器。HTML语法规则简化如下:
1. 标签必须闭合,可以由开始和结束两个标签闭合,如<div></div>,也可以自闭合,如<div />
2. 标签可以嵌套如<div><a></a></div>或者 <div><a/></div>,但是标签不能交叉:<div><a></div></a>是不允许的
3. 标签里可以有属性如<div id=“a<1”></div>,属性的规则是name=“任意非引号字符”,多属性声明之间必须有空格,属性声明不符合规则时,整段HTML都算语法错误输入文本只会出现字母a-z和<>"=
请用任意语言实现一个HTML语法检查器函数,有语法错误返回1,没有语法错误返回0

参考代码:
作者:邂逅的瞬间(牛客网)
代码(JAVA):

import java.util.*;
import java.util.Stack;public class Main{public static void main(String[] args){Scanner input = new Scanner(System.in);String str = input.nextLine();int result = 1;if(solve(str)) result = 0;System.out.println(result);}public static boolean solve(String str){str = str.trim(); //消除前后的空格if(str == null && str.length() == 0) return false;Stack<String> stack = new Stack<>(); //记录标签的入栈顺序int i = 0;while(i < str.length()){if(i == 0 && str.charAt(i) != '<') return false; //第一个字符不是<,则表明不是以标签开始if(i == str.length() - 1 && str.charAt(i) != '>') return false; //最后的字符不是>,则表明不是以标签结束if(str.charAt(i) == '<'){int j = i + 1;//'<'之后如果是标签,紧跟在'<'之后的字符必定是a-z或者'/'if(j < str.length() && (str.charAt(j) >= 'a' && str.charAt(j) <= 'z' || str.charAt(j) == '/')){//获取标签字符串<xx xx="">boolean inStr = false; //是否处于字符串"里面while(j < str.length()){if(!inStr && str.charAt(j) == '>'){  //标签结束if(!checkAtt(str.substring(i + 1, j), stack)) //传入的标签已经去除'<'和'>'字符return false; //属性有语法错误i = j;break;}else if(str.charAt(j) == '"') inStr = !inStr;j++;}}}i++;}if(stack.isEmpty()) return true;return false;}public static boolean checkAtt(String str, Stack<String> stack){  //处理标签里面的属性if(str == null && str.length() == 0) return true;int type = 0; //记录标签的类型,0为开始标签<x>,1为结束标签</x>,2为自闭合标签<x/>if(str.charAt(0) == '/'){  //判断是否是结束标签if(!(str.length() >= 2 && str.charAt(1) >= 'a' && str.charAt(1) <= 'z')) return false; //结束标签的'/'之后必须紧跟字母type = 1; //为结束标签str = str.substring(1);}str = str.trim(); //去除字符串后面的空格if(str.charAt(str.length() - 1) == '/'){ //判断是否是自闭合标签if(type == 1) return false; //不能同时为结束标签,又是自闭合标签type = 2;str = str.substring(0, str.length() - 1);// 去除最后的'/'}int i = 0;//获取标签的名字,并判断是否符合闭合规则while(i < str.length() && str.charAt(i) != ' ') i++;String name = str.substring(0, i);if(type == 0) stack.push(name);else if(type == 1){if(!stack.isEmpty() && stack.peek().equals(name)) stack.pop();else return false;}//判断其属性是否有语法错误boolean hasAtt = false; //判断该标签是否有属性,针对结束标签不能有属性boolean hasBlank = false; //判断属性name之前是否有空格while(i < str.length()){while(i < str.length() && str.charAt(i) == ' ') {hasBlank = true; i++;}while(i < str.length() && str.charAt(i) != '=' && str.charAt(i) != ' ') i++; //获取属性名字if(i < str.length() && str.charAt(i) == '='){ //如果没有'='说明不是属性,不进行处理i++;if(i >= str.length() || str.charAt(i) != '"') return false; //'='之后必须是双引号i++;while(i < str.length() && str.charAt(i) != '"') i++; //寻找下一个双引号if(i >= str.length()) return false;if(!hasBlank) return false; //属性之前没有空格,语法错误}hasBlank = false;hasAtt = true;i++;}if(type == 1 && hasAtt) return false; //结束标签不能有属性return true;}
}
试题内容来自牛客网:https://www.nowcoder.com/profile/4821886/test/28859685/362301
部分解析来自牛客网题解

哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端)第一套笔试题相关推荐

  1. 哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端)第三套笔试题

    1. 现有如下代码段: x = 2;while(x<n/2) x = 2*x; 假设n>=0,则其时间复杂度应为(A) A. O(log2(n)) B. O(nlog2(n)) C. O( ...

  2. 哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端) 第二套笔试题

    1. 有4种颜色的球,白的有13个,绿的有11个,黑的有18个,红的有25个,至少取出多少个球,才能保证有15个颜色一样(A) A. 52 B. 53 C. 54 D. 55 解析: 理解成至少取出多 ...

  3. 如何看待2023年秋招技术岗哀鸿遍野?

    昨天在知乎上看到个提问"如何看待2023年秋招技术岗哀鸿遍野?". 最近有很多读者都找我咨询秋招问题,发现同学们的秋招之路都不是很顺,不是个人的问题,而是大环境的问题,今年秋招形势 ...

  4. 2023年秋招技术岗---哀鸿遍野!

    昨天在知乎上看到个提问"如何看待2023年秋招技术岗哀鸿遍野?". 最近有很多读者都找我咨询秋招问题,发现同学们的秋招之路都不是很顺,不是个人的问题,而是大环境的问题,今年秋招形势 ...

  5. 不可错过的2019秋招CV岗心得!原来拿offer也是有套路的

    来源:CSDN博客,遵循 CC 4.0 BY-SA 版权协议 作者:Lovewxy_不再回忆 链接:https://blog.csdn.net/weixin_37627840/article/deta ...

  6. 2019秋招算法岗复盘 | 已收割腾讯、华为等offer

    点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载自:Mcrostrong 一.背景介绍 我这几天就要去 ...

  7. 面经+经验分享|2019秋招算法岗复盘

    一.背景介绍 我这几天就要去公司入职了,岗位是人工智能工程师,曾参加了2019年校园招聘.转眼间,2020届校园招聘也马上开始了,我想把自己找工作的一些经历分享出来,算是对我2018年下半年找工作经验 ...

  8. 2017秋招-技术岗-恒生电子

    时间:2017年10月21日~2017年10月24日 地点:清华附近的红杉酒店 过程 (1)在线测验 时间:2017年10月21日 题目涵盖:基础.技术.编程.智力.算法 题目难度:一般 (2)线程面 ...

  9. 链家网php技术笔试题,链家网 18秋招技术岗模拟测试

    很感谢牛客网这个平台,学到了很多知识,希望牛客网越做越好,希望大家都能心想事成~~ 单选题 1.在数据库设计过程中,关于建立索引,以下说法错误的是() A.建立索引的最大作用是,可以提高数据录入的效率 ...

  10. 【笔试】春招秋招技术岗笔试必考题归纳总结

    目录 一.数据结构必考 1. 排序算法 1)什么时候用什么排序算法类 2)排序算法的稳定性 3)排序算法的时间复杂度&空间复杂度 4)不同时间复杂度的大小关系 5)时间复杂度与空间复杂度的关系 ...

最新文章

  1. [面试]future模式
  2. AI替你接电话、老电影变4k画质、基于自研芯片服务器,百度智能云一口气发了20款产品...
  3. 迟来的2017年计划
  4. 程序员面试题精选100题(24)-栈的push、pop序列[数据结构]
  5. 机器人演唱邓丽君是真的吗_体验官|炒菜机器人真的实用吗
  6. 查阅文献时向原作者发邮件要文献的简单模板
  7. linux nameserver导致的故障
  8. linux 命令 ppt,Linux基本命令()讲解.ppt
  9. 最长回文串_第78天——第78题(最长回文串 )
  10. 风控策略和模型的区别_风控策略概述
  11. 【英语学习】【WOTD】brummagem 释义/词源/示例
  12. java检查变量是否定义_JavaScript检查变量是否存在(已定义/初始化)
  13. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法
  14. python学生可以学吗_如何劝学生别浪费时间学Python
  15. atitit.软件开发概念--过滤和投影 数据操作
  16. MIS--信息管理系统
  17. CRM系统有哪些效果?
  18. 论文阅读|用于不同问题的MADDPG算法框架系列论文汇总
  19. 推荐六款逆天好用的黑科技微信小程序,手机内存再小也可以任性耍
  20. Docker常用命令和实战演练

热门文章

  1. 调试M2det算法train自己的数据(VOC2007)
  2. 【IT项目管理】第8章 习题
  3. VS2022编译librtmp制作rtmp.lib用于安装windows版本的python-librtmp 0.3.0
  4. libRTMP 整体说明
  5. 【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)——人脸识别算法
  6. 随机数生成器与线性同余法产生随机数
  7. 【matlab_郭彦甫课后练习题答案】
  8. 数据库系统常用的数据模型
  9. m6000查看端口状态_M6000日常查看维护命令.doc
  10. 网络攻防技术——端口扫描