阿里巴巴研发笔试题解析:并发与并行、逻辑运算、Linux命令、数据结构

3星 · 超过75%的资源 需积分: 3 43 下载量 42 浏览量 更新于2024-09-11 1 收藏 53KB DOC 举报
"这篇资源包含了2014年3月29日阿里巴巴公司针对研发工程师实习生的笔试题目,主要涉及计算机科学与技术的基础知识,包括操作系统、编程逻辑、数据结构和算法等方面。" 以下是相关知识点的详细说明: 1. **时间片调度**:时间片调度是一种操作系统中的任务调度策略,它将处理器的时间分配给各个任务,每个任务在分配到的时间片内执行,以实现多任务的并发执行。这种调度方式通常用于分时系统和实时系统。 2. **并发与并行**:并发是指多个任务在同一时间段内交替执行,看起来好像是同时进行的;而并行则是指多个任务在同一时刻真正地同时执行,这需要多处理器或多核心的支持。题目中提到的时间片调度属于并发,多线程绑定CPU可能属于并行,取决于是否有多个CPU核心。 3. **C语言逻辑判断**:在C语言中,整型变量溢出可能导致逻辑错误。在给定的代码中,`int i = -1; unsigned j = 1;` 当执行 `if (i < j)` 时,由于`i`是负数,`j`是无符号整数,会进行无符号比较,因此 `(i < j)` 会成立。同理,`(j > i)`也会成立,所以输出应该是 `(i<j)成立 (j>i)成立`。 4. **浮点数的二进制表示**:小数值1.5625转换成二进制表示为 `1.1001`,因为0.5是二进制的1,0.25是二进制的0.1,0.125是二进制的0.01,以此类推,直到凑足1.5625。 5. **Linux命令**:在Linux中,使用 `ls` 命令可以列举当前目录下的文件。 6. **栈和队列操作**:在这个问题中,元素需要先入栈后出栈进入队列,若出队顺序为 `b、d、c、f、e、a`,说明栈至少需要4次弹出操作(`b、d、c、f`)来保持队列的顺序,因此栈S的容量至少应为4。 7. **循环队列**:循环队列是线性数据结构,它的队头和队尾可以通过两个指针共同确定元素的动态变化。正确的叙述是循环队列中元素的个数是由队头指针和队尾指针共同决定。 8. **二分查找**:在长度为n的有序线性表中进行二分查找,需要的比较次数是对数级别,即 `logn`。 9. **二进制位移**:在二进制数据中,小数点向右移一位相当于将数据除以2。 10. **栈与队列的性质**:栈是后进先出(LIFO)的数据结构,而队列是先进先出(FIFO)的数据结构。栈内元素不能随机访问,而队列通常也不能,除非是循环队列。 11. **二进制流与接收器**:如果有n条随机的二进制流,每遇到1就停止,因为流是随机的,平均来说大约一半的流会先遇到0,另一半遇到1,所以最后0的个数大约是 `n/2`。 12. **虚拟存储系统**:在虚拟存储系统中,使用FIFO页面淘汰算法,当进程访问页的序列是1,2,3,4,2,7,5,3,5,7,4,3时,初始内存为空,3个页空间不足以容纳所有页,会按照FIFO原则淘汰最早进入内存的页,导致频繁的缺页中断,这种现象称为Belady's Anomaly,即在特定情况下,增加页面大小反而会导致更多的缺页。 以上就是对这些笔试题目的解析,涵盖了操作系统、数据结构、程序设计和计算机系统基础等多个方面的知识点。