Java面试-企业实战面试题4

1. 选择题

1.1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB ,中序遍历是:CDFEGHAB ,
则后序遍历结果为:( D )
A. CFHGEBDA
B. CDFEGHBA
C. FGHCDEBA
D. CFHGEDBA
知识点
对于二叉树的遍历方式一般分为三种先序、中序、后序三种方式:
先序遍历(根左右)
若二叉树为空,则不进行任何操作:否则1、访问根结点。
2、先序方式遍历左子树。
3、先序遍历右子树。
中序遍历 (左根右)
若二叉树为空,则不进行任何操作:否则
1、中序遍历左子树。
2、访问根结点。
3、中序遍历右子树。
后序遍历 (左右根)
若二叉树为空,则不进行任何操作:否则
1、后序遍历左子树。
2、后序遍历右子树。
3、放问根结点。
因此,根据题目给出的先序遍历和中序遍历,可以画出二叉树:在这里插入图片描述
1.2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A. 有序数组
B. 有序链表
C. AVL 树
D. Hash 表
知识点:在这里插入图片描述
平衡二叉树的查找,插入和删除性能都是 O(logN) ,其中查找和删除性能较好;哈希表的查找、插入和删除性能都是 O(1) ,都是最好的。所以最后的结果选择: CD

1.3 下列排序算法中,哪些时间复杂度不会超过 nlogn?(BC)
A. 快速排序
B. 堆排序
C. 归并排序
D. 冒泡排序
知识点在这里插入图片描述
根据上图,观察平均情况,最好最差情况的时间复杂度基本可以知道答案了,最后结果选择: BC。

1.4 初始序列为 1 8 6 2 5 4 7 3 一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应
的二叉树中序遍历序列为:( A )
A. 8 3 2 5 1 6 4 7
B. 3 2 8 5 1 4 6 7
C. 3 8 2 5 1 6 7 4
D. 8 2 3 5 1 4 7 6
初始化序列:1 8 6 2 5 4 7 3,,小根堆就是要求结点的值小于其左右孩子结点的值,左右孩子的大小没有关系,
那么小根堆排序之后为:1 2 4 3 5 6 7 8;
中序遍历:左根右,故遍历结果为:8 3 2 5 1 6 4 7
故最后选择的结果: A1. 当 n = 5 时,下列函数的返回值是:(A)

int foo(int n) 
{ 
if(n<2)return n; 
return foo(n-1)+foo(n-2); 
}

A.5 B.7 C.8 D.1

1.5 S 市 A ,B 共有两个区,人口比例为 3:5 ,据历史统计 A 区的犯罪率为 0.01% ,
B 区为 0.015% ,现有一起新案件发生在 S 市,那么案件发生在 A 区的可能性有多大?
(C)
A.37.5%
B.32.5%
C.28.6%
D.26.1%

这道题首先得了解犯罪率是什么?犯罪率就是犯罪人数与总人口数的比。因此可以直接得出公式:( 3 0.01% ) / ( 3 + 5 * 0.015% ) = 28.6% 当然如果不好理解的话,我们可以实例化,比如 B 区假设 5000 人,A 区 3000 人,A 区的犯罪率为 0.01%,那么 A 区犯罪人数为 30 人,B 区的犯罪率为 0.015% ,那么 B 区的犯罪人数为75 人 ,求发生在 A 区的可能性, 就是说 A 区的犯罪人数在总犯罪人数的多少,也就是 30/(30+75)=0.2857当然,也可以回归到我们高中遗忘的知识: 假设 C 表示犯案属性 在 A 区犯案概率:P(C|A)=0.01% 在 B区犯案概率:P(C|B)=0.015% 在 A 区概率:P(A)=3/8 在 B 区概率:P(B)=5/8
犯案概率:P©=(3/80.01%+5/80.015%) 根据贝叶斯公式:P(A|C) = P(A,C) / P© =
[P(C|A) P(A)] / [ P(C|A) P(A)+ P(C|B) P(B) ] 也可以算出答案来 故,最后结果选择为: C

1.6 Unix 系统中,哪些可以用于进程间的通信?(ABCD )
A.Socket
B.共享内存
C.消息队列
D.信号量

知识点 管道(Pipe)及有名管道(named
pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux
除了支持 Unix 早期信号语义函数 sigal 外,还支持语义符合 Posix.1 标准的信号函数
sigaction(实际上,该函数是基于 BSD 的,BSD 为了实现可靠信号机制,又能够统一对外接口,用 sigaction
函数重新实现了 signal 函数); 报文(Message)队列(消息队列):消息队列是消息的链接表,包括 Posix 消息队列
system V
消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用 IPC
形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由 Unix 系统的
BSD分支开发出来的,但现在一般可以移植到其它类 Unix 系统上:Linux 和 System V 的变种都支持套接字。
故最后选择的结果为: ABCD

1.7 静态变量通常存储在进程哪个区?( C )
A.栈区
B.堆区
C.全局区
D.代码区
静态变量的修饰关键字:static,又称静态全局变量。故最后选择的结果为: C

1.8 如何提供查询 Name 字段的性能( B )
A. 在 Name 字段上添加主键
B. 在 Name 字段上添加索引
C. 在 Age 字段上添加主键
D. 在 Age 字段上添加索引

1.9 IP 地址 131.153.12.71 是一个(B)类 IP 地址
A.A B.B C.C D.D
知识点在这里插入图片描述
1.10 浏览器访问某页面,HTTP 协议返回状态码为 403 时表示:( B )
A. 找不到该页面
B. 禁止访问
C. 内部服务器访问
D. 服务器繁忙

1.11 如果某系统 15*4=112 成立,则系统采用的是( A )进制
A.6 B.7 C.8 D.9
这题因为是选择题,我们可以直接从 A 的选项开始,假设是 6 进制的,我们把等式 15 4 = 112 转为十进制,就是 11 4 = 44,最后验证等式是否成立,明显等式是成立的,因此答案已经出来了,选择 A 。
当然我们也可以假设是 X 进制,且我们知道 X 大于 5, 则:(x+5)4 = xx +x +2,所以最后计算的结果也为6。

1.12 TCP 和 IP 分别对应了 OSI 中的哪几层?(CD)
A. Application layer
B. Presentation layer
C. Transport layer
D. Network layer在这里插入图片描述
1.13 一个栈的入栈序列是 A,B,C,D,E,则栈的不可能的输出序列是?(C)
A.EDCBA
B.DECBA
C.DCEAB
D.ABCDE
堆栈分别是先进后出,后进先出,
选项 a 是 abcde 先入栈,然后依次出栈,正好是 edcba
选项 b 是 abcd 先依次入栈,然后 d 出栈, e 再入栈, e 出栈
选项 c 是错误的,不可能 a 先出栈
选项 d 是 a 入栈,然后 a 出栈;b 再入栈, b 出栈.依此类推最后的结果选择 C。

1.14 同一进程下的线程可以共享以下?(BD)
A.stack
B.data section
C.register set
D.file fd

知识点 线程共享的内容包括:
1.进程代码段
2.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)
3.进程打开的文件描述符、
4.信号的处理器、
5.进程的当前目录和
6.进程用户 ID 与进程组 ID 线程独有的内容包括:
1.线程 ID
2.寄存器组的值
3.线程的堆栈
4.错误返回码
5.线程的信号屏蔽码所以选择为 BD。

1.15 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
A.123
B.231
C.321
D.213

1.16 递归函数最终会结束,那么这个函数一定?(B)
A. 使用了局部变量
B. 有一个分支不调用自身
C. 使用了全局变量或者使用了一个或多个参数
D. 没有循环调用

1.17 编译过程中,语法分析器的任务是(BCD)
A. 分析单词是怎样构成的
B. 分析单词串是如何构成语言和说明的
C. 分析语句和说明是如何构成程序的
D. 分析程序的结构

知识点
1.词法分析(lexical analysis)
词法分析是编译过程的第一个阶段。这个阶段的任务是从左到右的读取每个字符,然后根据构词规则识别单
词。词法分析可以用 lex 等工具自动生成。
2.语法分析(syntax analysis)
语法分析是编译过程的一个逻辑阶段。语法分析在词法分析的基础上,将单词序列组合成各类语法短语,如
“程序”,“语句”,“表达式”等等。语法分析程序判断程序在结构上是否正确。
3.语义分析(semantic analysis)
属于逻辑阶段。对源程序进行上下文有关性质的审查,类型检查。如赋值语句左右端类型匹配问题。
所以 BCD 都属于词法分析,选择结果为 BCD。

1.18 同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进
B.忙则等待
C.有限等待
D.让权等待

1.19 进程进入等待状态有哪几种方式?(D)
A. CPU 调度给优先级更高的线程
B. 阻塞的线程获得资源或者信号C. 在时间片轮转的情况下,如果时间片到了
D. 获得 spinlock 未果

1.20 设计模式中,属于结构型模式的有哪些?(BC)
A. 状态模式
B. 装饰模式
C. 代理模式
D. 观察者模式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值