面试题
einstein991225
这个作者很懒,什么都没留下…
展开
-
判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas转载 2012-08-28 14:05:49 · 472 阅读 · 0 评论 -
虚函数
前奏 有关虚函数的问题层出不穷,有关虚函数的文章千篇一律,那为何还要写这一篇有关虚函数的文章呢?看完本文后,相信能懂其意义之所在。同时,原狂想曲系列已经更名为程序员编程艺术系列,因为不再只专注于“面试”,而在“编程”之上了。ok,如果有不正之处,望不吝赐教。谢谢。第一节、一道简单的虚函数的面试题题目要求:写出下面程序的运行结果?//谢谢董天喆提供的转载 2012-09-14 01:28:28 · 1618 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2012-10-09 02:01:08 · 595 阅读 · 0 评论 -
笔试常考--C++中的虚函数(virtual function)
C++中的虚函数(virtual function) 1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout };class B: public A{public:virtual v转载 2012-10-09 01:26:36 · 1084 阅读 · 0 评论 -
腾讯二面情况,9月份找工作的童鞋进
http://blog.csdn.net/zz198808/article/details/7879921说明:虽说题目是二面准备,其实更多的是我一面是所考到的知识。不管几面吧,反正都是有用且常考的知识。简述TCP协议在数据传输过程中收发双方是如何保证数据包的可靠性的答:(1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区;(2)并为每个已发送的数转载 2012-09-20 21:26:44 · 1724 阅读 · 0 评论 -
Static关键字用法总结
http://blog.csdn.net/ljinddlj/article/details/2495209Static关键字用法总结 Moakap整理 2008-05-30 最近经历了一些笔试和面试,经常会被问到static关键字的作用,感觉虽然知道一些,但每次回答的都不够满意,今天在网上查了一下,总结总结,恩,以备后用! static关键字是C, C++中都存在的转载 2012-09-24 18:37:36 · 522 阅读 · 0 评论 -
C++种static关键字的用途
http://www.cnitblog.com/ictfly/archive/2006/11/25/19594.html本文只是本人对C++中关于静态类型的一个总结,如错误之处,请大家帮我改正。我分两个方面来总结,第一方面主要是相对于面向过程而言,即在这方面不涉及到类,第二方面相对于面向对象而言,主要说明static在类中的作用。 一、在面向过程设计中的static关键字转载 2012-09-24 18:36:20 · 471 阅读 · 0 评论 -
任何,进程,线程的区别
答:三个词中,任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。 进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完转载 2012-09-24 21:26:26 · 560 阅读 · 0 评论 -
2011深信服校园招聘笔试面试
http://blog.sina.com.cn/s/blog_48c9576b0100me1y.html9月26号深信服校园招聘笔试都说深信服的题又偏又难,果然不假。不过还有有很多值得多思考的题。这套题共有10页,涵盖了操作系统,网络,汇编程序,算法和数据结构,题还是很有难度的。但是操作系统,网络,汇编程序都不是很多,都是1-2道题的样子,但是都很偏,不好做。以转载 2012-09-24 17:47:38 · 2289 阅读 · 0 评论 -
深信服笔试题(转载)
1. 匹配"[10]:dddddd"和"[9]:abcdegf"但不匹配"[a]:xfdf"的正则表达式。2. int a[5]={1,2,3,4,5}; printf("%d\n", *((int*)(&a+1)-2); 输出是什么。 答:4. 分析:(int*)(&a+1)=a+5=&a[5]编程题:1. 给定一个int型转载 2012-09-24 18:16:49 · 1265 阅读 · 0 评论 -
C++ STL基本容器比较
在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、vector、list、deque、set 是有序转载 2012-09-25 13:13:44 · 571 阅读 · 0 评论 -
字符串处理
第四章、现场编写类似strstr/strcpy/strpbrk的函数 作者:July。 说明: 如果在博客中代码使用了\n,csdn blog系统将会自动回给我变成/n。据后续验证,可能是原来旧blog版本的bug,新版已不存在此问题。至于,本文代码,日后统一修正。July、2012.05.02。 微博:http://weibo.com/julywei转载 2012-09-14 00:37:21 · 740 阅读 · 0 评论 -
C语言字符串反转函数
http://www.cnblogs.com/pianoid/archive/2011/10/30/string_reverse_in_c_language.html找工作前写了篇blog说要做些常见的笔试面试题,像单链表反转啊字符串反转啊之类的题目,但是只写了一篇单链表反转就没再继续写下去,因为觉得实在没什么好写的,不过都是一些简单的指针操作罢了,但是还是有很多新手问这个问题,而且我转载 2012-09-14 01:12:59 · 1280 阅读 · 0 评论 -
第二十五章:二分查找实现(Jon Bentley:90%程序员无法正确实现)
第二十五章:二分查找实现(Jon Bentley:90%程序员无法正确实现)作者:July出处:结构之法算法之道引言 Jon Bentley:90%以上的程序员无法正确无误的写出二分查找代码。也许很多人都早已听说过这句话,但我还是想引用《编程珠玑》上的如下几段文字: “二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么转载 2012-09-14 01:03:22 · 1246 阅读 · 0 评论 -
选择排序
void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void SelectSort(int arr[],int count){ for(int i=0;i<count-1;i++) { int minIndex=i; for(int j=i+1;j<count;j++) { if(arr[j]<arr[min原创 2012-09-08 12:53:32 · 502 阅读 · 0 评论 -
归并排序
#include "stdafx.h"void MergeArray(int arr[], int first, int mid, int last, int temp[]) { int i = first, j = mid + 1; int k = 0; while (i <= mid && j <= last) {原创 2012-09-09 11:19:14 · 442 阅读 · 0 评论 -
鸡尾酒排序(改进的冒泡排序)
void CockTail(int arr[],int count){ int bottom = 0; int top = count-1; bool flag = true; while(flag) { flag=false; for(int i=bottom;i<top;i++) { if(arr[i]>arr[i+1]) { swap原创 2012-09-08 00:22:46 · 1389 阅读 · 2 评论 -
快速排序
int partition(int arr[], int left, int right){ int i = left, j = right; int tmp; int pivot = arr[(left + right) / 2]; while (i <= j) { while (arr[i] < pivot) i++; while (arr[j] >原创 2012-09-08 00:24:34 · 393 阅读 · 0 评论 -
冒泡排序
void BubbleSort(int arr[],int count){ int temp=0; bool swapped=false; for(int i=1;i<count;i++) { swapped=false; for(int j=count-1;j>=i;j--) { if(arr[j-1]>arr[j]) { temp=arr[j-1];原创 2012-09-08 00:18:58 · 386 阅读 · 0 评论 -
直接插入排序
#include "stdafx.h" void insertSort(int arr[], int size) { int i,j; int temp; for (i = 1; i<size;i++) { temp = arr[i]; j=i-1;原创 2012-09-09 12:19:43 · 457 阅读 · 0 评论 -
堆排序
#include "stdafx.h"#include #include #include const int HEAP_SIZE = 13; //堆積樹大小 int parent(int);int left(int);int right(int);void Max_Heapify(int [], int, int);void Build_Max_Heap(int []);原创 2012-09-09 11:58:04 · 592 阅读 · 0 评论 -
字符串处理
1.strcpy char * strcpy( char *strDest, const char *strSrc ) { assert( (strDest != NULL) &&(strSrc != NULL) ); char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’ ); return a原创 2012-09-11 17:10:48 · 454 阅读 · 0 评论 -
常用排序算法实现
1.插入排序 插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。 算法的复杂度也是简单的,排序第一个需要1的复杂度,排序第二个需要2的复杂度,因此整个的复杂度就是 1 + 2 + 3 + …… + N = O(N ^ 2)的复杂转载 2012-09-12 00:47:46 · 543 阅读 · 0 评论 -
c++虚函数
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过转载 2012-09-14 00:56:14 · 419 阅读 · 0 评论 -
Windows进程间通信的各种方法
进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProc转载 2012-09-25 15:52:31 · 1355 阅读 · 0 评论