腾讯2017校招开发工程师笔试试题(二).docx
根据给定文件的信息,我们可以总结出以下几个主要的知识点: ### C++ 类的构造与析构 **题目描述:** 在32位环境下,给出了一段C++代码,其中包括两个类 `A` 和 `B`,其中 `B` 继承自 `A`。程序创建了 `B` 类型的数组,并在最后释放了这些对象所占用的内存。 **代码分析:** - **类 A** 定义了一个构造函数和一个析构函数,在构造函数中打印字符串 `"A"`,析构函数中打印 `"~A"`。 - **类 B** 同样定义了一个构造函数和一个析构函数,分别打印 `"B"` 和 `"~B"`。 - 主函数中,通过 `new` 关键字创建了一个 `B` 类型的数组,并通过指针 `c` 进行管理。之后,通过 `delete[] c` 释放了这些对象所占用的内存。 **选项解析:** - 当执行 `new B[2]` 时,会依次调用 `A()` 构造函数和 `B()` 构造函数两次,因此输出 `"ABAB"`。 - 在释放内存时,会先调用子类 `B` 的析构函数,再调用父类 `A` 的析构函数,且由于是数组,会从最后一个元素开始释放。因此,输出 `"~B~B~A~A"`。 **正确答案:** b. ABAB`~B~A~B~A` ### C++ 类的大小 **题目描述:** 题目讨论了在32位机器上定义了一个空的类 `CTest`,并询问了在不同情况下该类的大小。 **知识点解析:** - **默认情况下**,空类在大多数编译器中会被优化为1字节,以支持对象的唯一性。 - **添加构造函数** 不会改变类的大小。 - **添加虚函数** 会导致类的大小增加,因为编译器会自动为每个包含虚函数的类添加一个指向虚函数表的指针。在32位系统中,这个指针通常是4字节。 **正确答案:** b. 添加构造函数后,结果为1。c. 添加虚函数后,结果为4。 ### Linux 进程间通信 **题目描述:** 题目要求选择可以用于Linux进程间通信的机制。 **知识点解析:** - **UNIX 套接字** 是一种用于同一主机或网络中的进程间通信的方法。 - **信号量** 可以用于控制多个进程访问同一资源的情况。 - **无名管道** 允许父子进程之间进行单向通信。 - **文件锁** 可以防止多个进程同时写入同一个文件。 - **共享内存** 提供了一种高效的进程间通信方式,允许多个进程共享同一块内存区域。 **正确答案:** a. UNIX套接字 b. 信号量 c. 无名管道 d. 文件锁 e. 共享内存 ### 数据库唯一索引 **题目描述:** 题目询问了关于数据库唯一索引的一些正确描述。 **知识点解析:** - **表可以包含多个唯一约束**,但通常只有一个主键。 - **唯一约束列可以包含 null 值**,但是每个唯一索引最多允许一个 null 值。 - **唯一约束列可以被修改和更新**,只要更新后的值仍然满足唯一性条件。 **正确答案:** a. 表可以包含多个唯一约束,但只能有一个主键 b. 唯一约束列可以包含 null 值 c. 唯一约束列可修改和更新 ### 死锁 **题目描述:** 题目询问了关于死锁的正确描述。 **知识点解析:** - **有序分配锁资源** 可以预防死锁,即按照某种固定的顺序来请求资源。 - **银行家算法** 是一种预防死锁的算法,而不是检测死锁。 - **剥夺死锁进程的所有资源** 是一种解决死锁的方法之一。 **正确答案:** a. 有序分配锁资源可以预防死锁 c. 剥夺死锁进程的所有资源可以解除死锁 ### C++ 类型安全 **题目描述:** 题目询问了一段C++代码中的错误数量。 **知识点解析:** - **类 A** 定义了一个虚拟函数 `f()`,但在类的公共部分重复声明了公共部分。 - **类 B1** 构造函数中使用了不正确的初始化语法。 - **类 B1** 的私有成员函数 `f()` 使用了错误的语法,并且 `delete_s[]` 缺少了括号。 - **类 B2** 的私有成员函数 `f()` 也使用了错误的语法,并且 `delete_m` 缺少了括号。 - **主函数** 中的 `new C` 没有定义类 `C`。 - **主函数** 中的 `delete a2` 试图释放未初始化的对象。 **正确答案:** d. 6 ### iOS 多线程编程组件 **题目描述:** 题目询问了iOS常用的多线程编程组件。 **知识点解析:** - **GCD (Grand Central Dispatch)** 是苹果提供的一个高效、低级别的并发框架。 - **NSOperationQueue** 是一个更高层次的并发解决方案,它基于 GCD。 - **NSThread** 提供了创建和管理线程的基本方法。 **正确答案:** a. GCD b. NSOperationQueue c. NSThread ### 关系模式 **题目描述:** 题目询问了当关系模式中的所有属性都是主属性时,该关系模式的最高范式是什么。 **知识点解析:** - 如果所有属性都是主属性,那么不存在非主属性依赖于主属性的情况,这符合第三范式 (3NF) 的定义。 **正确答案:** c. 3NF ### 栈 **题目描述:** 题目询问了关于栈的正确描述。 **知识点解析:** - **栈是一种后进先出的数据结构** (LIFO),即最后进入栈的元素最先被弹出。 **正确答案:** d. 栈是先进后出的线性表 ### C 语言指针操作 **题目描述:** 题目询问了一段C代码的输出结果。 **知识点解析:** - `p = a;` 将指针 `p` 指向数组 `a` 的第一个元素。 - `*(p++) += 100;` 使 `p` 所指向的元素增加了100,并且将指针向前移动到下一个元素。 - 因此,数组的第一个元素从1变成了101,但由于指针的后缀递增 (`p++`),它不会打印出更新后的 `p` 所指向的元素。 **正确答案:** b. 2101234 ### C# List 容器操作 **题目描述:** 题目询问了一段C#代码执行后,`NumberList` 容器中的元素顺序。 **知识点解析:** - `NumberList.Remove(v);` 删除的是元素 `v` 而不是下标 `i`。 - 当遇到偶数时,会删除该元素。因此,首先删除的是2,然后是4。 **正确答案:** c. 4,1,3,5 ### 二叉树 **题目描述:** 题目询问了一棵具有特定度数的结点的二叉树中度为0的结点个数。 **知识点解析:** - 对于任意一棵二叉树,度为2的结点数加1等于度为0的结点数。 - 设度为2的结点数为 `n2`,度为1的结点数为 `n1`,度为0的结点数为 `n0`。 - 根据上述规则,`n0 = n2 + 1`。 - 本题中,`n2 = 10`,所以 `n0 = 10 + 1 = 11`。 **正确答案:** b. 11 ### C 字节序 **题目描述:** 题目询问了一段C代码执行后,在大字节序和小字节序机器上 `x.z.n` 的值。 **知识点解析:** - **大字节序** 下,高字节存储在低地址位置,低字节存储在高地址位置。 - **小字节序** 下,低字节存储在低地址位置,高字节存储在高地址位置。 - 本题中,`x.a` 被赋值为 `0x1234`。 - 在大字节序下,`x.z.n` 的值为 `0x34`;而在小字节序下,其值为 `0x12`。 **正确答案:** a. 0x34,0x12








剩余8页未读,继续阅读


- 粉丝: 27
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 互联网数据中心竞争策略分析报告.docx
- IP网络流量研究与带宽控制.doc
- ASP-NET-小区物业管理系统的方案设计书与实现39082.doc
- OJCode-ACM资源
- (源码)基于C++编程语言的Radiance汇编器、链接器和模拟器.zip
- 图像处理技术的研究现状和发展趋势.doc
- mumicm_dlut-美赛资源
- 论大数据技术及在通信领域中的运用.docx
- 综合布线课程设计.doc
- weather_system-大创资源
- 计算机信息安全及防范措施.docx
- 厂商运用大数据和物联网的投资选择效用研究.docx
- 单片机ATC多功能电子密码锁设计方案.doc
- 工程项目管理课程思政教学改革与实践.docx
- Ipzrbh单片机交通灯控制大学本科方案设计书.doc
- (源码)基于 Vue 和 Redux 的用户聊天管理系统.zip


