您的位置:首页 > 其它

腾讯研发工程师A笔试卷

2016-02-29 13:25 225 查看
1. Internet物理地址和IP地址转换采用什么协议?

ARP(AddressResolutionProtocol)(地址解析协议) 和RARP(反地址解析协议)

2. static有什么用途?

类型声明符在C语言里面主要有三个用途:

声明静态局部变量
声明静态外部全局变量
声明静态外部函数

3. 引用与指针有什么区别?

指针是一个实体,而引用仅是个别名;
引用使用时无需解引用(*),指针需要解引用;
引用只能在定义时被初始化一次,之后不可变;指针可变;
引用没有 const,指针有 const;
引用不能为空,指针可以为空;
“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
指针和引用的自增(++)运算意义不一样;
从内存分配上看:程序为指针变量分配内存区域,而引用不需要分配内存区域。

4. 描述实时系统的基本特性?

在特定时间内完成特定的任务,实时性与可靠性。

所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此其处理事务的能力较强、速度较快。 应该说,实时操作系统是在早期的操作系统基础上发展起来的,早期的操作系统的各种资源都是事先已经分配好的,工作期间这些资源不能再重新进行分配。因此其处理事务的能力较差、速度较慢,现在则称之为“非实时操作系统”。但“非实时操作系统”诞生时,其功能、性能等在当时也是非常强的,人们在未认识到更好的操作系统之前并不将其这样称呼。将来如果新的、功能更强的、实时性能更高的操作系统出现,也许现在称之为“实时”的操作系统则可能将让位于新的“实时操作系统”了。从这方面讲“实时操作系统”是一个相对的概念的;

5. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

生存周期不同;
全局变量:全局区(静态区)(static):全局变量和静态变量是存储在一起的,初始化过的全局变量和静态变量在同一块区域,未初始化的全局变量和静态变量存放在一块相邻的区域内。此区域由系统在程序结束后释放;
局部变量:放在堆栈中。由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
作用范围不同;
全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。
局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回;

7. 堆栈溢出一般是由什么原因导致的?

堆栈溢出的产生是由于过多的函数调用,导致调用堆栈无法容纳这些调用的返回地址,一般在递归中产生。堆栈溢出很可能由无限递归(Infinite
recursion)产生,但也可能仅仅是过多的堆栈层级。

8. 什么函数不能声明为虚函数?

静态成员函数不可以是虚函数,因为静态成员函数全局通用,不受限于某个具体对象
构造函数不可以是虚函数,虚函数主要是针对对象而言,而构造函数是在对象创建之前,所以构造函数的虚函数是没有意义的
内联函数不可以是虚函数,因为内联函数不能再运行中动态确定其位置

9. 写出float x 与“零值”比较的if语句?

if (fabs(x) < 0.00001f)

10. 不能做switch()的参数类型是?

除了整型,枚举类型,字符型,其他的都不行。譬如:字符串,浮点型这些非constexpr(非常量表达式)都不可以作为switch的参数类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: