360公司2019校招Windows开发笔试题集锦

需积分: 10 3 下载量 131 浏览量 更新于2024-09-10 收藏 20KB DOCX 举报
"360-2019年校园招聘Windows开发工程师的笔试题集,包含多选和填空题,涉及操作系统、编程语言、数据结构与算法、线程和内存管理等知识。" 本资源是360公司在2019年针对校园招聘Windows开发工程师岗位的一份笔试题,内容涵盖了多个IT领域的知识点。以下是根据题目内容提炼出的相关知识点: 1. **动态库加载机制**:LoadLibrary函数在加载动态链接库(DLL)时,会优先查找由SetCurrentDirectory设置的当前工作目录中的A.dll。如果不在该目录,系统会按照一定的搜索顺序继续查找,包括System32目录、进程EXE的同目录以及%Path%环境变量所指定的路径。 2. **哈希表**:哈希冲突的影响因素包括装填因子(即哈希表中已存元素数量与表大小的比例)、哈希函数的选择以及处理冲突的方法。好的哈希函数能尽量减少冲突,而处理冲突的方法如开放寻址法和链地址法也会影响冲突的处理效率。 3. **数据结构与算法**:插入法建立堆的时间复杂度是O(n),其中n为元素数量。这是因为对于每个元素,都需要调整堆以满足堆性质,这个过程在最坏的情况下需要O(1)的时间,因此总时间复杂度为O(n)。 4. **线程创建**:在Windows程序中,CreateThread和_BeginThreadEx都是创建线程的API。_BeginThreadEx功能上可以完全替代CreateThread,并且具有更多的控制选项,如指定栈大小和安全属性。两者都能用于调用同一线程函数,但其返回值的用途不同,CreateThread的返回值可用于线程同步,而_BeginThreadEx的返回值是线程ID,可用于后续的线程操作。 5. **C++编程**:在给定的C++程序中,计算二进制序列对应的十进制值。程序通过循环读取输入的字符,当字符为'1'时累加对应的2的幂次。因此,填写条件应为`ch=='1'`,使得当输入00100101时,程序输出37。 6. **JavaScript可迭代对象**:JavaScript中的内置可迭代对象包括Array、Map、String和Object。这意味着可以通过for...of循环或配合迭代器函数如forEach来遍历这些对象的元素或成员。 7. **C++类与内存管理**:类A中构造函数的参数为整型数组和长度,用于初始化成员变量。在类A的构造函数中,`p=__________;`这一行应将`q+i`指向的内存地址赋值给指针p,因此填写`new int[m]`。这样,类A可以正确地复制传入的数组,并在析构时通过`delete[] p;`释放内存。注意,由于C++中没有显示的`new[]`操作符,这里用的是`*`而非`[]`,但在实际代码中应使用`new int[m]`。 这些题目涵盖了操作系统原理、C++编程、数据结构、算法、内存管理和编程语言特性等多个方面,体现了Windows开发工程师所需的基本技能和知识范围。