<<程序员面试宝典>>读书笔记 1
2016-04-18 11:55
337 查看
<<程序员面试宝典>>读书笔记
1.句柄和指针的区别和联系?句柄和指针是完全两个不同的概念,句柄是个32bit unit,Windows系统用句柄标记系统资源。指针只标记某个物理内存地址。
句柄实际上是Windows系统在内存维护的一个对象内存物理地址列表的整数索引。因为Windows系统的内存管理经常将当前空闲的内存释放掉,当重新访问时在提交到物理内存,所以对象的物理地址是变化的,不允许程序通过物理地址来访问对象。HDC是设备描述表句柄。CDC是设备描述表类。
2.利用递归的手段计算N!
int n,j=1; int find(int n){ if(n==0||n==1) return j=1; else return find(n-1)*n; }
3.用递归的方法计算斐波那契数列的通项。
f1=f2=1,后一项是前两项之和。
4.打靶10中90环问题。
int sum,socre[10]; void Cumput(int socre,int num) { if(socre<0||socre>(num+1)*10) return; if(num==0){ socre[num]=socre; output(); return; } for(int i=0;i<=10;i++){ socre[num]=i; Cumput(socre-i,num-1); } } void output(){ for(i=9;i>=0;i--){ cout<<socre[i]<<endl; } ++sum; }
4.介绍一下STL和容器,并举例说明vector。
标准模板库是基于模板的容器类库,包括链表,队列,堆栈。还包含一些常用的算法,排序和查找。标准模板库是经过多次的调试和测试的,具有很高的性能和重用性。
容器是包含其他对象的对象。主要分为两种顺序和关联式的,顺序容器对其成员的顺序访问和随机访问。关联容器则通过优化关键值来访问它们的元素。标准容器库在不同的系统是可以移植的。所有标准容器库的定义都在 using namespace std中。
vector对象指针能够自动析构,所以不需要调用delete。
与erase不同的是,remove函数删除元素后并不会改变vector的大小,只是把后面的元素往前移,并返回一个指向vector末尾的新迭代器。
执行remove之后,你可以手工删除从NewEnd开始到xx.end()之前的所有元素,而且效率不会低。
5.何为泛型编程?
STL就是泛型编程的一个例子,表示用一致的方式编程是可能的。即我所描述的与语言无关。
一种基于发现高效算法的最抽象表示的编程方法。
相关文章推荐
- 2016年软考程序员模拟预测习题20题
- 2016软考程序员试题选择题(含答案解析)
- 操作系统常见面试题
- 产品和程序员 对话
- 【笔试/面试】—— 数组中第二大的数
- BAT面试笔记
- 【笔试/面试】—— 判断一个链表是否有环
- Java高级面试题积累(二)
- 网易游戏2015年暑期实习生面试经历-游戏研发project师
- 百度面试题:malloc/free 与 new/delete 的区别
- 那些NB的程序员都在干嘛?
- 2016年腾讯web前端实习生面试记录
- 2016 年最值得程序员阅读的开源书:《全栈增长工程师指南》
- 2016网易web前端开发实习生面试记录
- 黑马程序员基础评测:面向对象(上)
- 阿里校招面试
- c#面试2(选择题)
- 那些著名或非著名的iOS面试题-前编
- 【笔试/面试】—— 计算一个数二进制形式中 0 的个数
- Web前端开发笔试&面试_01(mi:)