首页 > 其他分享 >字节跳动面试题+答案,全答对的 30K 以上

字节跳动面试题+答案,全答对的 30K 以上

时间:2023-07-06 17:00:30浏览次数:53  
标签:面试题 16 结果 答对 地址 异或 30K 答案 CPU

首先看问题(答案见后面)

1、变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?

A.1

B.-1

C.263+262+…+22+21+2^0

D.–(263+262+…+22+21+2^0)

2、TCP建立连接的三次握手中,第二次握手发送的包会包含的标记,最正确的描述是?

A.ACK

B.SYN,ACK

C.SYN,PSH

D.SYN

3、栈是先进后出的数据结构。给定一个大小为3的初始状态为空的栈,已知一组数据经过这个栈后,最终的数据顺序依次为:1 3 2 4 ,问原始的进栈数据不可能是以下的那组?

A.2 3 1 4

B.1 4 2 3

C.4 2 3 1

D.3 1 2 4

4、电路中其中三个门电路非门,与门,或门的示意图及性质分别如下所示:

非门,使输入的电平编程相反电平:

与门,使输入两个高电平,输出高电平,其他情况下输出低电平:

或门。当且仅当输入两个低电平时,输出低电平,否则输出高电平:

现在对以下的电路中的 A 和 B 引脚分别持续输入一个高电平( 1 )和一个低电平( 0 ),问最终电路的引脚 C 、 D 、 E 、 F 分别输出的电平是什么?

A.C=0,D=1,E=0,F=1

B.C=1,D=1,E=1,F=0

C.C=1,D=1,E=0,F=1

D.C=0,D=0,E=0,F=1

5、操作系统中可以使用LRU(least recently used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间又不足,则会按照最近访问时间进行排序,并将最老的数据淘汰,假设现在内存空间大小为5,原本内存中没有数据,对内存中数据的访问顺序如下:1,2,5,3,4,6,1,4,3,6,7,8,3,9

A.缺页次数:9

B.缺页次数:4

C.缺页次数:10

D.缺页次数:5

6、下面的程序中, int32-t 表示一个有符号的 32 位整数,程序的入口是 main 函数,问最终 res 的结果是多少?

A.–(231+230+…+22+21+2^0)

B.0

C.-1

D.程序会死循环

7、给定一个如下所示的图,图中的边代表了两个节点间的距离。如果使用迪杰斯特拉算法对节点 1 和节点 8 求最短路径,则当完成计算时,算得节点1 到节点 8 的最短路径是?同时当完成节点 1 到节点 8 的最短路径计算时,节点 1 到哪些节点(除了 1 和 8 )的最短路径也已经计算完毕?( )

 

 

8、x86 CPU在实模式下解释代码时看到一个地址为2330H:5041H,请问它最终在内存中要找的地址是多少?

A.28341H

B.5374H

C.52740H

D.7371H

9、有三个程序J1,J2,J3。程序在单核CPU执行时,三个程序需要的资源如下所示:

优先级高的程序可以抢占优先级低的程序的CPU,但不能抢占IO。问当所有任务执行完毕时,共消耗的时间是?

A.170ms

B.160ms

C.120ms

D.130ms

10、给定整数m以及n各数字A1,A2,…An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大于m的有多少个。

答案仅供参考

1、答案解析:正确答案: B

(1)a+b的16进制表示为:OxFFFFFFFFFFFFFFF(16位F),转为2进制为111……111(64位1,每个F->4位2)。

(2)有符号数:是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。

(3)计算机中负数是以补码的形式保存的,将补码转换成原码的计算方式如下:

①. 对于正数,原码与补码相同。

②.对于负数,将补码除符号位之外,按位取反,末位加1,即得到原码。

(4)a + b = 111……111(64位1)

取反:100……000(1位1,后面63位0)

加一:100……00(中间62位0)

10进制:-1。

2、答案解析:正确答案: B

附上tcp建立连接的三次握手过程图(第二次握手包含的标记是SYN,ACK),所以选B:

 

 

3、答案解析:正确答案: C

注意栈的大小为3

4、答案解析:正确答案: D

 

 

5、答案解析:正确答案: C

内存空间5,所以前5个都是缺页的,因为内存空间中并没有这五个,然后6置换1,1置换2,然后4.3.6都有不用置换,7置换5,8置换4,3有了,然后9置换3,总共十次。

6、答案解析:正确答案: D

以char为例

f(1,0):

a=2 b=-1

a=3 b=-2

a=127 b=-126

a=128 b=-127 溢出–>a=-128 b=-127 char范围:-128~127

return a+b:-128-127实际上是1(char范围),继续循环

而原例为int_32t,临界情况 a+b: -232+(-232+1)=1,也继续循环。

因此死循环。

7、答案解析:正确答案: C

初始状态:路径长度0:(1)

路径长度1:(1,5)

路径长度2:(1,3)

路径长度3:(1,3,4),(1,2)

路径长度4:(1,5,8)

节点1到8的最短路径长度为4; 2,3,4,5节点的最短路径已经计算完毕; 其中到5节点的最短路径最小为1;

应该选C,感觉出题人玩文字游戏把自己绕进去了

8、答案解析:正确答案: A

实模式下内存空间的访问

8086处理器(CPU)内的寄存器都是16位的,地址线上的地址由CPU提供。CPU用两个16位的值合成一个20位的值:将一个16位的值乘以16(相当于这个16位的值保存在20位寄存器的低16位中,然后将低16位往高位移动了4位)再加上另一个16位的值。将这个由2个16位合成的值提供给20根地址线作为访问内存的地址值。被乘以16的那个值被称为段基址,没有被乘以16的那个值被称为偏移地址。

CPU在实模式下,段寄存器中的值就是段基址,如果想要通过汇编程序访问某个内存单元,那么就需要指定一个段寄存器和一个偏移地址或以“段基址值:偏移地址值”的格式。CPU会将段寄存器的值乘以16再与偏移地址相加后,才将这个结果提供给地址线;用段基址和偏移地址的形式给出的表达式,CPU也会给段基址乘以16与偏移地址相加后,才将这个结果提供给地址线。

Figure 2. 实模式下访问内存(得出内存地址)的方式

这就是说,在汇编程序中,得用段基址:偏移地址的方式访问内存,因为CPU形成内存地址的方式是“段基址* 16 + 偏移地址”。

按照“段:偏移地址”的方式访问内存是CPU对内存的一种管理方式

9、答案解析:正确答案: D

因为优先级高的程序可以抢占优先级低的程序的CPU,但不能抢占IO,

所以J1在CPU之后不能抢占J2的IO,J2在IO之后可以抢占J3的CPU。

CPU:J1 40ms + J3 10ms + J2 20ms +J1 20ms

IO:J2 50ms + J1 60ms + J3 20ms

所以共消耗时间为130ms,选D。

10、答案解析:

直接计算肯定是超时的,所以这问题不能使用暴力破解,考虑到从高位到地位,依次进行位运算,如果两个数异或结果在某高位为1,而m的对应位为0,则肯定任何这两位异或结果为1的都会比m大。

由此,考虑使用字典树(TrieTree)从高位到第位建立字典,再使用每个元素依次去字典中查对应高位异或为1, 而m为0的数的个数,相加在除以2既是最终的结果;直接贴出代码如下,非原创,欢迎讨论;

补充:queryTrieTree在搜索的过程中,是从高位往低位搜索,那么,如果有一个数与字典中的数异或结果的第k位大于m的第k位,那么该数与对应分支中所有的数异或结果都会大于m, 否则,就要搜索在第k位异或相等的情况下,更低位的异或结果。queryTrieTree中四个分支的作用分别如下:

  1. aDigit=1, mDigit=1时,字典中第k位为0,异或结果为1,需要继续搜索更低位,第k位为1,异或结果为0,小于mDigit,不用理会;
  2. aDigit=0, mDigit=1时,字典中第k位为1,异或结果为1,需要继续搜索更低位,第k位为0,异或结果为0,小于mDigit,不用理会;
  3. aDigit=1, mDigit=0时,字典中第k位为0,异或结果为1,与对应分支所有数异或,结果都会大于m,第k位为1,异或结果为0,递归获得结果;
  4. aDigit=0, mDigit=0时,字典中第k位为1,异或结果为1,与对应分支所有数异或,结果都会大于m,第k位为0,异或结果为0,递归获得结果;

 

 

 

 

 

更多面试题

标签:面试题,16,结果,答对,地址,异或,30K,答案,CPU
From: https://www.cnblogs.com/fcjedorfjoeij/p/17532685.html

相关文章

  • 一套比较完整的字节面试题,包含计算机网络、操作系统、前端等
    一、算法和数据结构 实现一个函数,判断两个给定的字符串是否为异构字符串。异构字符串是指由相同字符但顺序不同的字符串。例如,“abb”和“bab”就是异构字符串。答案:functionisIsomorphic(str1,str2){if(str1.length!==str2.length){returnfalse;}......
  • 杭州网易面试题___整理汇总
    2023-5-8   网易面试 1.自我介绍 2.项目介绍 3.项目流程,工作负责的内容 4.项目出现风险导致测试时间被压测怎么处理 5.接口测试怎么做的 6.测试环境怎么部署的 7.postman里面的断言有哪些,postman里面的环境变量是个什么概念,postman里面的runner有用过吗 8.有做过压测吗......
  • 面试题 16.07. 最大数值 ——一种基于乘法和位运算的解题思路
    剧透警告,没写过的勿触题目:编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。qwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqqwqq......
  • “金九银十”和秋招通过率高达 95% 的 Android面试题集锦,你确定不来看看吗?
    前言已经进入七月份了,职场上的“金三银四”也早已经结束。对于求职者来说,面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,也可能存在面试焦虑。就今年的IT行业来说,可能真的根本没有所谓的“金三银四”或是“金九银十”。各大招聘网站或者软件上不管是大厂还是中小公司看似挂个......
  • 金九银十跳槽涨薪Java面试题!568页真题+答案解析,大厂都在考
    2023年一半又过去了,各大企业的招聘也又开始大量放岗了,各位苟着的小伙伴们要抓住机会了! 但很多小伙伴对面试不够了解,不知道如何准备,对面试环节的设置以及目的不了解,尤其是面试题还很难,有些还偏重实战,因此成功率不高。要知道目前校招生面试的成功率低于1%,而社招的面试成功率也......
  • java常见面试题分析及答案
    new一个object对象占多少字节对象头加实例数据16个字节java反射的优缺点Java反射的优点1.增加程序的灵活性,避免将程序写死到代码里2.代码简洁,提高代码的复用率,外部调用方便3.对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法Java反射......
  • 【阿里二面面试题】说说你对 Raft 算法的理解?
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家✌......
  • 1.HTTP面试题
    1.HTTP基本概念1.1HTTP是什么 HTTP(HyperTextTransferProtocol)是超文本传输协议。它是一种双向传输协议。具体来说HTTP是一种在计算机世界里,专门在[两点]之间[传输]文字、图片、音频、视频等[超文本]数据的[约定和规范]。 1.2HTTP常见状态码有哪些 1.3HTTP常见字......
  • 面试题-Spring 面试集
    Spring面试集基于SpringFramework4.x总结的常见面试题,系统学习建议还是官方文档走起:https://spring.io/projects/spring-framework#learn一、一般问题开发中主要使用Spring的什么技术?IOC容器管理各层的组件使用AOP配置声明式事务整合其他框架Spring有哪些优......
  • 面试题-SpringBoot
    概述说说SpringBoot和Spring的关系springboot我理解就是把springspringmvcspringdatajpa等等的一些常用的常用的基础框架组合起来,提供默认的配置,然后提供可插拔的设计,就是各种starter,来方便开发者使用这一系列的技术,套用官方的一句话,spring家族发展到今天,已经......