面试
文章平均质量分 86
君记否
么么哒^ ^
展开
-
关于8086的那点事
<br /><br />8086微处理器共有4个16位的段寄存器,在寻址内存单元时,用它们直接或间接地存放段地址。<br /> 代码段寄存器CS:存放当前执行的程序的段地址。<br /> 数据段寄存器DS:存放当前执行的程序所用操作数的段地址。<br /> 堆栈段寄存器SS:存放当前执行的程序所用堆栈的段地址。<br /> 附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。<br />由cs:ip构成指令地址,ss:sp构成堆栈的栈顶地址指针。DS和ES用作数据段和附加段的段地址(段起始地转载 2010-11-27 16:10:00 · 808 阅读 · 0 评论 -
哪些行为和心态妨碍你的沟通
<br />有没有感觉在工作中,和有些人沟通会非常费劲?当然,沟通双向双向的,需要双方共同的努力。但是如果有很<br />多人感觉和某个人沟通都存在障碍的话,可能就是他的问题了。<br />我在工作中也遇到过类似的人,这里总结一下妨碍沟通的几种行为或心态,看看你有没有这个问题,也欢迎你的<br />讨论。<br />1、语言粗鲁,容易激动。<br />这是最常见的问题。有些人一开口就满嘴脏话,火药味十足,或者慷慨激昂。本来一次很普通的交流,结果好像<br />被搞成世界大战。对方如果有涵养,有胸怀,不和他一转载 2011-01-04 17:10:00 · 558 阅读 · 0 评论 -
字符串匹配 进程和线程的区别 五元组
<br />4、字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符 串的个数 )<br /> int countABC(* s) <br /> {<br /> int i = 0;<br /> int j = 0;<br /> int num = 0;<br /> scanf("%s",s);<br /> int len = strlen(s);<br /> for (i=0; i<len-3; i++)<br /转载 2010-11-13 15:50:00 · 2886 阅读 · 0 评论 -
N个人围成一圈报数,报到某一个数m的就出局,问你最后剩下来的人的号码?
<br />算法如下: <br /> //函数接收n和m,返回最后出圈的是第几个人 <br /> /*e.g. yuesefu(5,2)=3 <br /> yuesefu(2,100)=1*/ <br /> int yuesefu(int n,int m) <br /> { <br /> int i,r=0; <br /> for (i=2;i转载 2010-11-13 15:09:00 · 12237 阅读 · 0 评论 -
c语言深度剖析 -- 读书笔记
<br />1、linker:将一个链接选项放入目标文件中,你可以使用这个指令来代替由命令行传入的或者在开发环境中设置的链接选项,你可以指定/include选项来强制包含某个对象,例如:<br />#pragma comment(linker, "/include:__mySymbol")<br /> <br />原创 2011-01-13 11:46:00 · 541 阅读 · 0 评论 -
西山居 笔试题
1. Char szTest[]=”12345/t/n/0abcd/0”;则 strlen(szTest)值为__7__, sizeof(szTest)值为_14__2. Int anTest[5][10]; int n1=&anTest[4]- &anTest[10], n2= &anTest[3][1]- &anTest[1][3]; 则 n1和n2 的值为_-6,18___.3. Char szNum[]=”123456789”; intn= *(原创 2010-11-19 20:08:00 · 4612 阅读 · 0 评论 -
中兴面试
<br />技术面:<br /> 1、平衡二叉树的定义<br /> 2、前序、中序、后序(任意两个推出第三个的可能性)<br /> 3、排序的种类<br /> 4、操作系统的作用<br /> 5、进程间通信的作用<br /> 6、break/continue的区别<br /> goto语句可以避免么?<br /> 递归在C语言中怎么替换?<br /> 7、数据库的三个基本数据模型<br />转载 2010-11-21 22:36:00 · 862 阅读 · 0 评论 -
找树中两个节点的最近公共祖先
#include #include structNode{ constNode*left,*right; constchar* name; Node(constNode*left,constNode*right,constchar* name) :left(left), right(right), name(name) {} Node(constchar* name) :left(NULL), right(NULL), n转载 2010-11-22 22:44:00 · 734 阅读 · 0 评论 -
猫和老鼠玩象棋问题
<br />1. 猫和老鼠玩象棋,玩了M+N局,猫赢了M局 老鼠赢了N局 N>M,而且在整个过程中,猫的得分从来没有超过过老鼠,问共有多少种可能的比赛得分过程<br />第一题没推出来最后公式,不过规律很简单:<br />f(m,n) = f(m-1,n) + f(m,n-1)<br />回溯条件:<br />f(0,n) = 1<br />f(m,n) = 0 (m>n)<br />程序:<br />int calc(int m, int n) {<br /> if (m ==转载 2010-11-22 22:00:00 · 772 阅读 · 0 评论 -
广数面试题的一些总结:static,const,volatile作用
<br />static:<br />(1)局部静态变量<br />(2)外部静态变量/函数<br />(3)静态数据成员/成员函数<br />下面就这三种使用方式及注意事项分别说明<br />一、局部静态变量<br />在C/C++中, 局部变量按照存储形式可分为三种auto, static, register<br />与auto类型(普通)局部变量相比, static局部变量有三点不同<br /> <br />1. 存储空间分配不同<br />auto类型分配在栈上, 属于动态存储类别, 占动态存储区转载 2011-03-08 21:42:00 · 1272 阅读 · 1 评论 -
面试自我评价
经历过这么多次面试,心早已经千疮百孔了,可是还没找到中意的好公司。把一些常见的面试题目总结一下吧,以后也好照搬。Y嘎,你要加油哦。1、请你自我介绍一下。原创 2011-03-10 08:41:00 · 1344 阅读 · 0 评论 -
(轉貼) Java中最值得C++借鉴的特性s (C/C++) (Java)
<br />1995年出现的Java语言确实是一门伟大的语言,尽管它也不是完美的语言,而C++是一门比较"古老"的预言了,Java中有很多值得C++借鉴的东西。不知道未来的C++ 0x标准出来以后,C++会变成怎样?<br /><br /><br />1.强大的反射机制和RTTI特性<br />这个特性是当前流行的J2EE framework的基础,如Spring,Hibernate,无不利用了Java强大的反射机制。<br />Java可以在运行期动态创建class,并且invoke某一个方法。<转载 2011-03-09 19:27:00 · 616 阅读 · 0 评论 -
反转链表,取得链表中间值,增加节点操作
<br />struct node{<br /> int data;<br /> node *next;<br />};<br /><br />node* reverse_list(node *head)<br />{<br /> if (head == NULL || head->next == NULL)<br /> {<br /> return head;<br /> }<br /> node *temp = h原创 2011-03-13 14:16:00 · 632 阅读 · 0 评论 -
postmessage 、sendmessage区别
<br /><br />本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:<br />1、SendMessage、PostMessage的运行机制。<br />2、SendMessage、PostMessage的运行内幕。<br />3、SendMessage、PostMessage的内部实现。<br />注:理解这篇文章之前,必须先了解Windows的消息循环机制。<br /> <br />1、SendM转载 2011-03-14 11:43:00 · 519 阅读 · 0 评论 -
阿里云的笔试(C++方向)
1、有一个size1000的ector,删除其中的第5,6,7号元素,要求效率高2、数列L中有n个整数,其中K个数字出现了两次,1个数字出现了一次,所以n=2k+1;请在使用O(1)空间的前提下,尽快找出只出现一次的那个数字,并说明算法的复杂度。3、有一个文件,存转载 2011-09-20 09:30:45 · 2525 阅读 · 0 评论 -
主题:谷歌的一道面试题,请大家集思广益
是有关算法的 如果有一个等差数组,然后对这个数组里面的每个元素做如下操作 1. 如果这个元素是偶数,除以2, 然后得到的数字再分析是否是偶数,如果还是,继续除2,一直除到是奇数, 2. 如果这个元素是奇数,那么就保持原样 这样就得到了另外一个数组, 现在要求根转载 2011-09-20 15:10:35 · 679 阅读 · 0 评论 -
常见算法笔试或面试题
<br />Problem 3:用最简单的方法判断一个LONG整形的数A是2^n(2的n次方)<br />提示:x&(x-1)<br /> <br />转载 2011-01-04 16:18:00 · 490 阅读 · 0 评论 -
趣味题系列:帽子戏法;警察抓逃犯问题 ;史密斯夫妇握手问题
6、题目: 现在有10个人被一个魔鬼逮住了。魔鬼对于直接把人杀掉的方法不感兴趣了。于是,他就想了一个杀人的新花样。是这样的,一天晚上,魔鬼向这十个人宣布了游戏规则,即明早他要把他们10个人排成一排,然后从一堆既有无限多的白帽子混会着无限多的黑帽子的帽子堆里为每个人随机抽取一顶帽子,给他们10个人都戴上帽子。因为10个人是排成一排的,所以排在第10个的人可以看到前面9个人帽子的颜色,排在第9个人可以看到前面8个人的帽子的颜色,...以此类推。然后,魔鬼会从排在第10个人开始,问他,你头上的帽转载 2010-12-27 13:49:00 · 4428 阅读 · 0 评论 -
计算一个整形数组里的连续元素和的最大值
<br />void max_sum(int *a, int len, int &low, int &high, int &max)<br />{<br /> int temp_max = 0;<br /> int temp_sum = 0;<br /> int i = 0;<br /> int temp_l =0, temp_h = 0;<br /> for (; i < len; i++)<br /> {<br /> if (a[i] < 0)<br /原创 2010-12-22 11:21:00 · 742 阅读 · 0 评论 -
面试题总结
1、什么是中断?中断发生时CPU做什么工作?中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。原创 2010-11-27 16:36:00 · 586 阅读 · 0 评论 -
每天一道算法题8 在排序数组中查找和为给定值的两个数字
<br />题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。<br />例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。<br />分析:如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的数字。可惜这种思路需要的时间转载 2010-12-02 13:16:00 · 693 阅读 · 0 评论 -
从字符串中找出一个最长的不含重复字符的子字符串
趋势科技2011校园招聘的一道编程笔试题题目:编写一个函数int search(char *text),text为输入的字符串,从字符串中找出一个最长的不含重复字符的子字符串,例如“axdbx”,返回4,子字符串为“axdb”,而“axdbxce”,返回5,子字符串为“dbxce”。以下是我的答案,当然,较当时答题时的答案少有改动,但思路是一样的,毕竟答题时没有环境让我去debug。该算法时间复杂度为O(n)。并且不需要反复重置pos数组,每次访问到重新赋值即可。int find_max_str(char*原创 2010-12-03 22:54:00 · 2279 阅读 · 2 评论 -
设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。<br />分析:这是去年google的一道面试题。<br />我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。<br />在栈里添加一个成员变量存放最小元素(或最小元素的位置)。每次push一个新元素转载 2010-12-02 17:24:00 · 530 阅读 · 0 评论 -
字符串全排列代码
Permutation(char a[], int start, int end)<br />{<br />int i;<br />char temp;<br />if(start == end)<br /> {<br />for(i =0; i <= end; i++)<br /> printf(" %c ",a[i]);<br /> printf("/n");<br /> }<br />else<br /> {<br />fo转载 2010-12-02 14:36:00 · 533 阅读 · 0 评论 -
各种排序算法分析总结
<br />排序算法:<br /> 1)分类:<br /> 1)插入排序(直接插入排序、希尔排序)<br /> 2)交换排序(冒泡排序、快速排序)<br /> 3)选择排序(直接选择排序、堆排序)<br /> 4)归并排序<br /> 5)分配排序(箱排序、基数排序)<br /> 所需辅助空间最多:归并排序<br /> 所需辅助空间最少:堆排序<br /> 平均速度最快:快速排序<br /> 不稳定:快速排序,希尔排序,堆排序。<br /> 1)选择排序算法的时候<br /> 1.数转载 2010-12-05 22:30:00 · 684 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
<br />作者Winter <br />出处:http://www.stlchina.org/twiki/bin/view.pl/Main/STLSortAlgorithms<br />0 前言: STL,为什么你必须掌握 <br />--------------------------------------------------------------------------------<br />对 于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都转载 2010-12-08 10:41:00 · 527 阅读 · 0 评论 -
每天一道算法题10 找出数组中两个只出现一次的数字
<br />题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。<br />分析:这是一道很新颖的关于位运算的面试题。<br />首先我们考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。<br />这个题目的突破口在哪里?题目为什么要强调有一个数字出现一次,其他的出现两次?我们想到了异或运算的性质:任何一个数字异或它自己都等于0。也就是说,如果我们从转载 2010-12-02 15:28:00 · 521 阅读 · 0 评论 -
找出两个链表的第一个公共结点
<br />题目:两个单向链表,找出它们的第一个公共结点。<br />链表的结点定义为:<br />structListNode<br />{<br /> int m_nKey;<br /> ListNode* m_pNext;<br />};<br />分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软的面试题中,链表出现的概率相当高。<br />如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的m_pNext都指向同一个转载 2010-12-02 15:51:00 · 2892 阅读 · 0 评论 -
在字符串中删除特定的字符
<br />题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。<br />分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部分,因为写程序操作字符串能很好的反映我们的编程基本功。<br />要 编程完成这道题要求的功能可能并不难。毕竟,这道题的基本思路就是在第一个字符串中拿到一个字符,在第二个字符串中查找一下,看它是不是在第二个字符转载 2010-12-02 17:06:00 · 535 阅读 · 0 评论 -
花费我一下午时间的快速排序
<br />快速排序这个算法看似很简单,但折磨了我一下午,主要是边界值问题,看来以后得好好研究了,下面贴出实现代码。<br />每一行代码都有每一行代码的作用,比如说那两个循环,换一种写法都不行。<br /> <br />void quick_sort(int *a, int low, int high)<br />{<br /> int begin = low;<br /> int j = high + 1;<br /> while(low < j)<br /> {<br />原创 2010-12-05 22:16:00 · 890 阅读 · 0 评论 -
每天一道算法题15 含有指针成员的类的拷贝
<br />题目:下面是一个数组类的声明与实现。请分析这个类有什么问题,并针对存在的问题提出几种解决方案。<br />template<typename T> class Array<br />{<br />public:<br /> Array(unsigned arraySize):data(0), size(arraySize)<br /> {<br /> if(size > 0)<br /> da转载 2010-12-07 11:09:00 · 418 阅读 · 0 评论 -
每天一道算法题19 寻找丑数
<br />题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。<br />分析:这是一道在网络上广为流传的面试题,据说google曾经采用过这道题。<br />所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数的定义,丑数只能被2、3和5整除。也就是说如果一个数如果它能被2整除,我们把它连续除以2;如果能被3整除,就连续除以3;如果转载 2010-12-07 11:41:00 · 453 阅读 · 0 评论 -
Fibonacci(斐波那契)序列的递归和非递归算法
<br />Fibonacci(斐波那契)序列的递归算法大家都已经很熟悉了:// Fibonacci序列第n项的值<br />// 递归算法<br />unsigned int Fib1(unsigned int n)<br />{<br /> if (n == 1 || n == 2)<br /> return 1;<br /> else<br /> return Fib(n - 1) + Fib(n - 2);<br />}<br转载 2010-12-07 11:30:00 · 650 阅读 · 0 评论 -
求 a的b次方对c求余 的结果
<br />求 a的b次方对c求余 的结果,其中a b c都是非负整数<br />求 a的b次方 最简单的方法是<br /> s = 1;<br /> for( i=0; i!=b; ++i ) s*=a;<br /> return s;<br />这个算法效率太低,假如只能想到这个算法,出门别说自己是搞软件的^_^<br />考虑到 a^b = (a的平方)^(b的一半) 这个公式,可以写成<br /> if(b==0) return 1;<br />转载 2010-12-20 17:12:00 · 6869 阅读 · 0 评论 -
什么是TCP 三次握手及为什么进行三次握手? TCP的可靠性传输是如何保障
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和A转载 2010-11-13 16:37:00 · 4540 阅读 · 0 评论