整理了几道字节跳动真题,来试试自己水平有多厉害吧,每题还有答案和详细解答哦。

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)

(1)a+b的16进制表示为:0xFFFFFFFFFFFFFFF(16位F),转为2进制为1111111111111111。
(2)有符号整数是针对2进制而言的,最高位代表符号位,其中“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。
(3)计算机中的负数是以补码的形式保存的,将补码转换成原码方式为:除符号位之外,按位取反,末尾+1,所以a+b=-1。
答案:B

2、在TCP建立三次握手过程中,关于第二次握手发送的标记,最正确的描述是?

A:ACK         B:SYN,ACK         C:SYN,PSH         D:SYN

答案:B。附上TCP建立连接的三次握手过程图。


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

A:2314
       B:1423
       C:4231
       D:3124

答案:C。本题考栈的进出规则,注意题中规定栈的初始大小为3。

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

A:缺页次数:9
       B:缺页次数:4
       C:缺页次数:10
       D:缺页次数:5

答案:C。原本内存中没有数据,直到读满数据,每一次读取数据都是缺页,共5次。
第一次读满数据的顺序为:1,2,5,3,4。
读取6为新数据,淘汰1数据序列为2,5,3,4,6————第6次缺页
读取1为新数据,淘汰2数据序列为5,3,4,6,1————第7次缺页
读取4为已有数据,注意更新数据序列为5,3,6,1,4
读取3为已有数据,注意更新数据序列为5,6,1,4,3
读取6为已有数据,注意更新数据序列为5,1,4,3,6
读取7为新数据,淘汰5数据序列为1,4,3,6,7————第8次缺页
读取8为新数据,淘汰1数据序列为4,3,6,7,8————第9次缺页
读取3为已有数据,注意更新数据序列为4,6,7,8,3
读取9为新数据,淘汰4数据序列为6,7,8,3,9————第10次缺页

5、有三个程序J1,J2,J3。程序在单核CPU执行时,三个程序需要的资源如下所示:(优先级高的程序可以抢占优先级低的程序的CPU,但不能抢占IO。问当所有任务执行完毕时,共消耗的时间是?)

程序 CPU占用时间(ms) IO占用时间(ms) 执行顺序 优先级
J1 40 60 先CPU后IO
J2 20 50 先IO后CPU
J3 30 20 先CPU后IO

A:170ms B:160ms C:120ms D:130ms

答案:D。

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

import java.io.*;public class Main {static class TrieNode {long count=1;TrieNode[] next = new TrieNode[2];}private static int read(StreamTokenizer st) throws IOException {st.nextToken();return (int) st.nval;}public static void main(String[] args) throws IOException {StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));//读取n,mint n = read(st);int m = read(st);//读取数组int[] arr = new int[n];for(int i=0; i<n; i++){arr[i] = read(st);}//构建字典树TrieNode root = build(arr);//统计(查询字典树)long total=0;for(int i=0; i<arr.length; i++){total += query(root, arr[i], 16, m);}System.out.println(total/2);}private static long query(TrieNode node, int a, int idx, int m){if(node==null)return 0;TrieNode cur = node;for(int i=idx; i>=0; i--){int aDigit = (a>>i)&1;int mDigit = (m>>i)&1;if(aDigit==1 && mDigit==1){if(cur.next[0]==null)return 0;cur = cur.next[0];}else if(aDigit==0 && mDigit==1){if(cur.next[1]==null)return 0;cur = cur.next[1];}else if(aDigit==1 && mDigit==0){long p = cur.next[0]==null? 0 : cur.next[0].count;long q = query(cur.next[1], a, i-1, m);return p+q;}else if(aDigit==0 && mDigit==0){long p = cur.next[1]==null? 0 : cur.next[1].count;long q = query(cur.next[0], a, i-1, m);return p+q;}}return 0;}private static TrieNode build(int[] arr){TrieNode root = new TrieNode();for(int i=0; i<arr.length; i++){TrieNode cur = root;//从高位插入字典树for(int idx=16; idx>=0; idx--){int digit = (arr[i]>>idx)&1;if(cur.next[digit]==null){cur.next[digit] = new TrieNode();}else{cur.next[digit].count++;}cur = cur.next[digit];}}return root;}
}

7、给定一个m * n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
       示例:输入[[1,2,3],[4,5,6],[7,8,9]] 返回值[1,2,3,6,9,8,7,4,5]

import java.util.*;
public class Solution {public ArrayList<Integer> spiralOrder(int[][] matrix) {ArrayList<Integer> res = new ArrayList<>();if(matrix.length == 0)return res;int top = 0, bottom = matrix.length-1;int left = 0, right = matrix[0].length-1;while( top < (matrix.length+1)/2 && left < (matrix[0].length+1)/2 ){//上面  左到右for(int i = left; i <= right; i++){res.add(matrix[top][i]);}//右边 上到下for(int i = top+1; i <= bottom; i++){res.add(matrix[i][right]);}//下面  右到左for(int i = right-1; top!=bottom && i>=left; i--){res.add(matrix[bottom][i]);}//左边 下到上for(int i = bottom-1; left!=right && i>=top+1; i--){res.add(matrix[i][left]);}++top;--bottom;++left;--right;}return res;}
}

8、给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,求所有的路径中最小的路径和。
       示例:输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]] 返回值12

import java.util.*;
public class Solution {/*** * @param matrix int整型二维数组 the matrix* @return int整型*/public int minPathSum (int[][] matrix) {// write code hereint n = matrix.length;int m = matrix[0].length;int[][] dp = new int[n][m];dp[0][0] = matrix[0][0];for(int i=1;i<m;i++)dp[0][i] = dp[0][i-1] + matrix[0][i];for(int i=1;i<n;i++)dp[i][0] = dp[i-1][0] + matrix[i][0];for(int i=1;i<n;i++)for(int j=1;j<m;j++)dp[i][j] = Math.min(dp[i][j-1],dp[i-1][j]) + matrix[i][j];return dp[n-1][m-1];}
}

9、给定一个十进制数M以及需要转换的进制数N。将十进制数M转化为N进制数。


import java.util.*;
public class Solution {/*** 进制转换* @param M int整型 给定整数* @param N int整型 转换到的进制* @return string字符串*/public String solve (int M, int N) {// write code hereif(M==0){return "0";}int sign = 1;if(M<0){sign = -1;M=-M;}StringBuilder sb = new StringBuilder();while(M>0){int k = M%N;if(k>=10){sb.append((char)(k-10+'A'));}else{sb.append(k);}M=M/N;}if(sign==-1){sb.append('-');}return sb.reverse().toString();//将字符串反过来,然后加上负号}
}

10、把只包含质因子2、3和5的数称作丑数。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。


public class Solution {public int GetUglyNumber_Solution(int index) {if(index <= 0)return 0;int p2=0,p3=0,p5=0;int[] result = new int[index];result[0] = 1;//for(int i=1; i < index; i++){  result[i] = Math.min(result[p2]*2, Math.min(result[p3]*3, result[p5]*5));if(result[i] == result[p2]*2)p2++;if(result[i] == result[p3]*3)p3++;if(result[i] == result[p5]*5)p5++;}return result[index-1];}
}

上面的笔试题你做对了几道?如果你觉得看得不过瘾,关注我,后续会给同学们分享更多大厂笔试真题。


xDroid——让安卓应用运行在Linux平台上

10道字节跳动C++/Java笔试真题你能做对几道?3道就赢了80%的竞争者(含答案)相关推荐

  1. 12月最新的31道字节跳动内部Java面试题都会的话,你也可以去面试!

    前言 这里整理了部分较为重点的内容,而且对于答案有困惑,补充了解释内容,便于理解. 一.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? java虚拟机是执行字 ...

  2. sql怎么实现取当前数据以及累计7天数据_年薪60万+大佬吐血整理字节跳动大数据面试真题...

    字节的面试难度一直很高,所以一直是我想攻克的目标,定下这个目标后就去准备收集了几十个字节实际面经,还包括面试前都需要做哪些准备.只能说是工欲善其事必先利其器,经过这些周全的准备,最终的面试还是很顺利的 ...

  3. 在java中3.14156d表示_2006年9月计算机等级考试二级Java笔试真题

    一.选择题(每小题2分,共70分)下列各题A).B).C).D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分.(1)下列选项中不符合良好程序设计风格的是___ ...

  4. 字节跳动Android面试全套真题解析在互联网火了,含泪整理面经

    前言 前面一篇文章分享了最近整理的大家伙的面试经历总结,有兴趣可以去翻看一下.这位去百度面试的小A同学的面试经历很有趣,因为他拿到了offer但是并没有去,在了解原因后挺认同他的想法的.这种职业价值观 ...

  5. 2020年字节跳动提前批笔试编程题(游戏专场,测试开发岗)

    一共15道不定项选择+5道编程+2道问答 不定项选择以及问答基本都是测试相关的内容,比较恶心的是选择是不定项选择,多选不得分,少选得一半分,下面主要说一下五道编程题: 1.小球下落问题 一个小球从初始 ...

  6. Java笔试真题及参考答案

    题目 使用Swing实现一个窗口程序,窗口包括一个菜单栏,请按以下要求实现相应功能. (1)窗口标题为"GUI程序",大小为400X300, 居中显示:窗口上有一个面板,面板背景色 ...

  7. 字节跳动Android面试全套真题解析在互联网火了,系列教学

    前言 前不久,几个朋友聚会,谈到了现在的后辈,我就说起了那个大三就已经拿到网易offer的小学弟. 这个学弟是00后,专升本进入我们学校的.进来后就非常努力,每次上课都是第一个到教室的,每次都是坐第一 ...

  8. 关于AES:加密方式,让你的APK无懈可击,字节跳动Android面试全套真题解析在互联网火了

    AES加密项目实战 APK加固项目实战 APK脱壳技术实战 一.APK文件反编译 1.什么是反编译 定义: 利用编译程序从源语言编写的源程序产生目标程序的过程 2.怎么进行反编译? 先了解apk的文件 ...

  9. 每日java笔试五小题 2020-9-23

    每日java笔试五小题 2020-9-23 this代表了()的对象引用,super表示的是当前对象的()对象? 正确答案: C 你的答案: C (正确) 当前类 当前类 当前类的父类 当前类 当前类 ...

最新文章

  1. 分享几个用 Python 给图片添加水印的方法,简单实用
  2. scanf函数与scanf_s函数
  3. Eclipse 常用最新插件.标记
  4. python哪些模块用于数据分析_python数据解析模块之glom模块的使用(一)
  5. oracle的em能干什么,转载 解决Oracle的EM登录
  6. leetcoed123. 买卖股票的最佳时机 III
  7. 数据字典表Truncate丢失将招致数据库不可用
  8. ORB论文研读与代码实现
  9. centos6重启网络命令_Docker常用命令详解
  10. android打包方法超过65k错误
  11. Kotlin中文开发者文档(一)
  12. Arch Linux stc-isp-wine AUR 包
  13. 马云在《赢在中国》对创业者的经典点评~
  14. 新概念51单片机c语言教程考试题,新概念51单片机C语言教程例题.doc
  15. XJTU 新闻英语阅读重点词汇汇总
  16. 最新、最全开心网钓鱼外挂下载_开心网001钓鱼外挂
  17. linux glib,我该如何安装glib?
  18. 互联网早报 | 2月2日 星期二 | 小米之家完成江苏河南县级全覆盖;知乎正式启动首部科幻剧;盼达用车宣布暂停运营...
  19. 不错的软件测试学习网站
  20. ajaxSubmit提交文件表单不执行success

热门文章

  1. 阿里云 ECS 构建集群
  2. JAVA毕设项目html5在线医疗系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  3. 想做电商没产品?四个选品方向,让你进入电商行业
  4. 生活-啤酒鸡 鸡啤酒 酒啤鸡 啤鸡酒- 做法
  5. NXP JN5169 读写片外 FLASH
  6. 【转载】GPU深度发掘(一)::GPGPU数学基础教程
  7. 设计模式之里氏替换原则
  8. iOS 将状态栏设置成白色
  9. [pwnable.kr]shellshock
  10. 加油吧 !!!冲冲冲