人人网2015研发笔试题:编程与算法选择题解析

版权申诉
0 下载量 72 浏览量 更新于2024-09-08 收藏 109KB PDF 举报
"人人网2015研发笔试卷C.pdf" 这份人人网2015年的研发笔试卷C主要考察了计算机科学和技术的基础知识,包括编程语言、数据结构、算法、操作系统、网络以及数据库等领域。下面对试卷中的知识点进行详细说明: 1. 进制转换:题目提及12*25=311成立,要求判断使用的进制。这需要理解不同进制之间的计算规则,例如在十进制下,这个等式不成立,但如果是六进制,转换后12*25=311是正确的。 2. C++ sizeof运算符:sizeof用于计算变量或数据类型的大小。对于字符串常量,它会包含结束的空字符,所以sizeof(str)会返回22,而sizeof(p)返回的是指针的大小,通常为4字节(对于32位系统)。在函数Foo中,str作为参数传递,它将被当作指针处理,因此sizeof(str)返回4。malloc分配的内存大小是sizeof(int)的倍数,所以sizeof(p)仍然为4字节。 3. 排序算法:试卷中提到了几种排序算法及其特性。冒泡排序、快速排序、希尔排序和冒泡排序都是常见的排序算法。冒泡排序的时间复杂度为O(n^2),快速排序平均O(nlogn),最坏O(n^2),希尔排序平均O(n^1.3),冒泡排序也是O(n^2)。注意,这里有一个错误,D选项应该表述为归并排序的平均时间复杂度为O(nlogn),最坏时间复杂度也为O(nlogn)。 4. 数据结构:数组、链表、哈希表和队列是基础的数据结构。数组提供随机访问,链表便于插入和删除,哈希表提供快速查找,队列则遵循先进先出原则。根据题目描述,需要考虑插入、删除和顺序遍历操作,最优选择可能是数组,因为有序且操作频繁,数组的连续存储能提高效率。 5. 网络命令:telnet用于远程登录,ping用于测试网络连通性,tracert用于追踪数据包路径,top显示系统资源使用情况。题目可能询问了端口号的范围,一般来说,1-1023是保留端口,1024到65535是非保留端口,65535以上不是有效端口号。 6. Hash表和线性探测:线性探测是解决哈希冲突的方法,如果有n个关键字具有相同的Hash函数值,且使用线性探测,需要做n次探测才能将所有关键字映射到表中。 7. 数据库事务:ACID是事务的四个属性,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。题目中提到的"强制性"不是其中之一。 8. 进程状态转换:进程的状态包括就绪、运行和等待。根据操作系统原理,有些状态转换是不可能的,如等待→运行,因为进程从等待状态变为运行状态通常需要先变为就绪状态。 9. 网络协议与端口:TCP/IP协议栈中,端口号用于标识应用程序,不同服务通常绑定在特定端口上。1是保留端口,小于1024的端口通常用于系统服务,而小于65535的端口是合法的TCP/UDP端口号。 这些知识点反映了计算机科学的基础知识,对于IT研发人员来说是必备的技能。通过这样的笔试,可以评估应聘者的理论知识和实际问题解决能力。