1、网易笔试+答案网易2017年校园招聘笔试题A卷(研发类笔试题) 第一部分(必做): 计算机科学基础1. (单选)软件设计中模块划分应该遵循的准则是: A.低内聚低耦合 B.高内聚低耦合 C.低内聚高耦合 D.高内聚高耦合2. (单选)最坏情况下时间复杂度不是n(n-1)/2的排序算法是: A.快速排序 B.冒泡排序 C.直接插入排序 D.堆排序3. 哈希表中解决冲突的方法通常可以分为open addressing和chaining两类, 请分别解释这两类冲突解决方法的大致实现原理4. 简单的链表结构拥有很好的插入 删除节点性能, 但随机定位(获取链表第n个节点)操作性能不佳, 请你设计一种改进
2、型的链表结构优化随机定位操作的性能, 给出设计思路及其改进后随机定位操作的时间复杂度5. 什么是NP问题?列举典型的NP问题(至少两个)?对于一个给定的问题你通常如何判断它是否为NP问题?6. 以下是一个tree的遍历算法, queue是FIFO队列, 请参考下面的tree, 选择正确的输出.1/ 2 3/ / 4 5 6 7queue.push(tree.root)while(true)node=queue.pop();output(node.value);/输出节点对应数字if(null=node) break;for(child_node in node.children) queue.
3、push(child_node);A. 1234567B. 1245367C. 1376254D. 1327654 第二部分(选作): C/C+程序设计1. 有三个类A B C定义如下, 请确定sizeof(A) sizeof(B) sizeof(C)的大小顺序, 并给出理由struct AA() A() int m1;int m2;struct BB() B() int m1;char m2;static char m3;struct CC() virtualC() int m1;short m2;2. 请用C+实现以下print函数,打印链表I中的所有元素, 每个元素单独成一行void p
4、rint(const std:list &I)3. 假设某C工程包含a.c和b.c两个文件,在a.c中定义了一个全局变量foo, 在b.c中想访问这一变量时该怎么做?4. C+中的new操作符通常完成两个工作, 分配内存及其调用相应的构造函数初始化请问:1) 如何让new操作符不分配内存, 只调用构造函数?2) 这样的用法有什么用?5. 下面这段程序的输出是什么?为什么?class Apublic:A()p();virtual void p()print(A)virtual A()p();class Bpublic:B()p();void p()print(B)B()p();int main(
5、int, char*)A* a=new B();delete a;6. 什么是C+ Traits? 并举例说明第四部分(选作): Linux应用与开发1. 写出完成以下功能的Linux命令:1) 在当前目录及其子目录所有的.cpp文件中查找字符串example, 不区分大小写;2) 使用sed命令, 将文件xyz中的单词AAA全部替换为BBB;3) 用一条命令创建aa bb cc三个子目录4) mount cdrom.iso至/dev/cdrom目录5) 设置ulimit使得程序在Segment fault等严重错误时可以产生coredump;2. 设umask为002, 则新建立的文件的权限
6、是什么?664A. -rw-rwr-B. rwxrwx-w-C. -w-D. rwxrwxr-x上面第三题,aa bb cc 目录是嵌套的子目录么,要是同一级的话应该下面这样 1 #grep -i -r example ./*.cpp 2 #sed s/AAA/BBB/g xyz 3 #mkdir aa bb cc 4 #mount -o loop ./cdrom.iso /mnt/cdrom 5 C3. 用户HOME目录下的.bashrc和.bash_profile文件的功能有什么区别?4. 写出完成以下功能的gdb命令(可以使用命令简写形式):1) 使用gdb调试程序foo, 使用core
7、dump文件core.12023;2) 查看线程信息3) 查看调用堆栈4) 在类ClassFoo的函数foo上设置一个断点5) 设置一个断点, 当表达式expr的值被改变时触发5.1) 例举Linux下多线程编程常用的pthread库提供的函数名并给出简要说明(至少给出5个)2) pthread库提供哪两种线程同步机制, 列出主要API3) 使用pthread库的多线程程序编译时需要加什么连接参数?3.2 网易2011年校园招聘笔试题Char array = “abcde”; char* s = array; Coutsizeof(array)strlen(array)sizeof(s)str
8、len(s); -什么是用户级线程和内核级线程?区别。 -从C+文件到生成exe 文件经过哪三个步骤? -有个二维数组 A(6*8),每个元素占 6 字节,起始地址为 1000,请问最后一个元素 A57的起始地址为?数组A占内存大小为?假设以行优先,则A14起始地址为? 1. 6*8*6=2882. 1000+(5*8+7)*6=1000+(5+7*6)*6=12823. 1000+(1*8+4)*6=10724. 1000+(4+7*6)*6=1276-用C语言把双向链表中的两个结点交换位置,考虑各种边界问题。 Struct Node Node *prev; Node *next; Void exchange(Node *node1,Node *node2) -*.dll,*.lib,*.exe 文件分别是什么,有什么区别?
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2