
面试前需要复习的知识点
文章平均质量分 64
yvhqbat
whuster
展开
-
确定主机字节序的程序
小端(little-endian)字节序:将低序字节存储在起始地址。 大端(big-endian)字节序:将高序字节存储在起始地址。 主机字节序:某个给定系统所用的字节序。short 数据,占2个字节,给它赋值0x0102。 若采用的大端法,则其低地址端应该存放的是0x02; 若采用的小端法,则其低地址端应该存放的是0x01; 通过联合体来获得其高低地址的数据。参考《Unix网络编程.卷1原创 2016-04-15 17:33:39 · 594 阅读 · 1 评论 -
多线程笔试面试题汇总
1. 问答题1.1 线程与进程的区别?(1)进程是出于执行期的程序以及相关资源的总称。 线程是在进程中活动的对象,可以理解为进程中执行的一段程序片段。 (2)内容 进程 线程 地址空间 程序计数器 全局变量 寄存器 打开文件 堆栈 子进程 状态 信号与信号处理程序 (3) a.进程是资源分配的基本单位,线程是cpu调度,或者说是程序执行的最小单原创 2016-05-04 17:21:23 · 1563 阅读 · 0 评论 -
C/C++常考面试题
下面代码会出现什么问题?void GetMemory( char **p, int num ){ *p = (char *) malloc( num );}void Test( void ){ char *str = NULL; GetMemory( &str, 100 ); strcpy( str, "hello" ); printf( str ); }参考答案传入GetM原创 2016-06-07 09:20:42 · 1322 阅读 · 0 评论 -
strlen/strcmp/strcat/strcpy的实现
1. strlen#include <cstddef>size_t strlen(const char* p){ if(p==NULL){ return 0; } size_t len=0; while((*p++)!='\0'){ len++; } return len;}strlen 与 sizeof 的区别:原创 2016-05-19 19:12:28 · 459 阅读 · 0 评论 -
笔试题之虚拟继承
程序的输出结果:#include <iostream>using namespace std;class A{public: virtual void func(int a=10 ){ cout << "a" << a << endl; }};class B :public A{public: void func(int a=20){原创 2016-06-06 18:30:14 · 309 阅读 · 0 评论 -
C++面试题:String类的实现
5种I/O模型的比较原创 2016-06-08 10:32:22 · 1399 阅读 · 0 评论 -
数据库的查询
1. SELECT 语句2. 列的选择与指定3. FROM 子句与连接表4. WHERE 子句5. GROUP BY 子句6. HAVING 子句7. ORDER BY 子句8. LIMIT 子句9. UNION 语句与联合查询原创 2016-06-23 20:26:40 · 312 阅读 · 0 评论 -
C++primer
1.带符号类型和无符号类型混合运算时,带符号数会自动转换成无符号数。 2.true和false 是布尔类型的字面值,nullptr是指针字面值。 C++程序最好使用nullptr,同时尽量避免使用NULL。#include <cstdlib>#define NULL 03.指定字面值的类型,如L'a' //宽字符型字面值,wchar_t4.定义于函数体内的内置类型的对象如果没有初始化,则其值原创 2016-05-18 21:38:01 · 450 阅读 · 0 评论 -
计算机网络面试题总结
七层/五层/四层网络模型OSI ( Open System Interconnect ):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 TCP/IP ( Transmission Control Protocol/Internet Protocol ):传输控制协议 / 因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层原创 2016-05-26 17:16:43 · 1004 阅读 · 0 评论 -
生产者-消费者问题(producer-consumer-problem)
生产者消费者问题是一个著名的线程同步问题,问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经放入产品的缓冲区中再次投放产品。简化原创 2016-05-05 10:10:40 · 3054 阅读 · 0 评论 -
原码、反码、补码、有符号数和无符号数运算
原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.反码反码的表示方法是:正数的反码是其本身负数的反原创 2016-05-13 11:32:12 · 6565 阅读 · 0 评论 -
内存泄漏
内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。1、内存泄漏在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程原创 2016-04-18 13:11:04 · 441 阅读 · 0 评论 -
面试题:vector/map/红黑树/散列表
1、vector的实现原理 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助。 vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移原创 2016-05-24 21:09:04 · 2847 阅读 · 0 评论 -
2016-6-15《烽火通信科技股份有限公司》笔试题总结
1. 不能重载的运算符C++中绝大部分的运算符允许重载,具体规定见表:表 C++允许重载的运算符 类型 运算符 双目算术运算符 (加),-(减),*(乘),/(除),% (取模) 关系运算符 ==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),>=(大于等于) 逻辑运算符 ||(逻辑或),&&(逻辑与),!(逻辑非) 单目运算符 + (原创 2016-06-15 12:58:28 · 14110 阅读 · 1 评论