面试题目
HarbinZJU
这个作者很懒,什么都没留下…
展开
-
链表反转
单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:struct linka { int data;转载 2010-11-10 23:25:00 · 1063 阅读 · 0 评论 -
#pragma once与#ifndef #define ...#endif的区别
#pragma once这个是编译相关,就是说在这个编译系统上能用,但是在其他编译系统不一定行,也就是说移植型差。不过现在基本上已经是每个编译器都有这个定义了.#ifndef #define ...#endif这个是C++语言相关,这是C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的。如果写的程序要跨平台,最好使用这种方式。转载 2010-08-27 17:29:00 · 780 阅读 · 0 评论 -
COM编程入门:第二部分——深入COM服务器
本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口。继上一篇COM编程入门之后,本文将讨论有关COM服务器的内容,解释编写自己的COM接口和COM服务器所需要的步骤和知识,以及详细讨论当COM库对COM服务器进行调用时,COM服务器运行的内部机制。 如果你读过上一篇文章。应该很熟悉COM客户端是怎么会事了。本文将讨论COM的另一端——COM服务器。内转载 2010-08-27 16:09:00 · 1004 阅读 · 0 评论 -
面试常考的常用数据结构与算法
数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本的概念和算法,或者是一些变形,然后让你去实现。也许看起来简单,但是如果真让你在纸上或者是计算机上快速地完成一个算法,并且设计测转载 2010-08-27 02:02:00 · 6614 阅读 · 0 评论 -
面试前你一定要做的14件事
要得到任何一个职位,必须经过面试这一关,短短几十分钟的面试也许就决定着你的职业生涯,当你接到企业的面试通知电话后,应该做什么呢?这里,不妨听听猎头老刘的几点建议。面试前,你一定要做的十四件事一、接到面试通知电话时一定要问清楚应聘的公司名称、职位、面试地点(包括乘车或开车的路线)、时间等基本信息,最好顺便问一下公司的网址、通知人的姓名和面试官的职位等信息。最后,别忘了道声谢。这里提醒大家,尽转载 2010-08-26 10:49:00 · 947 阅读 · 0 评论 -
微软的22道数据结构算法面试题(含答案)
1、反转一个链表。循环算法。 1 List reverse(List l) { 2 if(!l) return l; 3 list cur = l.next; 4 list pre = l; 5 list转载 2010-08-26 00:05:00 · 1310 阅读 · 0 评论 -
Windows消息机制要点
1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam),当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)2 消息类型 1) 系统定义消息(System-Defined Messages) 在SDK转载 2010-08-23 16:34:00 · 667 阅读 · 0 评论 -
__declspec(selectany) 的作用是什么
在MFC,ATL的源代码中充斥着__declspec(selectany) 的声明。selectany可以让我们在.h文件中初始化一个全局变量而不是只能放在.cpp中。比如有一个类,其中有一个静态变量,那么我们可以在.h中通过类似" __declspec(selectany) type class::variable = value; "这样的代码来初始化这个全局变量。既是转载 2010-08-23 09:22:00 · 769 阅读 · 0 评论 -
关于C++中的public,protected, private
C++中的public,protected, private第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以转载 2010-08-21 21:25:00 · 782 阅读 · 0 评论 -
TCP三次握手协议
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端转载 2010-08-05 09:16:00 · 1178 阅读 · 0 评论 -
深度剖析消息反射机制
摘要:在前面我们分析了控件通知消息WM_NOTIFY,和WM_NOTIFY紧密联系的还有一个MFC新特性:消息反射。本文中,我想就这个问题作一个全面的论述,如果有错误,还望各路大虾批评指正。 什么是消息反射? 在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR。对于从子控件发来的消息,父控件有可能在转载 2010-11-06 17:01:00 · 962 阅读 · 1 评论 -
C语言中关于自加的几个小题
下面几个题目的输出分别是? int i = 5; i = i++ * ++i; printf("%d", i); int i = 5; i = i++, i++ * ++i; printf("%d", i); int原创 2010-08-27 22:07:00 · 1015 阅读 · 0 评论 -
关于Windows内核对象句柄在进程空间内的存储
当一个进程被初始化时,系统会为它分配一个句柄表。该句柄表只用于内核对象(简单的说就是由CreateFile, CreateMutex, CreateXXXX这类函数创建的对象),不用于用户对象或G D I 对象。下表显示了进程的句柄表的样子,它是个数据结构的数组。每个结构都包含一个指向内核对象的指针、一个访问屏蔽和一些标志。索引内核对象内存块的指针访问屏蔽(标志原创 2010-08-27 22:13:00 · 1134 阅读 · 0 评论 -
WM_PAINT和WM_DRAWITEM/OnPaint()和与OnDrawItem()区别
OnDrawItem是画窗口中的子控件的,因为它的入口参数LPDRAWITEMSTRUCT带入不同子控件的相关参数,而且,你得把字控件设置成“自画”类型,才会调用到OnDrawItem,顺便说一下自画,不是所有设置成自画类型的控件都会调用父窗口的OnDrawItem,例如ListBox的自画,你就必须重载CListBox的DrawItem方法和MeasureItem方法才可以,但象菜单,按钮等的自转载 2010-11-01 10:55:00 · 2584 阅读 · 0 评论 -
深入探讨MFC消息循环和消息泵
首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage) 和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是 从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送转载 2010-08-27 22:18:00 · 756 阅读 · 0 评论 -
Mutex与CRITICAL_SECTION的比较
Mutex与CRITICAL_SECTION,这两个用于线程同步的对象,使用起来方法和作用都很相似,但还是有些许区别,参考下表(摘自 Windows核心编程),可以帮助选择最合适的对象。互斥对象与关键代码段的比较特性互斥对象关键代码段运行速度慢(内核对象)快(用户模式)是否能够跨进程边界来使用是否声明HANDLE原创 2010-08-27 22:04:00 · 1372 阅读 · 0 评论 -
COM编程入门:第一部分——什么是COM,如何使用COM
本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。 COM即组件对象模型,是Component Object Model 取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各种文档中也转载 2010-08-27 16:07:00 · 2375 阅读 · 0 评论 -
冒泡排序、选择排序、插入排序 算法实现(C++)
这三种排序方法都是O(N2)的,概念和实现如下。 冒泡排序:通过N-1次对剩余未排序元素中最大(小)元素的上浮来实现排序,上浮过程通过交换相邻元素实现。 templatevoid BubbleSort(ElementType A[], int N){ ElementType Temp; for (int i=0; i { fo原创 2010-08-27 14:54:00 · 4831 阅读 · 1 评论 -
用VC进行COM编程,必须要掌握哪些COM理论知识
我见过很多人学COM,看完一本书后觉得对COM的原理比较了解了,COM也不过如此,可是就是不知道该怎么编程序,我自己也有这种情况,我也是经历了这样的阶段走过来的。要学COM的基本原理,我推荐的书是《COM技术内幕》。但仅看这样的书是远远不够的,我们最终的目的是要学会怎么用COM去编程序,而不是拼命的研究COM本身的机制。所以我个人觉得对COM的基本原理不需要花大量的时间去追根问底,没有必要,是吃力转载 2010-08-26 15:54:00 · 1759 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
0前言: STL,为什么你必须掌握对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已转载 2010-08-25 09:01:00 · 1266 阅读 · 0 评论 -
成员函数的重载、覆盖与隐藏
转自《林锐高质量C++编程指南》 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于转载 2010-07-26 16:43:00 · 808 阅读 · 0 评论 -
分析与理解MFC消息反射机制
前言:我曾写过一篇文章对通知消息WM_NOTIFY进行分析,消息反射是MFC中对通知消息的处理方式,两者之间关系十分紧密,因此,我写了这篇文章,希望能够描绘出通知消息的完整印象。消息反射的基础知识1、消息反射解释:父窗口将控制子窗口发给它的通知消息,首先反射回子窗口进行处理(即给控制子窗口一个机会,让控制子窗口处理此消息),这样通知消息就有机会能被子窗口自身进行处理。转载 2010-11-06 18:26:00 · 1129 阅读 · 1 评论 -
C语言面试题(嵌入式开发方向,附答案及点评)
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因转载 2010-08-27 22:58:00 · 9483 阅读 · 1 评论 -
在一个模块中分配的内存在另外一个模块释放?
在linux下跑得一直很好的程序,到了windows下面就跑不起来了。内存异常,检查了一下,很快发现是因为在主程序中释放了一块在DLL中分配的内存,这种问题虽然早就知道了,但是一直没有仔细考虑过,所以今天就深入研究了一下。在linux下,每个进程只有一个heap,在任何一个动态库模块so中通过new或者malloc来分配内存的时候都是从这个唯一的heap中分配的,那么自然你在其它随便什么地转载 2010-09-25 17:28:00 · 1652 阅读 · 0 评论 -
VC 双缓冲绘图
在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。 因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAIN转载 2010-11-12 13:11:00 · 873 阅读 · 0 评论