腾讯阿里2014软件开发笔试:基础与技巧考察

4星 · 超过85%的资源 需积分: 3 10 下载量 9 浏览量 更新于2024-07-23 收藏 127KB DOC 举报
腾讯和阿里巴巴在2014年的软件开发类笔试中,考察了应聘者的基础知识和算法理解能力。以下是部分试题及其解析: 1. **后序遍历**:这道题考查的是二叉树的遍历方法。根据题目,先序遍历为ADCEFGHB,中序遍历为CDFEGHAB。后序遍历遵循左子树->右子树->根节点的顺序,结合这两个线索,我们可以推理出后序遍历为CFHGEDBA,因为中序遍历中,'C'作为根节点,其左右子树的后序分别为'DFG'和'HAB',与给出的先序遍历对应。 2. **高效数据结构**:题目询问查找和删除性能都高的数据结构。有序数组虽然查找快,但插入和删除效率低;有序链表查找快但删除性能受限于链表节点移动;AVL树和哈希表(Hash表)都有较快的查找和删除操作,因此答案是C和D。 3. **排序算法**:快速排序、堆排序和归并排序的时间复杂度在最坏情况下都能达到O(nlogn),而冒泡排序的时间复杂度为O(n^2),所以答案是BC。 4. **堆排序**:堆排序建立小根堆后,根节点是最大或最小元素,二叉树的中序遍历会保持升序或降序,因此建堆后的中序遍历序列为递减顺序,即83251647。 5. **递归函数**:此题考查的是Fibonacci数列的递归定义。给定的函数计算的是第n项的值,递归终止条件为n小于2,返回n,否则返回前两项之和。当n=5时,返回值为`foo(5) = foo(4) + foo(3)`,即5+3=8。 6. **犯罪率概率**:由于S市人口比例为3:5,A区和B区的犯罪率分别是0.01%和0.015%,总犯罪率为0.01%+0.015%=0.025%。新案件发生在A区的概率为A区犯罪率除以总犯罪率,即3/8 * 100% = 37.5%。 7. **进程间通信**:在Unix系统中,进程间通信的方式包括共享内存、消息队列和信号量,Socket主要用于网络通信,因此答案是BCD。 8. **静态变量存储**:静态变量属于全局作用域,它们存储在全局区,而不是栈区、堆区或代码区,所以答案是C。 9. **查询性能优化**:在数据库中,添加索引可以提高查询性能,特别是对经常用于查询的字段,如Name字段,因此答案是B。 10. **IP地址分类**:IP地址131.153.12.71属于B类地址范围,因为它以10000000开头,前两位为10,后续两位为网络标识,答案是B。 11. **自动机理论**:下推自动机识别的语言类型中,0型语言是指正则表达式,1型语言为确定有限自动机,2型语言为上下文无关文法,3型语言是正向预测分析器。这里下推自动识别机识别的是2型语言,答案是C。 12. **预处理器宏**:程序中的宏定义会导致参数被展开,所以`add(a+b)`会被替换为`a+b`,`5*add(3+4)`就相当于`5*(3+4)`,因此输出为19,答案是D。 13. **HTTP状态码**:403 Forbidden表示服务器拒绝了请求,不允许访问,答案是B。 这些题目全面检验了应聘者的编程基础、算法理解、逻辑思维以及对操作系统和网络原理的理解。通过这类笔试,腾讯和阿里巴巴在评估潜在员工是否具备扎实的基础知识和解决问题的能力。