Java研发笔试题解析:代码执行结果与统计学概念

需积分: 10 0 下载量 198 浏览量 更新于2024-08-10 收藏 281KB PDF 举报
"这份资料包含了58同城2016年研发工程师的笔试题,主要涉及Java编程、面试技巧和一些计算机基础知识。题目包括了程序输出、表达式转换、统计学概念的应用、二叉树知识以及查找算法。" 这篇资料中的知识点主要包括: 1. **整型溢出与位运算**: - 在Java中,`int`类型的取值范围是`-2^31`到`2^31-1`。题目中的`int i = -2147483648;`是`int`类型能表示的最小值。当对`i`进行位操作时,例如`~i`,会得到`2147483647`,因为这是在`int`范围内能表示的最大正整数。接着,`-i`是取反再加1,得到`2147483647`;`1-i`是将1减去`i`,得到`2147483649`,但由于超出`int`范围,会进行模2^32运算,结果回绕至`-2147483647`;`-1-i`同理,得到`2147483647`。因此,正确答案是D。 2. **后缀表达式**: - 后缀表达式(也称为逆波兰表示法)是一种没有括号的表示算术表达式的方式,运算符位于操作数之后。表达式`a+b*c-(d+e)/f`的后缀表达式是`abc*+def-/`,意味着先进行乘法和加法,然后进行除法,最后进行减法。 3. **四分位数**: - 四分位数是统计学中用于描述数据分布的统计量,分为下四分位数(Q1)、中位数(Q2)和上四分位数(Q3)。给定一个序列,可以通过计算特定位置的值来找到它们。例如,对于长度为n的序列,Q1位于`(n+1)*0.25`的位置,Q2是中位数,位于`(n+1)*0.5`,Q3位于`(n+1)*0.75`。题目中给出了如何计算四分位数的例子,并要求找到特定序列的四分位数。 4. **完全二叉树的节点数量**: - 完全二叉树是指除了最后一层外,每层都被完全填满的二叉树。深度为5的完全二叉树最少的节点数是16,因为第一层有1个节点,第二层最多可以有2个,第三层最多可以有4个,第四层最多可以有8个,第五层至少要有1个节点才能保证它是完全二叉树。 5. **二分查找**: - 二分查找是在有序列表中查找元素的一种高效方法。在给定的有序表(5, 8, 36, 48, 50, 58, 88)中查找数字58,首先与中间值48比较,然后在右半部分继续查找,第二次比较即找到目标,所以关键字比较的次数是2。对应的判定树高度也是2,因为每次比较都能将搜索范围减半。 6. **数组存储与计算地址**: - 三维数组A[5][6][7]按行优先顺序存储时,A[0][0][0]的地址为1100,每个元素占2个存储单元。要计算A[4][3][2]的地址,需要知道数组的存储规律。通常,对于多维数组,元素的地址可以通过公式计算,如`(下标0的偏移量 + 下标1的偏移量 * 每行的元素数量 + 下标2的偏移量 * 每行每列的元素数量)`,但具体计算需要更多上下文信息。 这些知识点都是计算机科学和技术,特别是软件开发和数据结构中的基础概念,对于准备面试或学习编程的人来说非常有价值。