人人范文网 其他范文

程序员面试范文(精选多篇)

发布时间:2022-07-25 12:06:40 来源:其他范文 收藏本文 下载本文 手机版

推荐第1篇:程序员面试自我介绍

程序员的工作就是软件开发,搞编程,敲代码,现在大多数程序员都是做网站开发,像我们看到的一个一个的网站,都是程序员一个代码一个代码敲出来的。本文是小编为大家整理的it简历自我介绍范文,欢迎大家阅读。程序员面试自我介绍篇一:

您好!我是一名即将于xxxx年毕业的xx大学xx学院学生,所学专业是计算机。大学四年来,我学习刻苦,成绩优异,曾多次获得奖学金。在师友的严格教益和个人努力下,我具备了扎实的基础知识。在软件方面,系统掌握了C语言,数据结构,数据库原理,汇编语言,软件工程等,并对面向对象的DELPHI和VC等Windows编程有一定了解。课外我还自学了VBVF编程,ASP动态网页及SQL Server等网络数据库编程语言。现已能独立编写专业的数据库管理系统。在硬件方面,通过参与单片机设计,组装收音机,网络工程的规划与管理及组建等实践活动,我掌握了计算机的工作原理及计算机网络原理技术。

自入校以来,我充分利用业余时间广泛的参加社会实践活动。在我校信息学院计算机实验室工作的两年里,不但使我的专业技能得到了升华,也使我的管理和组织才能得以发挥和进一步的锻炼,得到了领导和老师的肯定和表扬。而且,曾经在欧亚科技等一些公司的打工经历使我具有一定的营销经验和社会经历,且业绩斐然。除此之外,在校期间,我还做过家教、社会调查等社会实践活动,积累了丰富的实践经验。

若有幸加盟,我可以致力于贵公司的软件开发或根据公司的需要随时致力于某方面的工作和学习。“顺兮,逆兮,无阻我飞扬”是我的座右铭;“如临深渊,如履薄冰”是我的工作态度;“真诚,守信”是我的最大特点;开阔的胸襟使我获得许多朋友。聪明的头脑,创造的思维,开拓进取的坚韧,加上纯熟的专业技能,相信我是您的最佳选择。

程序员面试自我介绍篇二:

我是一名应届毕业生,来自辽宁省xx,农村生活铸就了我淳朴、诚实、善良的性格,培养了我不怕困难挫折,不服输的奋斗精神。我深知学习机会来之不易,在校期间非常重视计算机基础知识的学习,取得了良好的成绩。

经过学习后,我熟悉pc机的原理与构造,能熟练地应用windows系列和linux系列的各种操作系统,通过了劳动部《计算机调试与维修》的操作员级认证。

在学习专业知识的同时,还十分重视培养自己的动手实践能力,利用暑假参加了易商公司青岛分公司的局域网组建与维护;进行济南“一线天”网吧的组建与管理;直接参与了本学院南院、北院校园网建设的一期和二期工程,深得学院领导和老师的好评。现在仍在学院网络中心进行网络维护工作。丰富的实践活动使我巩固了计算机方面的基础知识,能熟练地进行常用局域网的组建与维护以及Internet的接入、调试与维护。

我冒昧向贵公司毛遂自荐,给我一个机会,给您一个选择,我相信您是正确的。

程序员面试自我介绍篇三:

我叫xx,是一名即将于20xx年7月毕业于中国民航大学计算机系的学生。借此择业之际,我怀着一颗赤诚的心和对事业的执著追求,真诚地推荐自己。

四年来,在师友的严格教益及个人的努力下,我具备了扎实的专业基础知识,系统地掌握了电子商务、计算机等有关理论;熟悉涉外工作常用礼仪;具备较好的英语听、说、读、写能力;能熟练操作计算机办公软件以及相关的编程和数据库操作。同时,我利用课余时间广泛地涉猎了大量书籍,不但充实了自己,也培养了自己多方面的技能。更重要的是,严谨的学风和端正的学习态度塑造了我朴实、稳重、创新的性格特点。

此外,作为一名班长,我带领班级体参加一系列活动,同时也锻炼了自己。祖辈们教我勤奋、尽责、善良、正直;中国民航大学培养了我实事求是、开拓进取的作风。我热爱贵单位所从事的事业,殷切地期望能够在您的领导下,为这一光荣的事业添砖加瓦;并且在实践中不断学习、进步。

程序员面试自我介绍篇四:

我是xx大学的计算机专业的应届毕业生。四年的学校教育,培养我成为一个敢于承担责任,对待生活乐观积极,吃苦耐劳的青年。在专业方面我的主攻方向是计算机工程。能熟悉掌微软系统,对Linux、Unix、有一定的了解。同时能较熟练操作C、Foxpro、VB、Acce、ASP、JSP等语言,同时对SQL、Oracle也有一定程度上的认识,能熟练操作Dreamweaver、Flash、Fireworks、Photoshop、Authoware等。

作为一名计算机专业的大学生,我热爱我的专业并为其投入了巨大的热情和精力。在学习生活中,我所学习的内容包括了从计算机的基础知识到运用等许多方面。通过对这些知识的学习,我对这一领域的相关知识有了一定程度的理解和掌握,此专业是一种工具,而利用此工具的能力是最重要的,在与课程同步进行的各种相关时践和实习中,具有了一定的实际操作能力和技术。在学校工作中,加强锻炼处世能力,学习管理知识,吸收管理经验。

在大学期间我还担任过团支书,具有很强的组织和协调能力。能在较短时间内适应高压力的工作。强烈的事业心和责任感使我能够面队任何困难和挑战。

我期望能在广阔的天地里展现自己的才能,希望能借助这个机会,找一个能展现自己实力的舞台。我自信能凭自己的能力和学识在毕业以后的工作和生活中克服各种困难,不断实现自我的人生价值和追求的目标。

推荐第2篇:程序员面试总结

程序员面试总结

这篇侧重于具体的笔试、面试的问题,至于是哪个公司的就

不去追究了,但一定是经常问到的,而且我嵌入式系统工程师和移动 开发工程师都参与了,问题要区别看待,那么自然就少了很多对C++ 问题的考察。

笔试

有一个教训是,题目让你编程实现的,不要罗列一大堆思想方

法,编程么,就是把你的代码写上去,比如写个非递归的中序遍历二 叉树,都知道用个栈就好了,但是还是要写的。

嵌入式中最常考的就是

(1)运算符优先级,实在记不下来,每次去前看一遍(没办法, 人家非要考)

(2)用变量a 给出下面的定义(《程序员面试宝典》,后面很多 题都是其中的),注意a)一个指向有10 个整型数数组的指针 b)一 个指向函数的指针,该函数有一个整型参数并返回一个整型数 c)一 个有10 个指针的数组,该指针指向一个函数,该函数有一个整型参 数并返回一个整型数

(3)结构体占用内存空间大小的计算,然后优化;考察内存对齐 (为什么要对齐?),其实不同编译器,不同平台都是有差别的,但 既然要考,把基本的弄清楚。

(4)剩下的对const 的理解,#define 和inline 的区别,typedef、volatile 的理解使用以及值传递、地址传递,内存空间分配(堆栈)

等宝典上都有。

(5)这里加两个代码的:a)CPU 大小端的判断(要理解)

[cpp]

1.int check_endian(){

2.union w{

3.int a;

4.char b;

5.}

6.c.a = 1;

7.return (c.b == 1)

8.}

b)求二进制数中1 的个数(《编程之美》),这个很常用,是一 些问题的基础,其中a 是要求1 个数的数

[cpp]

1.int num = 0;

2.while(a){

3.a &= (a-1);

4.num++;

5.}

6.return num;

(6)Java 中主要涉及接口、抽象类的理解,异常处理机制

(7)对内存回收时机的考察(恰当时候,不是一定回收),finalize

的执行,顺带的可以和final、finally 的理解一起出现,而且注意 finally 即使在return 后面,也照样执行;有些公司考到内存的分 代回收,可以了解下。

(8)字符串常量池的理解,题目的话就是结合new 创建对象和==、equal,问你创建了几个对象,判断两个对象是否相同,一般记住new 肯定创建新的引用,而是否指向同一个字符串用==无法判断,而单独 声明String 对象,那么就没有新创建对象。

(9)String 类的+操作,StringBuild 的优化和StringBuffer 的 区别,相类似的对各种容器的区别理解(List,Set,Map),而且会 说到线程安全SynchronizedMap 和ConcurrentHashMap 的区别;至于 真的考察Java 中I/O 类的联合使用,那就靠自己的经验了。

(10)内部类、泛型、反射好好看看《Java 编程思想》,基本应 该能搞定。而且你还会看到是否有sizeof,线程之间的协作问题等 等。

面试

不管答案怎样,面试的心态和表达技巧一定要多学习,不要

仅仅回答是或否,要有条理的展开,否则一个小时左右的面试会有各 种各样的问题,总有你答的不好的;面试是个人和人交流的过程,但 是简单基础的问题千万别错,否则后面一点机会没有。

(1)必问:进程间通信、写个擅长的排序或者网络公司问个TCP、UDP 区别,其实可以从问你DNS、HTTP、Ping 等属于哪一层,底层是 基于传输层的什么来考察你的;还有就是各种权限相关的,序列化相

关,C++的虚函数实现,Java 的内存回收机制,强调的是要用自己的 话说出来,尽量不要去背。嵌入式的基本nand nor Flash 的区别以 及笔试中的大小端、宏定义、断言等问题也常在面试中出现。

(2)常问在《编程之美》上的如摸石头的游戏3 篇, 求二进制 数中1 的个数 ,寻找最大的K 个数,斐波那契(Fibonacci)数列, 数组相关的如 求数组的子数组之和的最大值,求数组中最长递增子 序列 以及 桶中取黑白球等,很多是原题,也有就是以此为基础来做 的; 比如百万级数量的IP 段,一个区段对应一个地方(比如北京, 西安之类),给一个IP 查找确定是哪个地方

(3)设计模式 23 个常用的要了解一下,单例模式要会实现,看 看我推荐的书应该问题也不大的。

(4)Android 相关的也是些框架的理解,进程间通信,四大组件 的理解使用,从这些问题上看看你到底用到、学习到一个什么样程度, 对错估计不是特别在意的。

(5)非技术性的就是些项目难点,收获,感受,你的优势,证明 你的能力之类,还有就是你期望的工作环境、氛围,职业规划,理想; 有时会遇到压力的优缺点,把一个MP3 推销给聋子等问题。补充一下 的是,有时候会从你做的项目中问你对产品的思考,包括UI、功能 实现,性能优化等等。面试还是针对公司的特点,多看以往的面经比 较好。

最后要说的是不管你大

二、大三,研

一、研二,其实对于找

实习都是个非常好的锻炼机会,早早的了解自己的优势和需要弥补的

地方,同时也能证明你是个用心,早做准备之人,机会是留给有准备 的人的,祝你好运!后面会再写一篇关于工作,关于人生道路的选择 的。__

推荐第3篇:程序员面试智力题

1.考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?

答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。

2.用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。

答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。

3.用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,\"abcdefg\"移动3位就变成了\"defgabc\")。答案:把字符串切成长为m和n-m的两半。将这两个部分分别逆序,再对整个字符串逆序。

4.一个矩形蛋糕,蛋糕内部有一块矩形的空洞。只用一刀,如何将蛋糕切成大小相等的两块?

答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。

5.一块矩形的巧克力,初始时由N x M个小块组成。每一次你只能把一块巧克力掰成两个小矩形。最少需要几次才能把它们掰成N x M块1x1的小巧克力?

答案:N x M1次。

6.如何快速找出一个32位整数的二进制表达里有多少个\"1\"?用关于\"1\"的个数的线性时间?

答案1(关于数字位数线性):for(n=0; b; b >>= 1) if (b & 1) n++;

答案2(关于\"1\"的个数线性):for(n=0; b; n++) b &= b-1;

7.一个大小为N的数组,所有数都是不超过N-1的正整数。用O(N)的时间找出重复的那个数(假设只有一个)。一个大小为N的数组,所有数都是不超过N+1的正整数。用O(N)的时间找出没有出现过的那个数(假设只有一个)。

答案:计算数组中的所有数的和,再计算出从1到N-1的所有数的和,两者之差即为重复的那个数。计算数组中的所有数的和,再计算出从1到N+1的所有数的和,两者之差即为缺少的那个数。

8.给出一行C语言表达式,判断给定的整数是否是一个2的幂。

答案:(b & (b-1)) == 0

9.地球上有多少个点,使得从该点出发向南走一英里,向东走一英里,再向北走一英里之后恰好回到了起点?

答案:“北极点”是一个传统的答案,其实这个问题还有其它的答案。事实上,满足要求的点有无穷多个。所有距离南极点1 + 1/(2π)英里的地方都是满足要求的,向南走一英里后到达距离南极点1/(2π)的地方,向东走一英里后正好绕行纬度圈一周,再向北走原路返回到起点。事实上,这仍然不是满足要求的全部点。距离南极点1 + 1/(2kπ)的地方都是可以的,其中k可以是任意一个正整数。

10.A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?

答案:A把药放进箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。

11.一对夫妇邀请N-1对夫妇参加聚会(因此聚会上总共有2N人)。每个人都和所有自己不认识的人握了一次手。然后,男主人问其余所有人(共2N-1个人)各自都握了几次手,得到的答案全部都不一样。假设每个人都认识自己的配偶,那么女主人握了几次手?答案:握手次数只可能是从0到2N-2这2N-1个数。除去男主人外,一共有2N-1个人,因此每个数恰好出现了一次。其中有一个人(0)没有握手,有一个人(2N-2)和所有其它的夫妇都握了手。这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是0)。除去这对夫妻外,有一个人(1)只与(2N-2)握过手,有一个人(2N-3)和除了(0)以外的其它夫妇都握了手。这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是1)。以此类推,直到握过N-2次手的人和握过N次手的人配成一对。此时,除了男主人及其配偶以外,其余所有人都已经配对。根据排除法,最后剩下来的那个握手次数为N-1的人就是女主人了。

12.两个机器人,初始时位于数轴上的不同位置。给这两个机器人输入一段相同的程序,使得这两个机器人保证可以相遇。程序只能包含“左移n个单位”、“右移n个单位”,条件判断语句If,循环语句while,以及两个返回Boolean值的函数“在自己的起点处”和“在对方的起点处”。你不能使用其它的变量和计数器。

答案:两个机器人同时开始以单位速度右移,直到一个机器人走到另外一个机器人的起点处。然后,该机器人以双倍速度追赶对方。程序如下。

while(!at_other_robots_start) {

move_right 1

}

while(true) {

move_right 2

}

13.如果叫你从下面两种游戏中选择一种,你选择哪一种?为什么?

a.写下一句话。如果这句话为真,你将获得10美元;如果这句话为假,你获得的金钱将少于10美元或多于10美元(但不能恰好为10美元)。

b.写下一句话。不管这句话的真假,你都会得到多于10美元的钱。

答案:选择第一种游戏,并写下“我既不会得到10美元,也不会得到10000000美元”。

14.你在一幢100层大楼下,有21根电线线头标有数字1..21。这些电线一直延伸到大楼楼顶,楼顶的线头处标有字母A..U。你不知道下面的数字和上面的字母的对应关系。你有一个电池,一个灯泡,和许多很短的电线。如何只上下楼一次就能确定电线线头的对应关系?

答案:在下面把2,3连在一起,把4到6全连在一起,把7到10全连在一起,等等,这样你就把电线分成了6个“等价类”,大小分

别为1, 2, 3, 4, 5, 6。然后到楼顶,测出哪根线和其它所有电线都不相连,哪些线和另外一根相连,哪些线和另外两根相连,等等,从而确定出字母A..U各属于哪个等价类。现在,把每个等价类中的第一个字母连在一起,形成一个大小为6的新等价类;再把后5个等价类中的第二个字母连在一起,形成一个大小为5的新等价类;以此类推。回到楼下,把新的等价类区别出来。这样,你就知道了每个数字对应了哪一个原等价类的第几个字母,从而解决问题。

15.某种药方要求非常严格,你每天需要同时服用A、B两种药片各一颗,不能多也不能少。这种药非常贵,你不希望有任何一点的浪费。一天,你打开装药片A的药瓶,倒出一粒药片放在手心;然后打开另一个药瓶,但不小心倒出了两粒药片。现在,你手心上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是B。你如何才能严格遵循药方服用药片,并且不能有任何的浪费?

答案:把手上的三片药各自切成两半,分成两堆摆放。再取出一粒药片A,也把它切成两半,然后在每一堆里加上半片的A。现在,每一堆药片恰好包含两个半片的A和两个半片的B。一天服用其中一堆即可。

16.你在一个飞船上,飞船上的计算机有n个处理器。突然,飞船受到外星激光武器的攻击,一些处理器被损坏了。你知道有超过一半的处理器仍然是好的。你可以向一个处理器询问另一个处理器是好的还是坏的。一个好的处理器总是说真话,一个坏的处理器总是说假话。用n-2次询问找出一个好的处理器。

答案:给处理器从1到n标号。用符号a->b表示向标号为a的处理器询问处理器b是不是好的。首先问1->2,如果1说不是,就把他们俩都去掉(去掉了一个好的和一个坏的,则剩下的处理器中好的仍然过半),然后从3->4开始继续发问。如果1说2是好的,就继续问2->3,3->4,……直到某一次j说j+1是坏的,把j和j+1去掉,然后问j-1 ->j+2;或者从j+2 ->j+3开始发问,如果前面已经没有j-1了(之前已经被去掉过了)。注意到你始终维护着这样一个“链”,前面的每一个处理器都说后面那个是好的。这条链里的所有处理器要么都是好的,要么都是坏的。当这条链越来越长,剩下的处理器越来越少时,总有一个时候这条链超过了剩下的处理器的一半,此时可以肯定这条链里的所有处理器都是好的。或者,越来越多的处理器都被去掉了,链的长度依旧为0,而最后只剩下一个或两个处理器没被问过,那他们一定就是好的了。另外注意到,第一个处理器的好坏从来没被问过,仔细想想你会发现最后一个处理器的好坏也不可能被问到(一旦链长超过剩余处理器的一半,或者最后没被去掉的就只剩这一个了时,你就不问了),因此询问次数不会超过n-2。

17.一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?

答案:你可以把两个相机放在圆盘上相近的两点,然后观察哪个点先变色。事实上,只需要一个相机就够了。控制相机绕圆盘中心顺时针移动,观察颜色多久变一次;然后让相机以相同的速度逆时针绕着圆盘中心移动,再次观察变色的频率。可以断定,变色频率较慢的那一次,相机的转动方向是和圆盘相同的。

今天考完美国结构语言学,稍微轻松了一些。我把前几天向大家推荐的网页好好看了一遍,挑选了10个比较精彩的、不是很常见的、本Blog之前没有提过的智力题,并且把它们都整理到了一起,与大家一同分享。希望大家能够大呼过瘾~

1.给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分成两堆,使得每堆牌里正面朝上的牌的张数一样多。瞎子应该怎么做?

答案:把扑克牌分成两堆,一堆10张,一堆42张。然后,把小的那一堆里的所有牌全部翻过来。

2.如何用一枚硬币等概率地产生一个1到3之间的随机整数?如果这枚硬币是不公正的呢?

答案:如果是公正的硬币,则投掷两次,“正反”为1,“反正”为2,“正正”为3,“反反”重来。

如果是不公正的硬币,注意到出现“正反”和“反正”的概率一样,因此令“正反反正”、“反正正反”、“正反正反”分别为

1、

2、3,其余情况重来。另一种更妙的办法是,投掷三次硬币,“正反反”为1,“反正反”为2,“反反正”为3,其余情况重来。

3.30枚面值不全相同的硬币摆成一排,甲、乙两个人轮流选择这排硬币的其中一端,并取走最外边的那枚硬币。如果你先取硬币,能保证得到的钱不会比对手少吗?

答案:先取者可以让自己总是取奇数位置上的硬币或者总是取偶数位置上的硬币。数一数是奇数位置上的面值总和多还是偶数位置上的面值总和多,然后总是取这些位置上的硬币就可以了。

4.一个环形轨道上有n个加油站,所有加油站的油量总和正好够车跑一圈。证明,总能找到其中一个加油站,使得初始时油箱为空的汽车从这里出发,能够顺利环行一圈回到起点。

答案:总存在一个加油站,仅用它的油就足够跑到下一个加油站(否则所有加油站的油量加起来将不够全程)。把下一个加油站的所有油都提前搬到这个加油站来,并把油已被搬走的加油站无视掉。在剩下的加油站中继续寻找油量足以到达下个加油站的地方,不断合并加油站,直到只剩一个加油站为止。显然从这里出发就能顺利跑完全程。

另一种证明方法:先让汽车油箱里装好足够多的油,随便从哪个加油站出发试跑一圈。车每到一个加油站时,记录此时油箱里剩下的油量,然后把那个加油站的油全部装上。试跑完一圈后,检查刚才路上到哪个加油站时剩的油量最少,那么空着油箱从那里出发显然一定能跑完全程。

5.初始时,两个口袋里各有一个球。把后面的n-2个球依次放入口袋,放进哪个口袋其概率与各口袋已有的球数成正比。这样下来,球数较少的那个口袋平均期望有多少个球?

答案:先考虑一个看似无关的问题——怎样产生一个1到n的随机排列。首先,在纸上写下数字1;然后,把2写在1的左边或者右边;然后,把3写在最左边,最右边,或者插进1和2之间……总之,把数字i等概率地放进由前面i-1个数产生的(包括最左端和最右端在内的)共i个空位中的一个。这样生成的显然是一个完全随机的排列。

我们换一个角度来看题目描述的过程:假想用一根绳子把两个球拴在一起,把这根绳子标号为1。接下来,把其中一个小球分裂成两个小球,这两个小球用标号为2的绳子相连。总之,把“放进第i个球”的操作想象成把其中一个球分裂成两个用标有i-1的绳子相连的小球。联想我们前面的讨论,这些绳子的标号事实上是一个随机的全排列,也就是说最开始绳子1的位置最后等可能地出现在每个地方。也就是说,它两边的小球个数(1,n-1)、(2,n-2)、(3,n-3)、……、(n-1,1)这n-1种情况等可能地发生。因此,小袋子里的球数大约为n/4个。准确地说,当n为奇数时,小袋子里的球数为(n+1)/4;当n为偶数时,小袋子里的球数为n^2/(4n-4)。

6.考虑一个n*n的棋盘,把有公共边的两个格子叫做相邻的格子。初始时,有些格子里有病毒。每一秒钟后,只要一个格子至少有两个相邻格子染上了病毒,那么他自己也会被感染。为了让所有的格子都被感染,初始时最少需要有几个带病毒的格子?给出一种方案并证明最优性。

答案:至少要n个,比如一条对角线上的n个格子。n个格子也是必需的。当一个新的格子被感染后,全体被感染的格子所组成的图形的周长将减少0个、2个或4个单位(具体减少了多少要看它周围被感染的格子有多少个)。又因为当所有格子都被感染后,图形的周长为4n,因此初始时至少要有n个被感染的格子。

7.在一个m*n的棋盘上,有k个格子里放有棋子。是否总能对所有棋子进行红蓝二染色,使得每行每列的红色棋子和蓝色棋子最多差一个?

答案:可以。建一个二分图G(X,Y),其中X有m个顶点代表了棋盘的m个行,Y有n个顶点代表了棋盘的n个列。第i行第j列有棋子就在X(i)和Y(j)之间连一条边。先找出图G里的所有环(由于是二分图,环的长度一定是偶数),把环里的边红蓝交替染色。剩下的没染色的图一定是一些树。对每棵树递归地进行操作:去掉一个叶子节点和对应边,把剩下的树进行合法的红蓝二染色,再把刚才去掉的顶点和边加回去,给这个边适当的颜色以满足要求。

8.任意给一个8*8的01矩阵,你每次只能选一个3*3或者4*4的子矩阵并把里面的元素全部取反。是否总有办法把矩阵里的所有数全部变为1?

答案:不能。大矩阵中有36个3*3的小矩阵和25个4*4的小矩阵,因此总共有61种可能的操作。显然,给定一个操作序列,这些操作的先后顺序是无关紧要的;另外,在一个操作序列中使用两种或两种以上相同的操作也是无用的。因此,实质不同的操作序列只有2^61种。但8*8的01矩阵一共有2^64种,因此不是每种情况都有办法达到目的。

9.五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证狐狸最终会被抓住?

答案:按照2, 3, 4, 2, 3, 4的顺序检查狐狸洞可以保证抓住狐狸。为了说明这个方案是可行的,用集合F表示狐狸可能出现的位置,初始时F = {1, 2, 3, 4, 5}。如果它不在2号洞,则第二天狐狸已经跑到了F = {2, 3, 4, 5}。如果此时它不在3号洞,则第三天狐狸一定跑到了F = {1, 3, 4, 5}。如果此时它不在4号洞,则再过一晚后F = {2, 4}。如果此时它不在2号洞,则再过一天F = {3, 5}。如果此时它不在3号洞,再过一天它就一定跑到4号洞了。

方案不是唯一的,下面这些方案都是可行的:

2, 3, 4, 4, 3, 2

4, 3, 2, 2, 3, 4

4, 3, 2, 4, 3, 2

10.一个经典老题是说,把一个3*3*3的立方体切成27个单位立方体,若每一刀切完后都允许重新摆放各个小块的位置,最少可以用几刀?答案仍然是6刀,因为正中间那个单位立方体的6个面都是后来才切出来的,因此怎么也需要6刀。考虑这个问题:若把一个n*n*n的立方体切成一个个单位立方体,最少需要几刀?

答案:事实上,从一个更强的命题出发反而能使问题变得更简单。对于一个a*b*c的长方体,我们需要f(a)+f(b)+f(c)刀,其中f(x)=⌈log(x)/log(2)⌉。只需要注意到,在整个过程中的任何一步,切完当前最大的块所需要的刀数也就等于整个过程还需要的刀数,因为其它小块需要的刀数都不会超过最大块所需刀数,它们都可以与最大块一道并行处理。这表明,我们的最优决策即是让当前的最大块尽可能的小,也就是说要把当前的最大块尽可能相等地切成两半。利用数学归纳法,我们可以很快得到本段开头的结论。

推荐第4篇:程序员面试自我介绍

程序员面试自我介绍(精选5篇)

当来到一个新环境时,我们就有可能用到自我介绍,自我介绍可以满足我们渴望得到尊重的心理。现在你是否对自我介绍一筹莫展呢?下面是小编收集整理的程序员面试自我介绍(精选5篇),仅供参考,欢迎大家阅读。

程序员面试自我介绍1

我叫XXX,今年21岁,毕业于XX工程大学计算机科学与技术专业,拥有扎实的Core Java基础,良好的编程风格;熟悉JSP+Servlet+JavaBean模式的WEB开发;熟悉Struts,Hibernate,Spring等开源框架,了解EJB;熟悉Tomcat,Jboss服务器等,熟悉基于Linux及Unix环境下的软件开发。

在校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心与敬业精神以及扎实的学科基础知识与较强的专业技能,四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。

请各位考官多多指教,谢谢!

程序员面试自我介绍2

各位评委大家好,我是一名即将毕业的计算机系本科生。大学的四年,给我奠定了扎实的专业理论基础,良好的组织能力,团队协作精神,务实的工作作风还有良好的为人处世能力。

理论学习上,我认真学习专业知识理论,在学好专业必修课的同时,我还阅读了大量计算机书籍;同时我对于法律、文学等方面的非专业知识我也有浓厚的兴趣。在校期间,在专业考试中屡次获得单科第一,获得院设奖学金一次,院三等奖学金五次。是个成绩优秀的学生,一致受到老师和同学的好评。

在专业知识上,我除了精通Visual Basic、SQL Server、ASP,熟练使用Linux、Windows 9x/Me/NT/2000/XP等操作系统,熟练使用Office、WPS办公自动化软件。还自学HTML、Frontpage、Dreamweaver、Fireworks、Flash等网页制作相关软件。对于常用软件都能熟练使用。运用自如。

工作上,曾担任院学生会成员、副班长等职,现任计算机系团总支组织部部长。多次组织系部、班级联欢会、春游等活动,受到老师、同学们的一致好评。思想修养上,我品质优秀,思想进步,笃守诚、信、礼、智的做人原则。

在社会实践上,四年的大学生活,我对自己严格要求,注重能力的培养,特别是实践动手能力更是我的强项,曾经多次参加社会实践活动,具有一定的实践经验和动手能力。

无论今后从事什么样的工作,我都会把新的工作当做一个新的起点,不断学习和加强专业技能,以我孜孜不倦的学习态度和踏实负责的作风把每一项工作做好。

程序员面试自我介绍3

考官好,我是计算机专业的面试者xxx,我此次应聘的职位是IT行业的软件工程师,这份工作不仅与我的专业对口,同时也是我的特长与兴趣所在。现在我就从以下三个方面介绍自己:

1)学习能力:我有较强的`科研能力,能熟练的进行Windows2000与LINUX操作,并能使用VB,DELPHI等语言编程。能运用网页三剑客Photoshop软件进行相关工作。

2)实践能力:我的专长是软件开发,我希望能从事这方面的工作经验,并且我曾经发过多个系统,如人事档案管理系统,工资管理系统等等。

3)交际能力:我的性格沉稳,能坐得住,对IT行业的工作,具有非常好的适应能力,而且为人谦与,具有很强的组织与协调能力,富有的事业心与责任感使我能够面对任何困难与挑战。

从以上的简单自我介绍,我希望公司能给我一个展示自己能力的机会,让我我可以学以致用,同时我也很欣赏XX公司的企业文化与工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。

程序员面试自我介绍4

女士们,先生们:

早上好!很荣幸有机会参加此次面试。我希望今天我能有好的表现。我希望此次面试能够成功。现在,请允许我自我介绍一下。我今年26岁,出生于山东省。我毕业于青岛大学电子专业。我在20xx年毕业获得学士学位。大学期间,我努力学习,通过了大学英语六级考试,掌握了基本的专业知识。成为电子工程师是我长期渴望的梦想。我渴望有机会施展我的才能。

20xx年七月,我就职于青岛一家小的私人公司担任技术助理工程师。由于我的才能得不到足够的施展,我决定更换工作。在20xx年8月,我前往北京为一家外资企业工作担任自动

软件测试工程师。因为我想更换一下工作环境,想找一个更具挑战性的工作。而且我认为摩托罗拉公司是一个国际公司,我可以在这样的工作环境里收获更多。这就是我来这里面试的原因。我觉得我是一位具有良好团队精神、诚恳的人。而且,我能够在高强度压力下进行工作。我非常有信心我有能力胜任该公司的工程师职位。

感谢各位给我此次机会。

程序员面试自我介绍5

我叫朱新仲,今年22岁,毕业于山东理工大学计算机科学与技术专业。由于非常喜欢本专业,并期待将来从事专业方向的工作,因而在校期间十分注重对专业课的学习,拥有扎实的Core Java基础,良好的编程风格;熟悉JSP+Servlet+JavaBean模式的WEB开发;熟悉Struts,Hibernate,Spring等开源框架,了解EJB;熟悉Tomcat,Jboss服务器等,熟悉基于Linux及Unix环境下的软件开发。因为专业课知识掌握牢固,以专业第一的综合成绩毕业。

然而,我深知仅有专业知识是不够的,社会需要的是高素质复合型人才,因而在校期间学习之外,我积极参加各种社会实践活动,曾参与过学院网上虚拟实验室开发的需求分析。大三暑假曾在浪潮软件园实习,参与了电信增值软件开发与编挰,通过亲自动手及不断地向有经验的工程师请教学习,实习结束时我已经基本掌握整个Java平台的核心技术,独立编程能力大大提高。同时实习生活也让我意识到从事Java编程工作团队合作的重要性。

虽然我的实际工作经验还不是很丰富,但相信有了扎实的专业基础知识和实习期间的实践经验,加上好学上进的精神,我能胜任应聘岗位需求。希望贵公司给我这次机会。

推荐第5篇:程序员面试常见问题

程序员面试常见问题

1.如果我们不能提供你所要求的薪水,你还愿意来我们公司吗?你的期望薪水是多少?你想得到的薪水是多 少?如果达不到你的要求,怎么办?

答:我认为工作最重要的是合作开心,薪酬是其次的,不过我原来的月薪是××元,如果跳槽的话就希望 自己能有点进步,如果不是让您太为难的话,您看这个工资是不是可以有一点提高? 2.你有哪些主要的缺点?

分析:这是个棘手的问题。若照实的回答,你会毁了工作,雇主试图使你处于不利的境地,观察你在类 似的工作困境中将作出什么反应。

回答:我需要学会更耐心一点。我的性子比较急,我总要我的工作赶在第一时间完成。我不能容忍工作 怠慢。

3.你有哪些主要的优点?认真,负责 有点急躁,在意结果

分析:像前面问题一样,这个问题问得相当直接,但是有一点隐含。

回答:“我具有朝著目标努力工作的能力。一旦我下定决心做某事,我就要把它做好, 如果面试官让面试者提问的话,一般问什么问题比较合适? 一,对职位的重视:

1 能不能给我介绍一下这个职位的工作环境? 2 职位的一整天工作内容都有哪些呢? 3 这个职位以后的发展道路如何? 职业规划

面试官想了解你职业稳定性及个人发展方向的一个问题。

例如:我现在从事java web方向,那么未来三年的规划,是继续在这个职业上深造,我希望在三年内能够达 到项目经理的水平。这就是短期职业规划。

如果你被录用了,请问你将如何开展新工作? 回答:1.熟悉公司文化,产品,运作流程。与同事,其他部门沟通,营造好的合作氛围。

2.立刻了解客户的资料,熟知他们的需求,并迅速建立好的客户关系。等等 你的客户多次提出一些不合理的要求,你怎么办处理

我的回答是: 我记得贵公司的服务宗旨是:客户永远是对的,如果客户不对,我会在维护公司利益的范围里尽全力去满足客户的要求,并且我会去仔细观察客户之所以一直不满意的原因是什么 是对商品不满意还是对公司有成见还是对我个人服务有不满?

经典面试题怎样回答最合适

问题1: 如果我录用你,你认为你在这份工作上会待多久呢? a.这问题可能要等我工作一段时间后,才能比较具体地回答 b.一份工作至少要做3年、5年,才能学习到精华的部分。 c.这个问题蛮难回答的,可能要看当时的情形。 你认为公司做哪些事情可以让你更加努力工作

我的回答是:我选择喜欢的工作,全力以赴的做好工作是我的习惯。当然,如果公司有良好的激励制度,有清晰的上升空间给我,自然,会更加激发我的工作热情。

推荐第6篇:程序员面试总结

广州金博信息技术有限公司 总结:

广州市乐天科技有限公司 总结

面试题 委托的关键字:delegate

数据库设计模式:单例,抽象工厂模式,工厂

数据库中having: 一个条件

面向对象:封装,继承,多态

Continue break的区别 break跳出 环,执行下一语句

Continue 跳出当前,执行下一语句

String 地址不可变

stringBuilder 地址可变

Int a=10,int b=15, 答: a=b-a;

b=b-a;

a=b+a; 面试:分页代码

Select * from (select * row_number() over (order by id) row from A) where row between 21 and 30 查出自动增长列断点中的最小值

Select min(id) * from A where id not in(select * row_number()over(order by id)row from A) 天展网络科技有限公司 面试题:

继承:子类对父类的子承父业

接口:是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码可以调用组件对象的功能。

反射:动态调用程序集创建对象 用户登入查询:

Sqlconnection conn=new sqlconnection(connString); String name=this.textName.text; String pwd=this.paword.text; String sql=”select * from table where username=”+name+” and paword=”+pwd+”; Sqlcommand cmd=new sqlcommand(sql,conn); Conn.open(); Datareader reader=cmd.exec; While(reader.next()){ String ip=reader.getstring[3]; Datetime time=reader.getstring[4]; Seion[“ip”]=ip; Seion[“time”]=time; Response.redirect(“default.aspx”); } 用递归删除文件目录下的文件

先得到所有的目录查询出文件,不是文件就继续递归获取是的话就删除文件

} Jquery: $(“#username”).blur(function(){ If($(“#username”).val()==””){ Alert(‘不为空’); }else{ $(“#username”).focus(); } 用JS和JQuery分别写出判断用户名和密码框是否为空 Js:

Function validateForm(){ var name= document.getElementById(‘文本框的值’).value; Var pwd=Document.getElementById(“密码框的值”).value; If(name!=’’||pwd!=’’){} }); 两个数组合并成一个数组,进行全排列 Int a=new int[1,2,3]; Int b=new int[4,5,6]; Int total=new int[a.length+b.length]; For(int i=0,i

Total[i]=a[i]; } For(int j=0;j

Total[i+j]=b[j]; } 面试:等待时间长久心烦。对面试题的看法,因为一直是在电脑上操作,所以手写的时候不是那么顺畅。。

乐天科技有限公司复试

机试:用三层架构实现添删查改 广州众通电子科技有限公司

面试:问了第三个项目,那个是OA系统,我都不懂。Dataset和datareader的区别,dataset是数据集,datareader是一个指针,每次只读取一行信息。还设计了一个表。

推荐第7篇:程序员面试英文自我介绍

Good morning, ladies and gentlemen!

It’s a great pleasure for me to have this opportunity for the interview.I hope I can make a good performance today.

I have always enjoyed working with computers,so it was an easy decision to major in Information and Computing Science at Hunan University of Science and Technology with a plan to enter IT field.

I spent most of my time on study, and I’ve paed CET-6 during my college years.And I’ve acquired basic knowledge of my major.It is my long cherished dream to be a software engineer and I am eager to get an opportunity to fully play my ability.

I think I\'m a good team player and a person of great honesty to others.Also,I treat job seriously and conscientiously .That’s all.Thank you for giving me the chance.

推荐第8篇:程序员面试问题分享

面试问题一:是否有过团队合作的经历?你认为团队合作的重要性表现在哪些方面?

问题二:有人说,中国的程序员个个是高手,但是中国的开发团队个个不行,你对这一观点怎么看待?你认为团队竞争力不强的原因主要表现在哪里?

问题三:当项目中出现错误(或异常)时,你是怎么样处理的?

面试问题四:项目突然要使用新的技术进行开发(比如说用VC++开发硬件),但是基于现在的技术水平也可以开发出来,你会选择哪种形式进行开发?你在学习中喜欢使用新技术吗?你对使用新技术有什么看法?

问题五:你喜欢自学吗?那么你现在最想学习的是什么?

问题六:是否有过自己旅行的经历?当公司派你去一个完全陌生的环境中去工作一段时间时, 你会有什么想法?在目的地,你的工作状态会呈现一种什么样的态度?

面试问题七:如果公司中的甲每天游手好闲,不努力工作,你会怎么做?

问题八:上班的时候,突然有朋友打电话来叫你出去吃饭(或出去玩),你会怎么做?

问题九:假如你被录用,那么在中午的休息时间你会做些什么?

问题十:使用过第三方控件吗?都有哪些?是否认为这些控件在开发中发挥了不可或缺的作用?以后会不会继续使用这些控件,并且使用更多新的第三方控件?

推荐第9篇:程序员个人面试总结

程序员个人面试总结

程序员个人面试总结

iOS谢先森

前一段一直忙着换工作和找房子,一直没有时间打理博客,今天忙里偷闲,来谈谈最近的一些收获。如果小编有些的不对的地方请帮忙指正。

一、面试之前的准备

面试之前大多数人会在网上搜罗一大堆面试题,然后近乎疯狂的去死记硬背,这样无意是效率最低的一种,今天记住了或许明天就忘记了,所以在这还是劝大家在看一些知识点的时候还是以理解为主,因为你平时背的即使很熟练,在面试的时候一激动,还是会错误百出,这是最忌讳的。接到面试邀请后,可以相应的准备一些与面试公司业务相关的面试题。还有就是需要强化一些面试频率较高的点,比如说tableView的优化、重用机制,用户数据的存储,加载大量数据的时候界面的优化,常用框架的原理、使用方法。

一、初试

初试相对来说相当重要,因为这决定着你能否顺利的进入复试,如果能进入复试,你等于已经拿到半个offer。一般的面试流程就是先跟人事那边谈,相对简单,只要思想不是太偏激,不要太傲慢就差不多了。

人事这关过了之后就是项目组长或者项目经理来面试你,如果是小公司,面试你的人会相对较为年轻,其实他们的开发经验也不是太多,所以他们肯定大多时间会让你说,然后根据你所说的对你进行评价。这段时间要注意几点:不要装B,不要说大话,尽量说自己比较了解的领域,让他的思路跟着你的思路走,如果他问一些你不太懂得问题,尽量绕过去,将一些自己会的,如果真的不了解,可以说一下你的理解,如果实在一窍不通,可以说I don\'t konw。如果面试的是你相对年长的大神,那就相对会简单一点,因为他们都有面试经验,不会有太多苛刻,重在思路。他们更多的需要的是一个倾听者,你就静静地听他讲就好了,从谈话中你也会学会很多知识。

二、复试

复试这一环一般不会问太多技术方面的问题,一般是技术总监。如果运气比较好,能直接见到老板,那就基本ok了;这个阶段的面试会问更多关于项目的内容和之前的一些工作,按实际情况介绍就好了,保持好心态,及时问题答得不是太好,也要保持一种乐观好学的心态,这样问题也不会太大。

三、面试之后

面试其实是一个很累的过程,你要承受各种心理压力,可能临时发挥的会差强人意,前几天在中关村一个公司的面试,两个项目经理坐面前,一个接一个问,直接问成storyboard了,最后通知和代理的区别都没答上来,后来幸亏没有收到offer,不然这工作环境得有多压抑啊。所以不要因为一次发挥的好坏而或喜或悲,程序猿就要有一种不以物喜,不以己悲的精神。

面试完一两天就可以给面试公司联系,基本上这时候可以确定了;及时去问,如果没希望就不要浪费自己的精力了。保持好心态,准备下一场面试。

推荐第10篇:PHP程序员面试题目

流行的php面试题及答案

1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。 答:echo $_SERVER[\'PHP_SELF\']; echo $_SERVER[\"HTTP_REFERER\"]; 2.执行程序段<?php echo 8%(-2) ?>将输出(3)。 答:0 3.在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。 答:(4)未授权 (5) header(\"HTTP/1.0 404 Not Found\"); 4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。 答:(6)对数组进行逆向排序并保持索引关系 (7)All errors and warnings 5.写出一个正则表达www.daodoc.com式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,

然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

答:(10) LoadModule php5_module \"D:/xampp/apache/bin/php5apache2.dll\" (11) AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml 7.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为www.daodoc.com了避免多次包含同一文件,可以用语句(13)来代替www.daodoc.com它们。

答:(12) 发生异常时include产生警告require产生致命错误 (13) require_once()/include_once() 8.类的属性可以序列化后保存到 seion 中,从而以后可以恢复整个类,这要用到的函数是(14)。

答:serialize() /unserialize() 9.一个函数www.daodoc.com的参数不能是对变量的引用,除非在php.ini中把(15)设为on.答:allow_call_time_pa_reference 10.SQL 中LEFT JOIN的含www.daodoc.com义是(16)。 如果 tbl_user记录了学生的姓名(name)和学号(ID),

tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可www.penqiang.net以用SQL语句(17)。

答:(16) 自然左外连接 (17) select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID 11..在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。 答:结束标识符所在的行不能包含任何其它字符除\";\" 12.用PHP打印出www.516fc.net前一天的时间格式是2006-5-10 22:21:21 答:echo date(\'Y-m-d H:i:s\', strtotime(\'-1 day\')); 13.echo(),print(),print_r()的区别

答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象 14.如何实现字符串翻转?

答:.用strrev函数呗,不准用PHP内置的就自己写:

strrev($str) {

$len=strlen($str); $newstr = \'\'; for($i=$len;$i>=0;$i--) { $newstr .= $str{$i};

} return $newstr; } 15.实现中文字串截取无乱码的方法。 答:mb_substr() 16.使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 表名User Name

Tel

Content

Date 张三

13333663366

大专毕业

2006-10-11 张三

13612312331

本科毕业

2006-10-15 张四

021-55665566

中专毕业

2006-10-15

答:SELECT Name,Tel,Content,Date FROM User WHERE Name=\'张三\' 17.如何使用下面的类,并解释下面什么意思?

cla test {

Get_test($num) { $num=md5(md5($num).\"En\");

return $num;

} } 答:用法: $get_test = new test(); $result = $get_test->Get_test(2);

将$num变量进行两次md5后返回,第2次的md5中的参数,在第一次md5($num)后多加了En 18.使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 答:使用五种以上方式获取一个文件的扩展名 1) get_ext1($file_name) { return strrchr($file_name, \'.\'); } 2) get_ext2($file_name) { return substr($file_name, strrpos($file_name, \'.\')); } 3) get_ext3($file_name) { return array_pop(explode(\'.\', $file_name)); } 4) get_ext4($file_name) { $p = pathinfo($file_name); return $p[\'extension\']; } 5) get_ext5($file_name) { return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), \'.\'))); } 19.如何修改SESSION的生存时间

这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上

答:其实 Seion 还提供了一个函数 seion_set_cookie_params(); 来设置 Seion 的生存期的,该函数必须在 seion_start() 函数调用之前调用:

<?php

// 保存一天

$lifeTime = 24 * 3600;

seion_set_cookie_params($lifeTime);

seion_start();

$_SESSION[\"admin\"] = true;

?>

20.请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。 Function test($str){ $arr1=explode(\'_\',$str); //$arr2=array_walk($arr1,ucwords( )); $str = implode(\' \',$arr1); return ucwords($str); } $aa=\'open_door\'; echo test($aa); ?>

21.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到? 答:$_SERVSR[‘REQUEST_URI’] $_SERVER[‘REMOTE_ADDR’] 22.求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24 23.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。 答:select case when A>B then A else B end, case when B>C then B else C end From test 24.请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析? 1)选择最有效率的表名顺序 (2)WHERE子句中的连接顺序

(3)SELECT子句中避免使用‘*’ (4)用Where子句替换HAVING子句 (5)通过内部函数提高SQL效率 (6)避免在索引列上使用计算。 (7)提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。

25.mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?

mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_aoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_aoc() 的值。 26.下面的代码用来做什么?请解释。 $date=\'08/26/2003\';print ereg_replace(\"([0-9]+)/([0-9]+)/([0-9]+)\",\"\\2/\\1/\\3\",$date);

这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:

// 对应一个或更多 0-9,后面紧随一个斜号$regExpreion = \"([0-9]+)/\";// 应一个或更多 0-9,后面紧随另一个斜号$regExpreion .= \"([0-9]+)/\";// 再次对应一个或更多 0-9$regExpreion .= \"([0-9]+)\";至于 \\2/\\1/\\3 则是用来对应括号,第一个括号对的是月份, 27.GD 函式库用来做什么? 答:这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上

28.请举例说明在你的开发过程中用什么方法来加快页面的加载速度

答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦 29.防止SQL注射漏洞一般用__addslashes___函数。 30.PHP中传值和传引用、传地址的区别是什么?

答:传值是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象

31。如何通过javascript判断一个窗口是否已经被屏蔽 答:获取open()的返回值,如果是null,就是屏蔽了 33.对于大流量的网站,您采用什么样的方法来解决访问量问题 答:首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。

第五,使用不同主机分流主要流量 第六,使用流量分析统计软件

34.请举例说明在你的开发过程中用什么方法来加快页面的加载速度

A.生成静态HTML 生成xml

C.可不用数据库的尽量不用数据库把变量参数存于文本.D.用ZEND加速答:<?

第11篇:C程序员面试简答题

经典面试题-C语言与数据结构

(自己整理的一些C语言与数据结构面试简答题,希望对大家有所帮助,同时程序员,共勉…..红色为答案)

1.用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年 问题);

#define YEAR (60 * 60 * 24 * 365)UL

2、写一个\"标准\"宏MIN函数 ,这个宏输入两个参数并返回较小的一个

#define MIN(a, b) ((a)

3、用变量a给出下面的定义

一个整型数(An integer) int a

b)一个指向整型数的指针( A pointer to an integer) int *a

c)一个指向指针的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an integer ) int **a d)一个有10个整型数的数组( An array of 10 integers)

int a[10] e)一个有 10 个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers) int *a[10]

f)一个指向有10个整型数组的指针( A pointer to an array of 10 integers)

int (*a)[10] g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)

int*(a(int))

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返 回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

int (*a[10]) (int)

4、关键字volatile有什么含意? Volatile是一个类型修饰符,它是被设计用来修饰不同线程访问和修改的变量,

它的作用是来确保本条指令不会编译器的优化而省略,且要求每次直接读值。即防止编译器优化,传说这个关键字是区别软件工程师和嵌入式工程师的一个重要标志。 并给出三个不同的例子。

1、并行设备的硬件寄存器;

2、一个终端服务子程序会访问到的非自动变量;

3、多线程应用中被几个任务共享的变量

5、结构与联合有和区别?。

结构和联合都是由多个数据组成的,但是在任何时间,联合只存在某一被选定的数据成员,而结构存在了所有的数据成员;

对联合某一数据成员赋值,对其他成员的的值也会改变,但是对结构中,对其中一个数据成员赋值不影响其他的数据成员

阶段性测试

6、求下面函数的返回值(微软)

int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; }

7、数组与指针的区别?

一个数组是一个地址,一个指针是一个地址的地址, 址

移位操作为何最好使用无符号数?

如果是有符号的话,移位可能会改变符号,造成错误。

8、关键字 static的作用是什么?

数组是对应地址,指针是指向地声明为静态变量,这样此变量会保存在全局静态数据区;

声明作用域为当前文件。这个也是经常问到的题目,建议自己搜一下理解深刻, 9.#include 与 #include \"file.h\"的区别?

系统自带文件,自定义文件

10、下面const的含义如何?

const int *a; a可变,a指向的对象不可变

int const *a; a可变,a指向的对象不可变

int * const a; a不可变 ,a指向的对象不可变

int const * const a; 都不能变 10.什么是内存操作越界?

对变量在使用的过程中超出定义范围,即为内存越界,如定义数组

int a[10],在操作过程中 有

a[10] = “hello world“;就会出现内存越界,因为加上‘\\0’,字符串大小是11,

12.什么是内存泄漏? 造成内存泄漏的原因有哪些?

使用的某块内存,却未释放,长此以往,如服务器端的程序,长期不关闭的话,会造成内存越来越少,即为内存泄露。在使用

new – delet

malloc – free时尤其注意

13、请说出const与#define 相比,有何优点?

const常量有数据类型,而宏常量没有数据类型,只是简单的替换,前者编译器能进行安全检查,后者则不能被安全检查。

14、函数式宏定义和函数调用有什么不同?

const常量有数据类型,而宏常量没有数据类型,只是简单的替换,前者编译器能进行安全检查,后者则不能被安全检查。

15、中参数传递有什么特点? 我们应当注意些什么?

一般来说包括传值和传地址,在传值的过程中应注意:形参与实参各占一个独立的存储空间,形参的存储空间是被调用才分配,调用开始系统为形参开辟一个临时存储区,然后将格实参传递给形参,从而形参得到实参的值

15、goto有什么特点? 在C语言中对goto的使用有什么注意事项?

goto灵活跳转,使某些复杂的问题可以轻易解决;但是其会破坏C的结构化编程风格,易造成不可察觉的错误。

16、

使用swicth的注意事项

Break不能遗漏,这会造成每条逐句执行;default就算什么也不做,也请尽量写上。

17、嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

一般来说

while(1) {

} 就可以了

18、#define STRING char *; Typedef更好哪个更好一些为什么? #define是简单替换 易遇到问题 且出错不易查找

19、C语言对左值有什么限制? 只要不是常量就可以

20、程序调试中常见的错误有哪些? 考察你是不是真的有丰富的编程经验,一般是逻辑错误、语法错误、段错误;

21、什么是野指针?如何避免野指针? 释放之后未被制空的指针,free之后立即制空,同时对于指针要养成初始化的习惯 22.什么是函数指针?为什么能够使用函数指针,

函数指针就是指向函数的指针变量;每个函数都有一个函数入口,函数指针即调用了此函数入口。

23、下列语句的作用是什么?

//循环体 #ifndef HEADER_FILENAME #define HEADER_FILENAME /* body of header */ #endif

意思就是如果此文件中没有定义名为 ‘HEADER_FILENAME’的头文件就在此定义,主要是为了防止头文件重复加载

24、全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

全局变量存储在全局静态数据区中, 局部变量存储在栈空间中

第12篇:程序员求职面试的自我介绍

我叫好范文,今年21岁,毕业于XX解放军信息工程大学计算机科学与技术专业,拥有扎实的Core Java基础,良好的编程风格;熟悉JSp+Servlet+JavaBean模式的WEB开发;熟悉Struts,Hibernate,Spring等开源框架,了解EJB; 熟悉Tomcat,Jbo服务器等,熟悉基于Linux及Unix环境下的软件开发。

在校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但军校四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能。

四年军校生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。

第13篇:程序员如何获取面试机会

在我详细解说之前,必须声明一件事:坚持是以下各个要点的真正关键。在我最近一次职位搜索中,我都不知道我已经应聘了多少岗位了。甚至其中有一份我都能确定是我了,但是遗憾的是最后他们竟然告诉我我不适合。我一度灰心丧心、怨天尤人,但是最后我咬牙坚持继续求职。请牢记,坚持就是胜利,不经历风雨怎能见彩虹!

想好你的理想工作是怎样的

首先列个表格,看看心目中的工作应该是怎么样的。对我而言,我希望我的工作是能允许我远程办公,专注于ruby 开发的小公司。当然最后你可能并不能找到这样一个完全符合你心意的理想工作,但是这让你有个目标去搜寻。

熟人介绍

最快捷获取新工作的方式就是通过熟人介绍。所以朋友和同事都是这类可利用的“熟人资源”。当然,这并不意味着这份工作就是你的囊中之物了。你仍然需要做好充足的面试准备,来个完美一击。

合适的招聘网站

为了得到招聘信息,我们需要去合适的招聘网寻找工作。就我个人而言,因为我比较青睐于那种允许在家办公的,专注于ruby 开发的小公司,所以对我而言,我就比较适合

去 http://jobs.rubynow.com/, http://toprubyjobs.com/,以及craigslist。

求职信

我知道不少程序员特别讨厌写求职信,而对于那些经验丰富的程序员更是如此。他们越了解编程,就越发觉得自己不懂的地方还有很多,这可能会导致这样一个情况:他们想不出自己的优势,无法顺利推销自己。如果你也有这方面的烦恼,决不可妄自菲薄,不妨把你以往的成就客观性地做个表格,有助于唤醒那时拼搏的激情,写下一个热血澎湃的求职信,这是一个良好的开端,也相当于你成功了一半。

定制求职信

针对ruby开发工作,我在email上制作了一份标准模板的求职信,然后通过编辑之后分门别类地变成应聘不同工作的求职信。这样我就不必每次都得从头开始写求职信了,从而节省了大量时间。节约了这方面的时间,就意味着你可以申请更多的就业机会,然后获得更多的面试。

求职信要怎么写

我会写我的经验是怎样让我从众多的求职者中脱颖而出,成为这个职位最佳候选人的。我会链接到我的源代码,然后展示我已经构建好并能顺利运行的网站。最最重要的一点是,你要展示给你可能的老板看的是,你没有空口说白话,你是个有真才实学会编程的人。 定制你的简历

至今我的电脑上还留着一份最详细地标准简历。这样无论什么工作,对于经验和细节我都能说的比别人更多,更加侃侃而谈。还有一点要记得,你得确保你写好的简历是安全无虞的,并且在需要的时候还能立马备份拷贝。综合以上种种,我们就可以用最少的精力写出最棒的简历和求职信。

第14篇:程序员面试注意的事项

作为面试官,在面试程序员时,都会关注哪些问题?而程序员应该从哪些方面做好面试的准备?本期话题相信对面试官和程序员都会有所启示。 刘秋伟 深圳市万兴软件有限公司研发总监

与其他岗位相比,程序员相对来说会内向一些,思维也会更严谨、更有个性。企业招聘程序员就是要求他能和团队一起完成既定的开发任务,所以重点从技能水平、学习能力、团队合作及工作心态等几个方面考察程序员。

技术水平是对程序员最基本的要求,很多企业会通过笔试来辅助考察。技能的考察主要看面试者技能匹配度、对技术发展趋势的了解以及自己的职业规划。 1.你认为自己最擅长的技术是什么?

2.谈谈你对XX行业/技术发展趋势的看法?对最近XX技术问题发表下你的看法?

3.在五年的时间内,你有什么样的职业发展规划?

技术快速更替,员工的求知欲和学习能力比他现在的技能更为重要。宁愿招聘一个学习能力很强的员工,也不要一个靠吃老本、不愿学习的员工。 1.你最近有看哪些书或参加过什么样的培训?有灌技术论坛的习惯吗? 2.今年有什么学习计划?今年有什么目标? 3.研究过开源项目吗?有什么收获? 在现在的软件开发中,已经没有所谓的“孤胆英雄”,项目主要靠团队合作来完成,而团队合作能力可以通过考察以往项目,来了解面试者对团队的理解、遇到问题的解决思路等。

1.你做过哪些项目?最成功的是哪个?为什么? 2.辛辛苦苦工作半年的项目失败了,你怎么办?

3.评价下你过去的团队?你喜欢在什么样的团队中工作? 4.你的业余爱好是什么?

招聘新员工,需要了解面试者对工作的心态和价值取向,并且与他沟通公司的企业文 化。如果你所在企业需要快速发展,有高强度的研发任务,而他想找一份轻松的工作,可能就不是很合适了。 1.为什么选择离开上一家公司? 2.有了解过我们公司的产品/服务吗?

3.你对加班的看法?你家人或朋友抱怨你加班怎么办? 4.如果在试用期发现你技能不符合要求,该怎么办?

最后,技术人员的有效沟通能力也非常关键,特别是对问题的分析和说明,所以在整个面试过程中你要观察面试者的分析思路,对问题重点的把握以及表达。经常有一些滔滔不绝、但不知所云的面试者,让人非常头疼! 蒋建华 北方跃龙项目经理,微软最有价值专家(C#MVP)

程 序员的能力分为两种:技术能力和非技术能力。技术能力包括编码能力、系统分析与设计能力;非技术能力包括写作能力、沟通与协作能力、组织与管理能力等。而 根据程序员的能力水平,可以将程序员分成初级、中级、高级三个级别。因此,在面试过程中我会针对初级、中级、高级程序员三个级别来提出不同的问题。

在技术能力方面,重点考查初级程序员的编程能力、中级程序员编程能力并兼顾系统分析的能力、高级程序员的系统分析与设计能力。在非技术能力方面,重 点考查初级程序员的沟通与协作能力、中级程序员的写作能力(主要指编写技术文档,如需求分析文档、用户手册、部署手册等)、高级程序员的组织与管理能力 (如指导、协助中级程序员进行问题分析和开发)。

在面试时,程序员首先要将自己的技术能力展现出来,以一种交流的心态去面对,不要紧张,要有自信,即使面试失败自己也要下去总结失败的原因,找到技 术弱点加以弥补;其次,面试中遇到不会的问题要讲明自己的思路,因为有些问题不是考你的编程能力,而是逻辑思维的能力;最后,对照程序员能力模型进行自我 分析与评价,做好职业规划,不断学习,提高自己的编程能力和抽象思维能力。

以SQL Server为例,我来分享一下面试时常问的一些技术问题。 1.聚集索引和非聚集索引有何区别?应该怎样使用?

2.SQL的一张表中有一个自增的ID字段,但是现在不连续,写一条SQL语句取出某个位置到另一位置(如50~60)之间的数据。3.如何判断和防止SQL注入? 4.如何对海量数据进行处理? 第1题考查基础知识;第2题考查SQL语句的编写能力和技巧,属于初级程序员的问题;第3题考查SQLServer的安全性,属于中级程序员的问题;第4题考查SQLServer的性能,属于高级程序员的问题。通过这几个问题可以判断出应聘程序员的数据库水平。

毛颖 法国CAPS公司销售工程师

从个人经历来说,我会对以下五个问题比较感兴趣。

1.请说出3个你觉得至今都没有算法可以解决的问题。

这是一个开放式问题。从回答中我们可以了解到被面试者的思维方式和思维敏捷度,而这两点是一名优秀程序员不可或缺的。我预料一般有两类回答:第一, 学术类,比如有人会说一些关于寻找质数之类的现在还无法解决的问题;第二,生活类,我比较期待这一类有意思的回答,如果被面试者可以结合一些现在的社会现 象作出回答,也可以从另一个角度反射出其社会属性。 2.请从技术角度谈一下《黑客帝国》的观后感。

同样又是一个开放式问题,完全没有所谓的标准答案。《黑客帝国》是程序员的必看“教材”,整个故事最精彩的莫过于构思。我觉得能具备这样的构思能力 是程序员的最高境界。那么从技术角度,对于这个构思的框架搭建以及实现等,我想听听程序员的不同理解和实现方法,从侧面了解他们的潜在创造能力和对身边事 物的建模能力。

3.你比较偏向于把程序员比作翻译、建筑师还是设计师?

问这个问题的目的是看你怎样理解程序员这个职业。一个人对自己职业的认识以及定位将直接决定其在这个职位上的积极性和创造能力。我的答案是程序员既是翻译,又是建筑师,更应该是设计师。并且随着这三个职业的排序,正是我认为的程序员职业能力升华台阶。

4.请设计至少两个不同的算法解决将一个蛋糕平均分为6份的问题。比较实际的专业能力题。这是一个既简单又综合的考验。除了对程序员这个职位的正确认识之外,实际操作能力毕竟是影响今后实际工作的第一要素。这道操作题,考察应聘者对问题的思考,以及分析能力和解决问题的动手能力。 5.比较一下这两个算法,你觉得哪个更好,依据是什么?

比较算法,还是考察的专业能力,目的是看你怎样判断一个算法的好坏。对这道题,没有接受过专业训练的应聘者应该无法给出全面且科学的分析。并且请他们评论自己设计的算法,也是对自我认识的一种衡量。 李颜杉 某外资人力资源顾问公司猎头顾问

程序员的概念有点宽泛,为更有针对性,我主要分享对“网络程序员”的观点。简言之,我们主要关注面试者的硬条件、软条件两个方面。

硬条件是指学历、技术经验、语言等能直接呈现的能力。技术是实在的东西,有就有,没有就没有,由不得半点浮夸。 我们比较感兴趣的问题如下。

1.做过什么:是写代码、设计还是架构?

2.做成功过什么:是大型的平台吗?其特质如可扩展、高并发、交互式。3.擅长做什么:使用的编程语言是哪种?使用经验有几年? 4.Debug的经验,遭遇什么复杂的问题(需例证其复杂性)?

技术面试的后续往往是笔试或上机,比如,在所有你使用过的DesignPattern中,请解释对比其中两种,如CommandPattern和 VisitorPattern(可以文字回答,也可以画图)?DOMparser与SAXparser的区别在哪儿?什么情况下采用DOMparser而 不是SAXparser?大家在面试之前可以Google一下类似的题目。 如果面试外资公司,需要英文达到流利读写的水平。因为项目的完成往往需要协同全球多个国家的同事,如果缺乏英文技能,在外企的发展是比较受限的。计划今后进入外资公司的朋友,一定要加强练习。

软条件是指性格、兴趣、职业规划等非直接呈现的能力。公司对于程序员一般会看重两种性格特质:爱技术、乐分享。

“爱技术”的人才会自发的钻研,不浮躁,也才会在这一行做得长久。对于这点,面试官可能希望了解你工作之外喜欢做什么。我听到过很多分享:经营自己的博客或者技术论坛;尝试新技术、新设备,学习新技术是一种乐趣而不是负担;当然,下次你可以说你平时喜欢阅读《程序员》。

“乐分享”的人才能带动团队整体进步。对于这点,面试官可能希望了解你在团队中是什么角色。有的人可能讲我是Mentor,我们遇到技术问题时要内 部讨论,我往往是能给出solution的人,所有人都解决不了,我们会求助于互联网——说明你不只愿意分享,而且有东西可以分享。

以前曾在面试中听说,程序员是青春饭,3~5年之后一定要转做Manager。我觉得职业发展一定要切合自己的性格,并不是每个人都很享受并善于处 理人事管理。有的资深开发人员转成Manager几年之后,又转回纯技术(IndividualContributor)。而资深技术人员对于公司是非常 宝贵的财富,不管从受重视程度、薪资福利待遇都是非常有吸引力的。

第15篇:C.C++程序员面试背诵题目

1.面向对象的程序设计思想是什么?

答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。

2.什么是类?

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。

3.对象都具有的二方面特征是什么?分别是什么含义? 答:对象都具有的特征是:静态特征和动态特征。

静态特征是指能描述对象的一些属性; 动态特征是指对象表现出来的行为 ;

4.在头文件中进行类的声明,在对应的实现文件中进行类的定义有什么意义?

答:1这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大提高了效率。

2隐藏了代码;

5.在类的内部定义成员函数的函数体,这种函数会具备那种属性? 答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。

6.成员函数通过什么来区分不同对象的成员数据?为什么它能够区分? 答:通过this指针来区分的, 因为它指向的是对象的首地址。

7.C++编译器自动为类产生的四个缺省函数是什么?

答:默认构造函数,拷贝构造函数,析构函数,赋值函数。

8.拷贝构造函数在哪几种情况下会被调用?

答:1.当类的一个对象去初始化该类的另一个对象时;

2.如果函数的形参是类的对象,调用函数进行形参和实参结合时;3.如果函数的返回值是类对象,函数调用完成返回时。

9.构造函数与普通函数相比在形式上有什么不同?(构造函数的作用,它的声明形式来分析) 答:构造函数是类的一种特殊成员函数,一般情况下,它是专门用来初始化对象成员变量的。

构造函数的名字必须与类名相同,它不具有任何类型,不返回任何值。

10.什么时候必须重写拷贝构造函数?

答:当构造函数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要深拷贝。

11.构造函数的调用顺序是什么? 答:1.先调用基类构造函数

2.按声明顺序初始化数据成员

3.最后调用自己的构造函数。

12.哪几种情况必须用到初始化成员列表? 答:类的成员是常量成员初始化;

类的成员是对象成员初始化,而该对象没有无参构造函数。 类的成员常变量时。

13.什么是常对象?

答:常对象是指在任何场合都不能对其成员的值进行修改的对象。

14.静态函数存在的意义?

答:1静态私有成员在类外不能被访问,可通过类的静态成员函数来访问;

2当类的构造函数是私有的时,不像普通类那样实例化自己,只能通过静态成员函数来调用构造函数。

15.在类外有什么办法可以访问类的非公有成员? 答:友元,继承,公有成员函数。

16.什么叫抽象类?

答:不用来定义对象而只作为一种基本类型用作继承的类。

17.运算符重载的意义?

答:为了对用户自定义数据类型的数据的操作与内定义的数据类型的数据的操作形式一致。

18.不允许重载的5个运算符是哪些? 答:

1..*(成员指针访问运算符号) 2.::域运算符

3.sizeof 长度运算符号 4.?:条件运算符号 5. .(成员访问符)

19.运算符重载的三种方式?

答:普通函数,友元函数,类成员函数。

20.流运算符为什么不能通过类的成员函数重载?一般怎么解决? 答:因为通过类的成员函数重载必须是运算符的第一个是自己,而对流运算的重载要求第一个参数是流对象。一般通过友元来解决。

21.赋值运算符和拷贝构造函数的区别与联系? 答:相同点:都是将一个对象copy到另一个中去。 不同点:拷贝构造函数涉及到要新建立一个对象。

22.在哪种情况下要调用该类的析构函数? 答:对象生命周期结束时。

23.对象间是怎样实现数据的共享的? 答:通过类的静态成员变量来实现的。静态成员变量占有自己独立的空间不为某个对象所私有。

24.友元关系有什么特性?

答:单向的,非传递的,不能继承的。

25.对对象成员进行初始化的次序是什么? 答:它的次序完全不受它们在初始化表中次序的影响,只与成员对象在类中声明的次序来决定的。

26.类和对象之间的关系是什么?

答:类是对象的抽象,对象是类的实例。

27.对类的成员的访问属性有什么? 答:public,protected,private。

28.const char *p,char * const p;的区别

如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量; 如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。

29.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。

virtual可加可不加,子类覆盖它的函数不加virtual ,也能实现多态。

30.函数重载是什么意思?它与虚函数的概念有什么区别? 函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。而虚函数实现的是在基类中通过使用关键字virtual来申明一个函数为虚函数,含义就是该函数的功能可能在将来的派生类中定义或者在基类的基础之上进行扩展,系统只能在运行阶段才能动态决定该调用哪一个函数,所以实现的是动态的多态性。它体现的是一个纵向的概念,也即在基类和派生类间实现。

31.构造函数和析构函数是否可以被重载,为什么? 答:构造函数可以被重载,析构函数不可以被重载。因为构造函数可以有多个且可以带参数,而析构函数只能有一个,且不能带参数。

32.如何定义和实现一个类的成员函数为回调函数? 答:

所谓的回调函数,就是预先在系统对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

定义一个类的成员函数时在该函数名前加CALLBACK即将其定义为回调函数,函数的实现和普通成员函数没有区别 33.虚函数是怎么实现的? 答:简单说来使用了虚函数表.

34.抽象类不会产生实例,所以不需要有构造函数。

35.从一个模板类可以派生新的模板类,也可以派生非模板类。

36.main 函数执行以前,还会执行什么代码?

答案:全局对象的构造函数会在main 函数之前执行。

37.当一个类A 中没有申明任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk)

答案:肯定不是零。举个反例,如果是零的话,声明一个cla A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]„了。

38.delete与 delete []区别:

delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。

39.子类析构时要调用父类的析构函数吗? 会调用,析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析构调用的时候,派生类的信息已经全部销毁了

40.继承优缺点。

1、类继承是在编译时刻静态定义的,且可直接使用,

2、类继承可以较方便地改变父类的实现。缺点:

1、因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承的实现

2、父类通常至少定义了子类的部分行为,父类的任何改变都可能影响子类的行为

3、如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。

41.解释堆和栈的区别。

栈区(stack)—

由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。

42.一个类的构造函数和析构函数什么时候被调用,是否需要手工调用? 答:构造函数在创建类对象的时候被自动调用,析构函数在类对象生命期结束时,由系统自动调用。

43.何时需要预编译:

总是使用不经常改动的大型代码体。

程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 44.多态的作用? 主要是两个:

1.隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;

2.接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用

45.虚拟函数与普通成员函数的区别?内联函数和构造函数能否为虚拟函数?

答案:区别:虚拟函数有virtual关键字,有虚拟指针和虚函数表,虚拟指针就是虚拟函数的接口,而普通成员函数没有。内联函数和构造函数不能为虚拟函数。

46.构造函数和析构函数的调用顺序? 析构函数为什么要虚拟? 答案:构造函数的调用顺序:基类构造函数—对象成员构造函数—派生类构造函数;析构函数的调用顺序与构造函数相反。析构函数虚拟是为了防止析构不彻底,造成内存的泄漏。

47.C++中类型为private的成员变量可以由哪些函数访问? 只可以由本类中的成员函数和友员函数访问

48.请说出类中private,protect,public三种访问限制类型的区别

private是私有类型,只有本类中的成员函数访问;protect是保护型的,本类和继承类可以访问;public是公有类型,任何类都可以访问.

49.类中成员变量怎么进行初始化?

可以通过构造函数的初始化列表或构造函数的函数体实现。

50.在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

51.引用与指针有什么区别?

答、1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。

52.描述实时系统的基本特性

答、在特定时间内完成特定的任务,实时性与可靠性。

54.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答、全局变量储存在静态数据区,局部变量在栈中。

55.堆栈溢出一般是由什么原因导致的? 答、没有回收垃圾资源

56.什么函数不能声明为虚函数? 答 构造函数(constructor)

57..IP地址的编码分为哪俩部分?

答 IP地址由两部分组成,网络号和主机号。

58..不能做switch()的参数类型是: 答、switch的参数不能为实型。

59.如何引用一个已经定义过的全局变量?

答、可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错

60.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? 答、c用宏定义,c++用inline

61. C++是不是类型安全的?

答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)

62.当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,请解释一下编译器为什么没有让它为零。

答案:为1。举个反例,如果是零的话,声明一个cla A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]„了。

63.简述数组与指针的区别?

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。

(1)修改内容上的区别 char a[] = “hello”; a[0] = „X‟;

char *p = “world”; // 注意p 指向常量字符串

p[0] = ‘X’; // 编译器不能发现该错误,运行时错误 (2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。

64.C++函数中值的传递方式

有三种方式:值传递、指针传递、引用传递

65.内存的分配方式 分配方式有三种,

1、静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。

2、栈上分配,函数内的局部变量就是从这分配的,但分配的内存容易有限。

3、堆上分配,也称动态分配,如我们用new,malloc分配内存,用delete,free来释放的内存。

66.extern“C”有什么作用? extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。

extern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即可。

67.用什么函数开启新进程、线程。答案:

线程:CreateThread/AfxBeginThread等 进程:CreateProce等

68.SendMeage和PostMeage有什么区别

答案:SendMeage是阻塞的,等消息被处理后,代码才能走到SendMeage的下一行。PostMeage是非阻塞的,不管消息是否已被处理,代码马上走到PostMeage的下一行。

69.CMemoryState主要功能是什么

答案:查看内存使用情况,解决内存泄露问题。

70.

26、#include 和 #include “filename.h” 有什么区别? 答:对于#include ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h

71.处理器标识#error的目的是什么?

答:编译时输出一条错误信息,并中止继续编译。

72.#if!defined(AFX_…_HADE_H) #define(AFX_…_HADE_H) „„

#endif作用?

防止该头文件被重复引用。

73.在定义一个宏的时候要注意什么?

定义部分的每个形参和整个表达式都必须用括号括起来,以避免不可预料的错误发生

74.数组在做函数实参的时候会转变为什么类型? 数组在做实参时会变成指针类型。

75.系统会自动打开和关闭的3个标准的文件是? (1) 标准输入----键盘---stdin (2) 标准输出----显示器---stdout (3) 标准出错输出----显示器---stderr

76..在Win32下 char, int, float, double各占多少位? (1) Char 占用8位 (2) Int 占用32位 (3) Float 占用32位 (4) Double 占用64位

77.strcpy()和memcpy()的区别?

strcpy()和memcpy()都可以用来拷贝字符串,strcpy()拷贝以’\\0’结束,但memcpy()必须指定拷贝的长度。

78.说明#define和const在语法和含义上有什么不同?

(1) #define是C语法中定义符号变量的方法,符号常量只是用来表达一个值,在编译阶段符号就被值替换了,它没有类型;

(2) Const是C++语法中定义常变量的方法,常变量具有变量特性,它具有类型,内存中存在以它命名的存储单元,可以用sizeof测出长度。

79.说出字符常量和字符串常量的区别,并使用运算符sizeof计算有什么不用?

字符常量是指单个字符,字符串常量以‘\\0’结束,使用运算符sizeof计算多占一字节的存储空间。

80.简述全局变量的优缺点?

全局变量也称为外部变量,它是在函数外部定义的变量,它属于一个源程序文件,它保存上一次被修改后的值,便于数据共享,但不方便管理,易引起意想不到的错误。

81.总结static的应用和作用?

(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

82..总结const的应用和作用?

(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;

(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;

(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;

(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。

83.什么是指针?谈谈你对指针的理解? 指针是一个变量,该变量专门存放内存地址;

指针变量的类型取决于其指向的数据类型,在所指数据类型前加* 指针变量的特点是它可以访问所指向的内存。

84.什么是常指针,什么是指向常变量的指针? 常指针的含义是该指针所指向的地址不能变,但该地址所指向的内容可以变化,使用常指针可以保证我们的指针不能指向其它的变量,

指向常变量的指针是指该指针的变量本身的地址可以变化,可以指向其它的变量,但是它所指的内容不可以被修改。指向长变量的指针定义,

85.函数指针和指针函数的区别?

函数指针是指指向一个函数入口的指针; 指针函数是指函数的返回值是一个指针类型。

87.简述Debug版本和Release版本的区别?

Debug版本是调试版本,Release版本是发布给用户的最终非调试的版本,

88.指针的几种典型应用情况?

int *p[n];-----指针数组,每个元素均为指向整型数据的指针。

int (*)p[n];------p为指向一维数组的指针,这个一维数组有n个整型数据。 int *p();----------函数带回指针,指针指向返回的值。 int (*)p();------p为指向函数的指针。

89.static函数与普通函数有什么区别? static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

90.struct(结构) 和 union(联合)的区别?

1.结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。

2.对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。

91.cla 和 struct 的区别?

struct 的成员默认是公有的,而类的成员默认是私有的。

92.简述枚举类型?

枚举方便一次定义一组常量,使用起来很方便; 93.aert()的作用?

ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。

94.局部变量和全局变量是否可以同名?

能,局部会屏蔽全局。要用全局变量,需要使用\"::\"(域运算符)。

95.程序的局部变量存在于(栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。

96.在什么时候使用常引用?

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

97.类的声明和实现的分开的好处? 1.起保护作用; 2.提高编译的效率。

98.windows消息系统由哪几部分构成? 由一下3部分组成: 1.消息队列:操作系统负责为进程维护一个消息队列,程序运行时不断从该消息队列中获取消息、处理消息;

2.消息循环:应用程序通过消息循环不断获取消息、处理消息。

3.消息处理:消息循环负责将消息派发到相关的窗口上使用关联的窗口过程函数进行处理。

99.什么是消息映射?

消息映射就是让程序员指定MFC类(有消息处理能力的类)处理某个消息。然后由程序员完成对该处理函数的编写,以实现消息处理功能。

100.什么是UDP和TCP的区别是什么?

TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠的、点到点的通信。 UDP全称为用户报文协议,它可以提供非连接的不可靠的点到多点的通信。 用TCP还是UDP,那要看你的程序注重哪一个方面?可靠还是快速?

101.winsock建立连接的主要实现步骤? 答:

服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接, accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。

客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。

102.进程间主要的通讯方式? 信号量,管道,消息,共享内存

103.构成Win32 API 函数的三个动态链接库是什么? 答:内核库,用户界面管理库,图形设备界面库。

104.创建一个窗口的步骤是?

答:填充一个窗口类结构->注册这个窗口类->然后再创建窗口->显示窗口->更新窗口。

105.模态对话框和非模态对话框有什么区别?

答:1.调用规则不同:前者是用DoModal()调用,后者通过属性和ShowWindow()来显示。 2.模态对话框在没有关闭前用户不能进行其他操作,而非模态对话框可以。 3.非模态对话框创建时必须编写自己的共有构造函数,还要调用Create()函数。

106.从EDIT框中取出数据给关联的变量,已经把关联的变量的数据显示在EDIT框上的函数是什么?

答: UpdateData(TRUE), Updatedata(FALSE).

107.简单介绍GDI?

答;GDI是Graphics Device Interface 的缩写,译为:图形设备接口;是一个在Windows应用程序中执行与设备无关的函数库,这些函数在不同的输出设备上产生图形以及文字输出。

108.windows消息分为几类?并对各类做简单描述。

1.窗口消息:与窗口相关的消息,除WM_COMMAND之外的所有以WM_开头的消息;2.命令消息;用于处理用户请求,以WM_COMMAND表示的消息; 3.控件通知消息:统一由WM_NOTIFT表示, 4.用户自定义消息。

109.如何自定义消息?

使用WM_USER 和WM_APP两个宏来自定义消息,

110.简述Visual C++、Win32 API和MFC之间的关系?

(1) Visual C+是一个以C++程序设计语言为基础的、集成的、可视化的编程环境; (2) Win32 API是32位Windows操作系以C/C++形式提供的一组应用程序接口; (3) MFC是对Win32 API的封装,简化了开发过程。

111.怎样消除多重继承中的二义性? 1.成员限定符 2.虚基类

112什么叫静态关联,什么叫动态关联

在多态中,如果程序在编译阶段就能确定实际执行动作,则称静态关联, 如果等到程序运行才能确定叫动态关联。

113多态的两个必要条件

1.一个基类的指针或引用指向一个派生类对象, 2.虚函数

114.什么叫智能指针?

当一个类中,存在一个指向另一个类对象的指针时,对指针运算符进行重载,那么当前类对象可以通过指针像调用自身成员一样调用另一个类的成员。

115.什么时候需要用虚析构函数?

当基类指针指向用new运算符生成的派生类对象时,delete基类指针时,派生类部分没有释放掉而造成释放不彻底现象,需要虚析构函数。

116.MFC中,大部分类是从哪个类继承而来? CObject

117.什么是平衡二叉树?

答:左右子树都是平衡二叉树,而且左右子树的深度差值的约对值不大于1

118.语句for( ;1 ;)有什么问题?它是什么意思?

答:无限循环,和while(1)相同。

119.派生新类的过程要经历三个步骤 1吸收基类成员 2.改造基类成员 3.添加新成员

121.TCP/IP 建立连接的过程

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送连接请求到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到客户端连接请求,向客户端发送允许连接应答,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的允许连接应答,向服务器发送确认,客户端和服务器进入通信状态,完成三次握手

122 .memset ,memcpy 的区别

memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为\'\\0\'。

memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;

123.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?

答:C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字 与C 语言的不同。假设某个函数的原型为: void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo , 而C++编译器则会产生像_foo_int_int 之类的名字。C++提供了C 连接交换指定符号extern“C”来解决名字匹配问题。

124怎样定义一个纯虚函数?含有纯虚函数的类称为什么? 在虚函数的后面加=0,含有虚函数的类称为抽象类。

125.已知strcpy函数的原型是:

char * strcpy(char * strDest,const char * strSrc);不调用库函数,实现strcpy函数。 答案:

char *strcpy(char *strDest, const char *strSrc) { if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ; char *tempptr = strDest ; while( (*strDest++ = *strSrc++) != „\\0‟) ; return tempptr ; }

126.已知类String 的原型为: cla String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数

String & operate =(const String &other); // 赋值函数 private: char *m_data; // 用于保存字符串 }; 请编写String 的上述4 个函数。 答案:

String::String(const char *str) { if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断 { m_data = new char[1] ; m_data[0] = \'\' ; } else { m_data = new char[strlen(str) + 1]; strcpy(m_data,str); } } String::String(const String &other) { m_data = new char[strlen(other.m_data) + 1]; strcpy(m_data,other.m_data); } String & String::operator =(const String &other) { if ( this == &other) return *this ; delete []m_data; m_data = new char[strlen(other.m_data) + 1]; strcpy(m_data,other.m_data); return *this ; } String::~ String(void) { delete []m_data ; }

127.类成员函数的重载、覆盖和隐藏区别 答案:

成员函数被重载的特征:

(1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同;

(4)virtual 关键字可有可无。

覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同;

(4)基类函数必须有virtual 关键字。

“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)

128.如何打印出当前源文件的文件名以及源文件的当前行号? 答案:

cout

129.文件中有一组整数,要求排序后输出到另一个文件中 答案:

void Order(vector &data) //起泡排序 { int count = data.size() ; int tag = false ; for ( int i = 0 ; i data[j+1]) { tag = true ; int temp = data[j] ; data[j] = data[j+1] ; data[j+1] = temp ; } } if ( !tag ) break ; } } void main( void ) { vectordata; ifstream in(\"c:\\data.txt\"); if ( !in) { cout>temp; data.push_back(temp); } in.close(); Order(data); ofstream out(\"c:\\result.txt\"); if ( !out) { cout

130.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ;已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) Node * ReverseList(Node *head) //链表逆序 { if ( head == NULL || head->next == NULL ) return head; Node *p1 = head ; Node *p2 = p1->next ; Node *p3 = p2->next ; p1->next = NULL ; while ( p3 != NULL ) { p2->next = p1 ; p1 = p2 ; p2 = p3 ; p3 = p3->next ; } p2->next = p1 ; head = p2 ; return head ; } 131.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ; 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。 Node * Merge(Node *head1 , Node *head2) { if ( head1 == NULL) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; Node *p1 = NULL; Node *p2 = NULL; if ( head1->data data ) { head = head1 ; p1 = head1->next; p2 = head2 ; } else { head = head2 ; p2 = head2->next ; p1 = head1 ; } Node *pcurrent = head ; while ( p1 != NULL && p2 != NULL) { if ( p1->data data ) { pcurrent->next = p1 ; pcurrent = p1 ; p1 = p1->next ; } else { pcurrent->next = p2 ; pcurrent = p2 ; p2 = p2->next ; } } if ( p1 != NULL ) pcurrent->next = p1 ; if ( p2 != NULL ) pcurrent->next = p2 ; return head ; } 132.已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。 ( Autodesk) 答案:

Node * MergeRecursive(Node *head1 , Node *head2) { if ( head1 == NULL ) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; if ( head1->data data ) { head = head1 ; head->next = MergeRecursive(head1->next,head2); } else { head = head2 ; head->next = MergeRecursive(head1,head2->next); } return head ; }

133.分析一下这段程序的输出 (Autodesk) cla B { public: B() { cout

133 将“引用”作为函数参数有哪些特点?

(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。

(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。

(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用\"*指针变量名\"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。

134.什么时候需要“引用”?

流操作符(>)和赋值操作符(=)的返回值、拷贝构造函数的参数、赋值操作符的参数、其它情况都推荐使用引用。

135.面向对象的三个基本特征,并简单叙述之?

1.封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

2.继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。

3.多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

136.求下面函数的返回值(微软)

int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; }

假定x = 9999。 答案:8 思路:将x转化为2进制,看含有的1的个数。

1

37、写出下列代码的输出内容 #include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); } typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) { INCp=&inc; int temp =p(arg1); fun(&temp,&arg1, arg2); printf(\"%d\\n\",*arg2); } main() { int a; show(multi,10,&a); return 0; } 答:110 138。编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。

char * search(char *cpSource, char ch) { char *cpTemp=NULL, *cpDest=NULL; int iTemp, iCount=0; while(*cpSource) {

if(*cpSource == ch)

{

iTemp = 0;

cpTemp = cpSource;

while(*cpSource == ch)

++iTemp, ++cpSource;

if(iTemp >iCount)

iCount = iTemp, cpDest = cpTemp;

if(!*cpSource)

break;

}

++cpSource; } return cpDest; }

139。请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。

int search(char *cpSource, int n, char ch) {

int i;

for(i=0; i

return i; }

140.一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?

将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指向的节点。

1

41、用指针的方法,将字符串“ABCD1234efgh”前后对调显示 #i nclude #i nclude #i nclude int main() {

char str[] = \"ABCD1234efgh\";

int length = strlen(str);

char * p1 = str;

char * p2 = str + length*(unsigned char *)dst) && *dst) {

++src; ++dst; }

if ( ret

ret = -1 ;

else if ( ret >0 )

ret = 1 ;

return( ret ); } 1

48、判断一个字符串是不是回文 int IsReverseStr(char *aStr) { int i,j; int found=1; if(aStr==NULL) return -1; j=strlen(aStr); for(i=0;i

149 #include main() { int c[3][3]={1,2,3,4,5,6,7,8,9}; for(int i=0;i

printf(\"-------------------------\\n\"); printf(\"%ld\\n\",(c+1)); printf(\"%ld\\n\",(*c+1)); printf(\"%ld\\n\",&c[0][0]); printf(\"%ld\\n\",**c); printf(\"%ld\\n\",*c[0]);

if(int(c)==int(*c)) printf(\"equl\"); }

为什么c,*c的值相等,(c+1),(*c+1)的值不等 c,*c,**c,代表什么意思?

参考答案:

c是第一个元素的地址,*c是第一行元素的首地址,其实第一行元素的地址就是第一个元素的地址,这容易理解。**c是提领第一个元素。

为什么c,*c的值相等?

int c因为直接用c表示数组c[0][0] printf(\"%ld\\n\",*c[0]);语句已将指针移到数组头。 int(*c)表示c0的值为1,所以相等。 数组c的存放空间示意如下:(机器中是行优先存放的) c[0][0] c[0][1] c[0][2] c[1][0] c[1][1] c[1][2] c[2][0] c[2][1] c[2][2] c是一个二维数组名,实际上它是一个指针常量,不能进行自加、自减运算,即:c++、c--、++c、--c 都是不允许的;

c: 数组名;是一个二维指针,它的值就是数组的首地址,也即第一行元素的首地址(等于 *c),也 等于第一行第一个元素的地址( & c[0][0]);可以说成是二维数组的行指针。 *c: 第一行元素的首地址;是一个一维指针,可以说成是二维数组的列指针。 **c:二维数组中的第一个元素的值;即:c[0][0] 所以: c 和 *c的值是相等的,但他们两者不能相互赋值,(类型不同); (c + 1) :c是行指针,(c + 1)是在c的基础上加上二维数组一行的地址长度,即从&c[0][0] 变到了&c[1][0]; (*c + 1):*c是列指针,(*c + 1)是在*c的基础上加上二数组一个元素的所占的长度,即从 &c[0][0]变到了&c[0][1] 从而(c + 1)和(*c + 1)的值就不相等了

150、定义 int **a[3][4], 则变量占有的内存空间为:__32___ 参考答案:

int **p; /*16位下sizeof(p)=2, 32位下sizeof(p)=4*/ 总共 3*4*sizeof(p)

1

51、写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值 int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); a = ? 答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a; 改后答案依次为9,10,10,11

1

52、某32位系统下, C++程序,请计算sizeof 的值 char str[] = “http://www.daodoc.com/” char *p = str ; int n = 10; 请计算

(1)sizeof (str ) = ?

(2)sizeof ( p ) = ?

(3)sizeof ( n ) = ?

void Foo ( char str[100]){ 请计算

sizeof( str ) = ?(4) } void *p = malloc( 100 ); 请计算

sizeof ( p ) = ?(5) 答:(1)25 (2)4 (3) 4 (4)4 (5)4

1

53、回答下面的问题

(1).Void GetMemory(char **p, int num){ *p = (char *)malloc(num); } void Test(void){ char *str = NULL; GetMemory(&str, 100); strcpy(str, \"hello\"); printf(str); } 请问运行Test 函数会有什么样的结果? 答:输出“hello”

1

54、void Test(void){ char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL){ strcpy(str, “world”); printf(str); } } 请问运行Test 函数会有什么样的结果? 答:输出“world”

1

55、char *GetMemory(void){ char p[] = \"hello world\"; return p; } void Test(void){ char *str = NULL; str = GetMemory(); printf(str); } 请问运行Test 函数会有什么样的结果? 答:无效的指针,输出不确定

1

56、编写strcat函数

已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。

(1)不调用C++/C 的字符串库函数,请编写函数 strcat 答:

VC源码:

char * __cdecl strcat (char * dst, const char * src) { char * cp = dst; while( *cp ) cp++; while( *cp++ = *src++ ) ; return( dst ); }

1

57、strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值? 答:方便赋值给其他变量

1

58、MFC中CString是类型安全类么?

答:不是,其它数据类型转换到CString可以使用CString的成员函数Format来转换

159.C++中什么数据分配在栈或堆中?

答:栈: 存放局部变量,函数调用参数,函数返回值,函数返回地址。由系统管理 堆: 程序运行时动态申请,new 和malloc申请的内存就在堆上

160、函数模板与类模板有什么区别?

答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化 必须由程序员在程序中显式地指定。

16

1、int i=10, j=10, k=3; k*=i+j; k最后的值是?

答:60,此题考察优先级,实际写成: k*=(i+j);,赋值运算符优先级最低

16

2、do„„while和while„„do有什么区别? 答、前一个循环一遍再判断,后一个判断以后再循环

16

3、请写出下列代码的输出内容 #i nclude main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf(\"b,c,d:%d,%d,%d\",b,c,d); return 0; } 答、10,12,120

164.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 答、函数名: atol 功 能: 把字符串转换成长整型数 用 法: long atol(const char *nptr); 程序例: #include #include int main(void) {

long l;

char *str = \"98765432\";

l = atol(lstr);

printf(\"string = %s integer = %ld\\n\", str, l);

return(0); }

165.以下三条输出语句分别输出什么? char str1[] = \"abc\"; char str2[] = \"abc\"; const char str3[] = \"abc\"; const char str4[] = \"abc\"; const char* str5 = \"abc\"; const char* str6 = \"abc\"; cout

166 以下代码中的两个sizeof用法有问题吗?

void UpperCase( char str[] )

// 将 str 中的小写字母转换成大写字母 { for( size_t i=0; i

答:函数内的sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str是一个静态定义的数组,因此其大小为6,函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。

167 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A? 答:

a.cla B : public A { „„} // B公有继承自A,可以是间接继承的 b.cla B { operator A( ); } // B实现了隐式转化为A的转化 c.cla A { A( const B& ); } // A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数

d.A& operator= ( const A& ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个

168.以下代码有什么问题? struct Test { Test( int ) {} Test() {} void fun() {} }; void main( void ) { Test a(1); a.fun(); Test b(); b.fun(); }

答:变量b定义出错。按默认构造函数定义对象,不需要加括号。

169 以下代码有什么问题? cout

170 以下代码能够编译通过吗,为什么? unsigned int const size1 = 2; char str1[ size1 ]; unsigned int temp = 0; cin >>temp; unsigned int const size2 = temp; char str2[ size2 ]; 答:str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量。

171.以下代码中的输出语句输出0吗,为什么? struct CLS { int m_i; CLS( int i ) : m_i(i) {} CLS() { CLS(0); } }; CLS obj; cout

答:不能。在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。

172 C++中的空类,默认产生哪些类成员函数? 答:

cla Empty { public: Empty(); // 缺省构造函数

Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数

Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&() const; // 取址运算符 const };

173 以下两条输出语句分别输出什么? float a = 1.0f; cout

答:分别输出false和true。注意转换的应用。(int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1,(int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换)。因为1以整数形式存放和以浮点形式存放其内存数据是不一样的,因此两者不等。对b的两种转换意义同上,但是0的整数形式和浮点形式其内存数据是一样的,因此在这种特殊情形下,两者相等(仅仅在数值意义上)。

注意,程序的输出会显示(int&)a=1065353216,这个值是怎么来的呢?前面已经说了,1以浮点数形式存放在内存中,按ieee754规定,其内容为0x0000803F(已考虑字节反序)。这也就是a这个变量所占据的内存单元的值。当(int&)a出现时,它相当于告诉它的上下文:“把这块地址当做整数看待!不要管它原来是什么。”这样,内容0x0000803F按整数解释,其值正好就是1065353216(十进制数)。 通过查看汇编代码可以证实“(int)a相当于重新构造了一个值等于a的整型数”之说,而(int&)的作用则仅仅是表达了一个类型信息,意义在于为cout

17

4、请简述以下两个for循环的优缺点(5分)

for (i=0; i

DoSomething(); else

DoOtherthing(); } if (condition) { for (i=0; i

DoSomething(); } else {

for (i=0; i

DoOtherthing(); }

优点:程序简洁

缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

优点:循环的效率高 缺点:程序不简洁

175 void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str);

strcpy(str, \"hello world\"); printf(str); } 请问运行Test函数会有什么样的结果? 答:程序崩溃。

因为GetMemory并不能传递动态内存, Test函数中的 str一直都是 NULL。 strcpy(str, \"hello world\");将使程序崩溃。

176 char *GetMemory(void) {

char p[] = \"hello world\"; return p; } void Test(void) { char *str = NULL;

str = GetMemory();

printf(str); } 请问运行Test函数会有什么样的结果? 答:可能是乱码。 因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。

177 void GetMemory2(char **p, int num) { *p = (char *)malloc(num); } void Test(void) { char *str = NULL; GetMemory(&str, 100); strcpy(str, \"hello\");

printf(str);

} 请问运行Test函数会有什么样的结果? 答:

(1)能够输出hello (2)内存泄漏

178 void Test(void) { char *str = (char *) malloc(100);

strcpy(str, “hello”);

free(str);

if(str != NULL)

{

strcpy(str, “world”);

printf(str);

} } 请问运行Test函数会有什么样的结果?

答:篡改动态内存区的内容,后果难以预料,非常危险。 因为free(str);之后,str成为野指针, if(str != NULL)语句不起作用。

17

9、请阅读以下一段程序,并给出答案。cla A { public:

A(){ doSth(); }

virtual void doSth(){printf(\"I am A\");} }; cla B:public A { public:

virtual void doSth(){ printf(\"I am B\");} }; B b; 执行结果是什么?为什么? 答:执行结果是I am A 因为b对象构造时调用基类A的构造函数A(),得此结果。

180 实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数; 答:双向链表删除一个节点P template void list::delnode(int p) { int k=1; listnode *ptr,*t; ptr=first;

while(ptr->next!=NULL&&k!=p) {

ptr=ptr->next;

k++; }

t=ptr->next; coutdata

ptr->next=ptr->next->next; length--; delete t; }

在节点P后插入一个节点:

template bool list::insert(type t,int p) { listnode *ptr; ptr=first;

int k=1; while(ptr!=NULL&&k

{

ptr=ptr->next;

k++; } if(ptr==NULL&&k!=p)

return false; else {

listnode *tp;

tp=new listnode;

tp->data=t;

tp->next=ptr->next;

ptr->next=tp;

length++;

return true; } }

181.完成下列程序

*

*.*.

*..*..*..

*...*...*...*...

*....*....*....*....*....

*.....*.....*.....*.....*.....*.....

*......*......*......*......*......*......*......

*.......*.......*.......*.......*.......*.......*.......*.......

#i nclude using namespace std;

const int n = 8;

main() {

int i;

int j;

int k;

for(i = n; i >= 1; i--)

{

for(j = 0; j

{

cout

for(k=1; k

{

cout

}

}

cout

}

system(\"pause\"); }

182完成程序,实现对数组的降序排序

#include using namespace std;

void sort(int* arr, int n);

int main()

{

int array[]={45,56,76,234,1,34,23,2,3};

sort(array, 9);

for(int i = 0; i

cout

cout

system(\"pause\"); }

void sort(int* arr, int n) {

int temp;

for(int i = 1; i

{

for(int k = 0; k

{

if(arr[k]

{

temp = arr[k];

arr[k] = arr[k + 1];

arr[k + 1] = temp;

}

}

} }

183.以下两条输出语句分别输出什么?[C++难] float a = 1.0f; cout

51.以下反向遍历array数组的方法有什么错误?[STL易] vector array; array.push_back( 1 ); array.push_back( 2 ); array.push_back( 3 ); for( vector::size_type i=array.size()-1; i>=0; --i ) // 反向遍历array数组 {

cout

184 写一个函数,完成内存之间的拷贝。[考虑问题是否全面] 答:

void* mymemcpy( void *dest, const void *src, size_t count ) {

char* pdest = static_cast( dest );

const char* psrc = static_cast( src );

if( pdest>psrc && pdest

{

for( size_t i=count-1; i!=-1; --i )

pdest[i] = psrc[i];

}

else

{

for( size_t i=0; i

pdest[i] = psrc[i];

}

return dest; } int main( void ) {

char str[] = \"0123456789\";

mymemcpy( str+1, str+0, 9 );

cout

system( \"Pause\" );

return 0; }

185 对于C++中类(cla) 与结构(struct)的描述正确的为:

A,类中的成员默认是private的,当是可以声明为public,private 和protected, 结构中定义的成员默认的都是public;

B,结构中不允许定义成员函数,当是类中可以定义成员函数;

C,结构实例使用malloc() 动态创建,类对象使用new 操作符动态分配内存;

D,结构和类对象都必须使用new 创建;

E,结构中不可以定义虚函数,当是类中可以定义虚函数.

F,结构不可以存在继承关系,当是类可以存在继承关系.答:A,D,F

186.两个互相独立的类:ClaA 和 ClaB,都各自定义了非静态的公有成员函数 PublicFunc() 和非静态的私有成员函数 PrivateFunc();

现在要在ClaA 中增加定义一个成员函数ClaA::AdditionalPunction(ClaA a,ClaB b);则可以在AdditionalPunction(ClaA x,ClaB y)的实现部分(函数功能体内部)

出现的合法的表达是最全的是:

A,x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();

B,x.PrivateFunc();x.PublicFunc();y.PublicFunc();

C,x.PrivateFunc();y.PrivateFunc();y.PublicFunc();

D,x.PublicFunc();y.PublicFunc(); 答:B

186.C++程序下列说法正确的有:

A,对调用的虚函数和模板类都进行迟后编译.

B,基类与子类中函数如果要构成虚函数,除了要求在基类中用virtual 声名,而且必须名字相同且参数类型相同返回类型相同

C,重载的类成员函数都必须要:或者返回类型不同,或者参数数目不同,或者参数序列的类型不同.

D,静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,但是析构函数可以是虚函数.答:A ***************************************************************************

187 头文件的作用是什么? 答:

一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。

二、头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。

18

8、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)

char str[] = “Hello” ; char

*p = str ; int

n = 10; 请计算

sizeof (str ) = 6

(2分)

sizeof ( p ) =

(2分)

sizeof ( n ) =

(2分)void Func ( char str[100]) { 请计算

sizeof( str ) =

(2分) }

void *p = malloc( 100 ); 请计算

sizeof ( p ) = 4

(2分)

3写出下列程序的运行结果。

unsigned int i=3; cout

189.写出下列程序所有可能的运行结果。

int a; int b; int c;

void F1() {

b=a*2; a=b; }

void F2() {

c=a+1; a=c; }

main() { a=5;

//Start F1,F2 in parallel F1(); F2();

printf(\"a=%d\\n\",a); }a=11

190一个链表的操作,注意代码的健壮和安全性。要求:

(1)增加一个元素;

(2)获得头元素;

(3)弹出头元素(获得值并删除)。

191.unsigned short array[]={1,2,3,4,5,6,7}; int i = 3; *(array + i) = ? 答: 4

192 cla A {

virtual void func1();

void func2(); } Cla B: cla A {

void func1(){cout

virtual void func2(){cout

答: A

193输出下面程序结果。

#include cla A { public: virtual void print(void)

{

cout

} }; cla B:public A { public: virtual void print(void)

{

cout

cla C:public B { public: virtual void print(void) {

cout

a.print(); }

void main(void) {

A a, *pa,*pb,*pc;

B b;

C c;

pa=&a;

pb=&b;

pc=&c;

a.print();

b.print();

c.print();

pa->print();

pb->print();

pc->print();

print(a);

print(b);

print(c); }

A::print() A::print() B::print() C::print() A::print() B::print() C::print() A::print() A::print() A::print()

------------ 194.程序改错 cla mml {

private:

static unsigned int x;

public:

mml(){ x++; }

mml(static unsigned int &) {x++;}

~mml{x--;}

pulic:

virtual mon() {} = 0;

static unsigned int mmc(){return x;}

......

}; cla nnl:public mml {

private:

static unsigned int y;

public:

nnl(){ x++; }

nnl(static unsigned int &) {x++;}

~nnl{x--;}

public:

virtual mon() {};

static unsigned int nnc(){return y;}

......

};

代码片断: mml* pp = new nnl; ..........delete pp;

A: 基类的析构函数应该为虚函数 virtual ~mml{x--;}

------------ 195.101个硬币100真、1假,真假区别在于重量。请用无砝码天平称两次给出真币重还是假币重的结论。

答: 101个先取出2堆, 33,33 第一次称,如果不相等,说明有一堆重或轻

那么把重的那堆拿下来,再放另外35个中的33 如果相等,说明假的重,如果不相等,新放上去的还是重的话,说明假的轻(不可能新放上去的轻)

第一次称,如果相等的话,这66个肯定都是真的,从这66个中取出35个来,与剩下的没称过的35个比

下面就不用说了

方法二: 第3题也可以拿A(50),B(50)比一下,一样的话拿剩下的一个和真的比一下。 如果不一样,就拿其中的一堆。比如A(50)再分成两堆25比一下,一样的话就在 B(50)中,不一样就在A(50)中,结合第一次的结果就知道了。

196.写出程序结果: void Func(char str[100]) {

printf(\"%d\\n\", sizeof(str)); }

答: 4 分析: 指针长度

197.int id[sizeof(unsigned long)];

这个对吗?为什么?? 答: 对

这个 sizeof是编译时运算符,编译时就确定了 可以看成和机器有关的常量。

19

8、sizeof应用在结构上的情况

请看下面的结构:

struct MyStruct {

double dda1; char dda; int type };

对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你会这样求:

sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13

但是当在VC中测试上面结构的大小时,你会发现sizeof(MyStruct)为16。你知道为什么在VC中会得出这样一个结果吗?

其实,这是VC对变量存储的一个特殊处理。为了提高CPU的存储速度,VC对一些变量的起始地址做了\"对齐\"处理。在默认情况下,VC规定各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。下面列出常用类型的对齐方式(vc6.0,32位系统)。

类型

对齐方式(变量存放的起始地址相对于结构的起始地址的偏移量)

Char

偏移量必须为sizeof(char)即1的倍数

int

偏移量必须为sizeof(int)即4的倍数

float

偏移量必须为sizeof(float)即4的倍数

double 偏移量必须为sizeof(double)即8的倍数

Short

偏移量必须为sizeof(short)即2的倍数

各成员变量在存放的时候根据在结构中出现的顺序依次申请空间,同时按照上面的对齐方式调整位置,空缺的字节VC会自动填充。同时VC为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍? 199

#include \"stdafx.h\" Y n P }2{&k O v H `,o0 #define SQR(X) X*X int main(int argc, char* argv[]) { int a = 10; int k = 2; int m = 1;

a /= SQR(k+m)/SQR(k+m); printf(\"%d\\n\",a); return 0; } 这道题目的结果是什么啊? define 只是定义而已,在编择时只是简单代换X*X而已,并不经过算术法则的 a /= k+m*k+m/k+m*k+m; =>a /= (k+m)*1*(k+m); =>a = a/9; =>a = 1;

200.下面的代码有什么问题?

void DoSomeThing(...) { char* p; p = malloc(1024); // 分配1K的空间 2y x

if (NULL == p) return; p = realloc(p, 2048); // 空间不够,重新分配到2K if (NULL == p) return; } A:

p = malloc(1024);

应该写成: p = (char *) malloc(1024);

没有释放p的空间,造成内存泄漏。 201下面的代码有什么问题?并请给出正确的写法。 void DoSomeThing(char* p) { char str[16]; int n; aert(NULL != p); canf(p, \"%s%d\", str, n); if (0 == strcmp(str, \"something\")) { } } A: canf(p, \"%s%d\", str, n);

这句该写成:------------ 202.下面代码有什么错误?

Void test1() {

char string[10];

char *str1=\"0123456789\"; strcpy(string, str1);

}

数组越界

203.下面代码有什么问题?

Void test2()

{

char string[10], str1[10];

for(i=0; i

str1[i] =\'a\'; }

strcpy(string, str1); }

} 数组越界

204下面代码有什么问题?LUPA开源社区+j H2B F,c U

canf(p, \"%s%d\", str, &n);

Void test3(char* str1) {

char string[10]; if(strlen(str1)

strcpy(string, str1); } }

==数组越界

==strcpy拷贝的结束标志是查找字符串中的\\0 因此如果字符串中没有遇到\\0的话 会一直复制,直到遇到\\0,上面的123都因此产生越界的情况 建议使用 strncpy 和 memcpy

205.写出运行结果: {

char str[] = \"world\"; cout

char *p

= str;

cout

char i

= 10;

cout

void *pp

= malloc(10); cout

------------ 206.C和C++有什么不同? 从机制上:c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。但是,c++编写面向对象的程序比c容易

从适用的方向:c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,c++比c多了+,说明c++是c的超集;那为什么不叫c+而叫c++呢,是因为c++比

c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++ C语言是结构化编程语言,C++是面向对象编程语言。LUPA开源社区 } n*r2C/M8f C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

207在不用第三方参数的情况下,交换两个参数的值 #include void main() {

int i=60;

int j=50;

i=i+j;

j=i-j; )

第16篇:程序员面试技巧大梳理

程序员面试技巧大梳理

程序员面试技巧大梳理

郭帅

1.着装篇

程序员的面试和其他的面试不同,不要求面试着穿的西装革履,也不需要程序媛打扮的天花乱坠,当然你也不可能穿着程序员战斗套装去参与面试裤头-背心-趿拉板。其实程序员的面试着装要注意干净整洁,可以背双肩包,总之一句话让别人一眼看上去,就觉得你是一位资深开发人员最好了。这里面有1个小案例希望大家能从中学习。案例1.一位程序员去面试的前一天因为某些不可描述的原因,晚上睡觉睡的很晚。第二天头也没洗,带着黑眼圈就出去面试了。到了面试地点,技术官看到他,觉得十

分诡异,就问了一句,小伙子你状态怎么这么差。由于这位程序员比较的机智,反手就是一个么么哒,哦不是,反手就是一句话,我之前公司加班比较的累,可能黑眼圈比较的重,不好意思,顺势还打了个哈欠。面试官看了不太忍心的说,放心吧小伙子,我们公司加班没有那么的严重。这个案例1就是所谓的衣着和身份的匹配加上该程序员临场的应变能力。成功的赢取了面试官的好感。

2.简历投递篇

简历的投递也是面试的重要环节,下面介绍一下简历投递的技巧。技巧1超级无敌海底佛跳墙,也就是只选好面试的城市和薪资和职位之后开始无限制,惨绝人寰的海投,投到面试安排的满满当当为止。这种投递方式适合面试初期的程序员,主要用于积累面试经验和收集素材。技巧2区域划分政策,也就是按照区域投递自己的简历,这样的方式能够使得自己的面试变得轻松一些,可以少跑不少冤枉路,也可弄个

Excel,安排好每天的面试,尽量把距离近的公司安排到一起,增加面试的效率。技巧3利用一些专业的投递网站,这里不是打广告。在经历过前面的大范围面试之后,第一确立了自己的面试目标,第二准备好了自己的面试话术,这个时候就是需要精挑细选的时候了,推荐2个网站拉钩和bo直聘。根据自己的需求去对接了解。技巧4人际关系篇,大家可能听过很多的内推啊之类的东西,但是有的程序员说我没有这方面的资源怎么办啊。这里教你一招,去加qq群去群里认识一些朋友,有可能会发现一些猎头,也有可能发现一些公司的招聘信息,这个时候直接一个窗口怼过去私聊他,如果能聊的开心,很有可能会赢取一次内推的机会。

3.人事面试篇

人事面试一般都妹子给程序员面试,这里注意,虽然平时看妹子的机会不多,面试的时候也不要总是紧盯着妹子去看,不然人家会不好意思的。还有

注意就是不要为了展现自己去跟人事夸夸其谈技术,这样是很招人烦的。和人事的交谈可以多问问他们,公司的情况反客为主。

这时候人事发现你对他们公司十分的关系,会提升对你的好感度。和人事聊天,注意突出你的3点能力,抗压,沟通和学习能力。

4.技术面试篇

这里就要说一句是时候展现真正的技术了。和技术官面试到底有没有套路呢,答案是肯定的。有。技巧1答非所问,如果面试官问到了你不会的问题千万别愣神,想尽办法去回答和该问题相关的周边问题。最后在落实一句这个技术我真的不是很了解。这样做不会减分太多。技巧2多米诺骨牌大法,回答一个问题的时候一定不是只回答一个问题,一定要想办法把自己精通的技术拉扯上来。这样做一方面能更好的表现自己一方面面试官会觉得你有扩展性。其实很多面试官也会词穷,他只是想更好

的了解你,你自己能去介绍何乐而不为呢。技巧3拍马屁大法,遇到真一点都打不上的的问题的时候,准备好了开始捧面试官了,多说点好话,一般做技术的都比较高傲,这个时候以请教的态度去问问他,相信他会跟你说的除非他自己不会他会让你回去自己查查看,听得过程中务必暴露崇拜的眼神。这样的面试非但不会减分,还有可能会加分,当然妹子使用最佳。

本文由黑马程序员上海校区就业部郭帅老师投稿

第17篇:腾讯php程序员面试题目

腾讯php程序员面试题目

说在前面:

1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。 2、时间:

基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务:

1、请列举你能想到的UNIX信号,并说明信号用途。

2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。

4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)

基础任务-选作(会得到额外分数):

1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可) 进阶任务:

1、PHP的垃圾收集机制是怎样的?

说明:

1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分

2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。

3)对,则有分,错误不扣,不写无分。 2、请写出HTTP头,并符合以下要求:

1)这是一个post请求

2)目标:http://www.daodoc.com:8080/test

3)POST变量:

username: test

pwd: test2

intro: Hello world!

4)包含以下COOKIE信息:

cur_query: you&me

说明:

1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。

2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?

3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。 设计任务:

1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东

要求如下:

1)要求每个QQ号码(假设此QQ号码在UNIT32内可以表示)10分钟这内只能投5票。

2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。

说明:

1)无需写代码,只需要图跟文字即可。

2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。

3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。

4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。 编程任务:

1、我们碰到了大麻烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。

要求如下:

1)/myworks/example/bbe.txt,98版本英文圣经一本

2)输入部分要求如下:php ./example.php [单词]

3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列...

说明:

1)此文本4MB之巨...

2)单词的含义:由英文字母(大小写),数字(0-9)组成的串

3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的

4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册

5)算法复杂度要求不能大于O(N^2)(就是N的平方)

6)什么?PHP低效且用起来不顺手,好的,你可以用别的语言来实现。但注意:提供给你的机器上只有python 2.4/perl 5.8/gcc[g++] 4.1

第18篇:PHP程序员面试自我介绍[推荐]

文档仅供参考

PHP程序员面试自我介绍

PHP程序员自我介绍的时候,一般都使用这几个要点来进行来说明的。

第一关于PHP程序员是否有良好的职业道德和工作态度,需要有工作认真、踏实,责任心以及很强的进取心。

第二关于PHP程序员是否有良好的客户交流沟通能力以及需求理解能力,从而能够拥有较强的协作精神和团队意识。

第三关于PHP程序员的思维能力,就是在事件中能够找出所引发的多种有可能的原因,以及确定行为的不同后果,从而发现复杂事物之间所存在的错综联系,最后逐步排除不太相关的信息,准确定位问题所在。

第四关于PHP程序员团队合作,程序员能够主动愿意与他人合作,以及与其他成员进行沟通交流,彼此分享信息、知识与资源。

第五关于PHP程序员主动性,程序员能够及时得发现机遇与问题,并且针对问题快速展开行动。

首先就是PHP程序员是否熟练掌握一种或以上开发语言,如知道怎么将PHP独特的语法混合了C、Java、Perl 以及PHP等一些自创新的语法。PHP程序员知道如何使用,可以让它比 CGI 或者 Perl 更快速的执行动态网页。其次就是否熟悉Oracle、Mysql等数据库。

下面就是还需要PHP程序员是否具有较强的文档撰写能力,因为使用PHP做出的动态页面与其他的编程语相比,PHP是可以将程序嵌入到HTML文档中去执行的,因此能够使执行得效率与完全生成HTML标记的相比,CGI要高许多。接下来就是PHP程序员是否具备独立分析和解决问题的能

力,这个能力的有无,将决定着PHP程序员自我介绍的成功与否,也是打动别人的支柱信息。

文档仅供参考

文档仅供参考

应届毕业生求职自我介绍

短短的求职自我介绍,其实是为了揭开更深入的面谈而设计的。

一、两分钟的自我介绍,犹如商品广告,在有限的时间内,针对客户的需要,将自己最美好的一面,毫无保留地表现出来,不但要令对方留下深刻的印像,还要即时引发起购买欲。

求职自我介绍最重要的是自我认识,首先必须认清自我,一定要弄清以下三个问题。 你现在是干什么的?你将来要干什么?你过去是干什么的?

这三个问题不是按时间顺序从过去到现在再到将来,而是从现在到将来再到过去。其奥妙在于:如果你被雇用,雇主选中的是现在的你,他希望利用的是将来的你,而这将来又基于你的历史和现状。

所以,第一个问题,你是干什么的?现在是干什么的?回答这个问题,要点是:你是你自己,不是别的什么人。除非你把自己与别人区别开来,在共同点的基础上更强调不同点,否则你绝无可能在众多的应征求职者中夺魁。 对于这第一个问题,自我反省越深,自我鉴定就越成功。

随后,着手回答第二个问题:你将来要干什么?如果你申请的是一份举足轻重的工作,雇主肯定很关注你对未来的自我设计。你的回答要具体,合理,并符合你现在的身份,要有一个更别致的风格。

然后,再着手回答最后一个问题:你过去是干什么的?你的过去当然都在履历上已有反映。你在面试中再度回答这个问题时,不可忽略之处是:不要抖落一个与你的将来毫不相干的过去。如果你中途彻文档仅供参考

文档仅供参考

底改行,更要在描述你的执着、职业目标的一贯性上下些功夫。要做到这一点,又要忠实于事实和本人,最简单的方法是:找到过去与将来的联系点,收集过去的资料,再按目标主次排列。

用这样的方法,以现在为出发点,以将来为目标,以过去为证实,最重要的是加深了你的自我分析和理解。其实,在面试的时候不一定有机会或者有必要照搬你的大作,但这三个问题的内在联系点一定会体现在自我表述的整体感觉中,使你的形象栩栩如生。

求职自我介绍中其次重要的是投其所好,清楚自己的强项后,便可以开始准备自我介绍的内容:包括工作模式、优点、技能,突出成就、专业知识、学术背景等。

好处众多,但只有短短一分钟,所以一切还是与该公司有关的好。如果是一间电脑软件公司,应说些电脑软件的话题;如是一间金融财务公司,便可跟他说钱的事,总之投其所好。

但有一点必须紧记:话题所到之处,必须突出自己对该公司可以作出的贡献,如增加营业额、减低成本、发掘新市场等。

在求职自我介绍中还得注意铺排次序。内容的次序亦极重要,是否能抓住听众的注意力,全在于事件的编排方式。所以排在头位的,应是你最想他记得的事情。而这些事情,一般都是你最得意之作。与此同时,可呈上一些有关的作品或纪录增加印像分。

文档仅供参考

第19篇:程序员面试技巧,自我介绍,亲身总结

一段短短的自我介绍,其实是为了揭开更深入的面谈而设计的。

一、两分钟的自我介绍,犹如商品广告,在有限的时间内,针对客户的需要,将自己最美好的一面,毫无保留地表现出来,不但要令对方留下深刻的印像,还要即时引发起购买欲。

精彩推荐:

英语面试自我介绍范文

考研英语口语复试面试完整版范文

1、自我认识

想一矢中的,首先必须认清自我,一定要弄清以下三个问题。 你现在是干什么的?你将来要干什么?你过去是干什么的?

这三个问题不是按时间顺序从过去到现在再到将来,而是从现在到将来再到过去。其奥妙在于:如果你被雇用,雇主选中的是现在的你,他希望利用的是将来的你,而这将来又基于你的历史和现状。

所以,第一个问题,你是干什么的?现在是干什么的?回答这个问题,要点是:你是你自己,不是别的什么人。除非你把自己与别人区别开来,在共同点的基础上更强调不同点,否则你绝无可能在众多的应征求职者中夺魁。 对于这第一个问题,自我反省越深,自我鉴定就越成功。

随后,着手回答第二个问题:你将来要干什么?如果你申请的是一份举足轻重的工作,雇主肯定很关注你对未来的自我设计。你的回答要具体,合理,并符合你现在的身份,要有一个更别致的风格。

然后,再着手回答最后一个问题:你过去是干什么的?你的过去当然都在履历上已有反映。你在面试中再度回答这个问题时,不可忽略之处是:不要抖落一个与你的将来毫不相干的过去。如果你中途彻底改行,更要在描述你的执着、职业目标的一贯性上下些功夫。要做到这一点,又要忠实于事实和本人,最简单的方法是:找到过去与将来的联系点,收集过去的资料,再按目标主次排列。 您现在阅读的文章来自“中国人才指南网”,请记住我们的永久域名:

用这样的方法,以现在为出发点,以将来为目标,以过去为证实,最重要的是加深了你的自我分析和理解。其实,在面试的时候不一定有机会或者有必要照搬你的大作,但这三个问题的内在联系点一定会体现在自我表述的整体感觉中,使你的形象栩栩如生。

2、投其所好

清楚自己的强项后,便可以开始准备自我介绍的内容:包括工作模式、优点、技能,突出成就、专业知识、学术背景等。

好处众多,但只有短短一分钟,所以一切还是与该公司有关的好。如果是一间电脑软件公司,应说些电脑软件的话题;如是一间金融财务公司,便可跟他说钱的事,总之投其所好。

但有一点必须紧记:话题所到之处,必须突出自己对该公司可以作出的贡献,如增加营业额、减低成本、发掘新市场等。

3、铺排次序

内容的次序亦极重要,是否能抓住听众的注意力,全在于事件的编排方式。所以排在头位的,应是你最想他记得的事情。而这些事情,一般都是你最得意之作。与此同时,可呈上一些有关的作品或纪录增加印像分。

面试自我介绍范文

中文面试自我介绍材料 尊敬的各位考官、各位评委老师: 通过考试,今天,我以本岗位笔试第一的成绩进入了面试。对我来说,这次机会显得尤为珍贵。

我叫***,今年27岁。1997年7月我从**师范学校艺师美术专业计划内自费毕业。由于从97年起国家不再对自费生包分配,使我与“太阳底下最光辉的职业”失之交臂。幸好,当时河西马厂完小师资不足,经人介绍,我在该完小担任了一年的临时代课教师。回想起那段时光真是既甜蜜又美好,虽然代课工资很低,但听着同学们围在身旁“老师”、“老师”的叫个不停,看着那一双双充满信任的眼睛,那一张张稚气的小脸,生活中的所有不快都顿时烟消云散了。我原想,即使不能转正,只要学校需要,就是当一辈子代课教师我也心甘情愿。不料,1998年起国家开始清退临时工和代课教师,接到了学校的口头通知后,我怀着恋恋不舍的心情,悄悄地离开了学校。

今天,我想通过此次考试重新走上讲坛的愿望是那样迫切!我家共有三姊妹,两个姐姐在外打工,为了照顾已上了年纪的父母,我一直留在他们身边。我曾开过铺子,先是经营工艺品,后又经营服装。但不论生意做得如何得心应手,当一名光荣的人民教师始终是我心向往之并愿倾尽毕生心血去追求的事业。我曾多次参加考试,但都由于各种原因而未能实现梦想,但我暗下决心,只要有机会,我就一直考下去,直到理想实现为止。

如今的我,历经生活的考验,比起我的竞争对手在年龄上我已不再有优势,但是我比他们更多了一份对孩子的爱心、耐心和责任心,更多了一份成熟和自信。教师这个职业是神圣而伟大的,他要求教师不仅要有丰富的知识,还要有高尚的情操。因此,在读师范时,我就十分注重自身的全面发展,广泛地培养自己的兴趣爱好,并学有专长,做到除擅长绘画和书法外,还能会唱、会说、会讲。“学高仅能为师,身正方能为范”,在注重知识学习的同时我还注意培养自己高尚的道德情操,自觉遵纪守法,遵守社会公德,没有不良嗜好和行为。我想这些都是一名教育工作者应该具备的最起码的素养。您现在阅读的文章来自“中国人才指南网”,请记住我们的永久域名: 假如,我通过了面试,成为众多教师队伍中的成员,我将不断努力学习,努力工作,为家乡的教育事业贡献自己的力量,决不辜负“人类灵魂的工程师”这个光荣的称号。

补充资料:

面试英语第一讲:面试开场白

刚过年,大家是不是都忙着找工作或者跳槽呢?但是一想到面试时的英语问题头就大了,唉,没办法,还是得“勇敢面对”啊!别担心,从今天开始,大家就跟我Betty一起来学面试英语吧,保证让你轻松过关。

今天我们来讲第一讲 面试开场白。面试时总要说上那么几句,一般去了面试的公司以后,里面的接待人员都会主动问一些问题,先来看看下面这个对话吧:

A: Can I help you? 有什么事吗?

B: Yes.Ive come to apply for the position as an office secretary.是的我是来应聘办公室秘书一职的。

A: Im Smith, the clerk of Human Resources Department.Whats your name? 我是史密斯,人力资源部秘书。你叫什么名字?

B: My name is Wang Fang.Mr.Smith, how do you do? 我叫王芳,史密斯先生,您好。 A: Nice to meet you, Mi Wang.We have received your letter in answer to our advertisement.I would like to talk with you regarding your qualification for this interview.很高兴认识你王小姐。我们已经收到你的应聘信,我想和你谈谈关于你应聘的事情。

B: Im very happy that I am qualified for this interview.能有机会参加面试我感到很荣幸。 A: Now, talk something about yourself, please.哦,现在请谈谈你的个人情况吧。 B: Well, my name is Wang Fang.W-a-n-g Wang and F-a-n-g Fang.I was born on May 17, 1982.……好的。我叫王芳,W-a-n-g 王,F-a-n-g 芳。我出生于 1982年5月17日。……

Words & Expreions: interview: 面试 resume: 简历

office clerk: 办公室秘书,即文员 birthday place: 出生地 graduated ...from: 毕业于 domicile place: 户口所在地

Background:

面试是一种经过精心设计,以交谈和观察为主要手段,以了解被试者素质及有关信息为目的的一种测评方式。

面试就是你与面试官面对面的一种交流,更是你施展才能与特点的好时机,即要让他们了解你,还要让他们相信你才是最理想的人选。与此同时,也是你认识,揣测与了解你面前的主考官的时候,而他很有可能就是你即将的上司或老板。

面试的总目标就是给对方一个好印象,那么你就要预先作好充分准备,通过各种方法去了解所面试公司单位的一些基本情况,猜测可能会被问到的问题,这样回答时思路就会比较清晰,有针对性。

文章第一讲就是这么简单,记住这些你会发现其实英语面试一点都不难,对吧。关于面试时的开场白我们还有很多例句和常用的句型,大家想了解的话请点击此处到论坛查看并发表评论。下一课我们会讲面试时如何进行自我介绍。

面试英语第二讲:面试自我介绍

上一课我们讲了面试英语中首先要进行的开场白(点击此处进入课堂学习),那么接下来面试官就要听听你的自我介绍了。我们先来看一下下面的对话: A:Good morning.Im Lydia Shen, the manager of the company.Whats your name please? B:How do you do, Mi Shen.My name is Penny Zhao.And Im coming for your advertisement for a trainee salesperson.A:How do you do, Penny? Well, for this job, we need people to work hard.Do you think youre suitable for this kind of job? B:Oh, yes, I think so.A:Ok.Please talk something about yourself or introduce yourself.B:……

A:早上好。我是Lydia Shen,这个公司的经理。你叫什么名字。 B:你好,沈小姐。我叫Penny。我是来应聘见习推销员的。

A:你好,Penny。对于这个工作,我们需要刻苦能干的人,你觉得你能适应这样的工作吗? B:恩,我想我能。

A:好吧。那就说说你的情况吧,或者介绍一下自己。 B:……

该介绍自己了,那么在面试中怎么做自我介绍呢?先来看一些背景知识:

Background:

面试时需要做自我介绍,这个时候不要细致地谈自己的生活情况或者工作经验,而是要想方设法地让面试官对你有所了解,告诉他一些事情,这些事情应该使你在招聘过程中具有优势。或许你想选取一些有人情味的故事讲给他听,但这么做,你要有把握与面试官的想法吻合。或者可以概述一下最近你干的工作和你正在申请的工作有什么联系,有怎样的帮助,以及你为什么要到这家公司工作等等。特别值得提的是,要举例子,这样你的回答才更具真实性,更容易被接受,才能给对方留下深刻的印象。

或者当面试官让你做自我介绍的时候,你可以主动问一下对方想知道自己哪方面的情况,这样也便于你的回答更加有针对性。但是这种做法的前提是你对面前的这个面试官有一定的把握,确信这样追问不会引起对方的反感才行。

有了这些背景知识,我们再掌握一些基本的单词和常用的句型来帮助我们理解对方的话和组织语言表达清楚自己的意思就足够了:

Words & Expreions:

part-time job: 兼职工作 full-time: 全职

position / vacancy: 职位,空缺 manager: 经理 director: 主任

president: 董事长,总经理 General Manager: 总经理 saleperson: 推销员 engineer: 工程师 accountant: 会计 degree: 学位

introduce:(动词) 介绍 introduction: (名词)介绍

Let me introduce myself./ Let me do some introduction.让我来介绍一下自己。 Which aspect do you want to know about me? 或者 What do you want to know about myself? 您想知道我哪方面的情况?

英文英语面试自我介绍 good morning, my name is jack, it is really a great honor to have this opportunity for a interview, i would like to answer whatever you may raise, and i hope i can make a good performance today, eventually enroll in this prestigious university in september.now i will introduce myself briefly,i am 21 years old,born in heilongjiang province ,northeast of china,and i am curruently a senior student at beijing XX uni.my major is packaging engineering.and i will receive my bachelor degree after my graduation in june.in the past 4 years,i spend most of my time on study,i have paed CET4/6 with a ease.and i have acquired basic knowledge of packaging and publishing both in theory and in practice.besides, i have attend several packaging exhibition hold in Beijing, this is our advantage study here, i have taken a tour to some big factory and company.through these i have a deeply understanding of domestic packaging industry.compared to developed countries such as us, unfortunately, although we have made extraordinary progre since 1978,our packaging industry are still underdeveloped, me, unstable, the situation of employees in this field are awkard.but i have full confidence in a bright future if only our economy can keep the growth pace still.i gue you maybe interested in the reason itch to law, and what is my plan during graduate study life, i would like to tell you that pursue law is one of my lifelong goal,i like my major packaging and i wont give up,if i can pursue my master degree here i will combine law with my former education.i will work hard in thesefields ,patent ,trademark, copyright, on the base of my years study in department of p&p, my character? i cannot describe it well, but i know i am optimistic and confident.sometimes i prefer to stay alone, reading, listening to music, but i am not lonely, i like to chat with my clamates, almost talk everything ,my favorite pastime is valleyball,playing cards or surf online.through college life,i learn how to balance between study and entertainment.by the way, i was a actor of our amazing drama club.i had a few glorious memory on stage.that is my pride.

第20篇:程序员

程序员•直销•鞋工

你走的每一步,做的每一件事,遇见的每一个人,都只为成就更好的自己。愿你在回忆过去时不后悔曾经经历的不惧怕将要面对的。 高中毕业,如果能考试大学就继续学生生涯,如果没有考上就出去打工,这是大部分高中毕业学生的命运。 我是幸运的,因为我父母多付出的汗水和辛劳让我有机会去上了技校,学的当时比较流行的软件开发。 在技校我的样貌平平,学习成绩一般,

可是我和同学之间的沟通交流却是如火如荼,那个同学失恋了、分手了,看中哪个男生了,我就充当起了爱情专家,当然只限于纸上谈兵,我也很好奇对于我这个24岁之前都没谈过恋爱的人来说怎么就能把别人的恋情分析的头头世道呢。现在想想这要归结于我爱看电视剧而且专看爱情剧,还有就是同学有些情爱之事都跟我说,慢慢的经验就丰富了。此刻想大笑三声,哈哈哈~~~~ 技校毕业了,之后随着就业大军去到深圳,浩浩荡荡在深圳30多度的时候一群穿着毛衣妮子外套稚气未脱的学生进入到老师提前找好的民房。那时候最怕给父母打电话,因为已经有人找到工作了,我还毫无动静。终于功夫不负有心人或者说异地遇老乡才得以找到工作更准确吧。 进入公司那一刻还是很开心的,终于成为白领了,可是想融入一个圈子真的很难,,人家都是一群牛叉,而我就是一个技术小白,一个功能经理讲了几遍,可是我做起来还是磨磨唧唧。因为技术太差,和其他同事的交集也不多,就这样我变成了一个可有可无的人。 那时候真的很痛苦,每天睁开眼睛想着今天要上班然后整个人都如霜打的茄子一般。每天上班如果别人不跟我说话,我可以一天不说话。我怎么可以如此安静。 人家都是三个月就转正了,我因为表现不好,四个月才勉强转正,转正的第二天我就提出了辞职了,当时辞职手续办完了,已经中午了,走出大厦时,感觉天如此栏,阳光如此温暖,就连空气都泛着甜味。 那时候的自己怎么那么浮躁,工作能力不强,从来没想过好好提示自己的职业技能,而且每天梦想着如何变富,如何能开上跑车,如何能买上房子。有这样的思想的人是很可怕的,一不小心就走上了一条和原定人生背道而驰的道路。只要不犯法,条条道路无所谓好坏。只看自己能否从中不断学习,提升自己,是否对自己的成长有帮助。我瞒着父母独自去了杭州加入了一个直销团队。 一个屋里住着10来个人,每天早上要在网上互相分享,听课,讲产品,中午大家平均他摊钱买菜,菜也就是白菜,萝卜,那时候好想吃肉,可是,可是…..没钱。每次给父母打电话都骗父母工作挺好的,生活也不错,跟父母说今天放假跟同学去哪里哪里玩了,其实做了直销之后我每天都在网上不停的加人,不停的聊。 在某一天的午饭后父母打电话,让我回家,他们知道我早就没上班了而且还在做直销,当时没有“直销”这个词,他们理解的就是传销。父母让我什么多别拿,拿着身份证带上钱马上去火车站。在那个下着细雨的午后我去了火车站。第二天早上抵达老家,看到了父亲一句责备的话也没说,只是说人回来就好了,至此,我的独立生活结束了。 回到家乡每天看电视剧,看小说,在网上东看看西瞅瞅,不知道要干什么。那时候我的家乡还没有做软件开发的,然后我就在一个鞋厂找到一个流水线的工作。就是把鞋的内里贴到鞋邦上,敲打服帖。 时至今日我还清楚的记得第一天下班后的情景,第一天上班正值深秋,鞋子的需求量很大,晚上加班到十点,然后打扫卫生,回寝室,趟到床上的那一刻就是幸福,腿酸痛,胳膊都抬不起来了。大脑已经无法运转了。一夜无梦,第二天早上拖着浑身的酸痛继续去工作。 流水线的人基本上都是一些已婚妇女或者就是没上什么学的刚入社会的非主流青年。这个圈子我压根都不想进,因为我想我迟早会离开这里的。所以大家都相互聊天,特别是那些已婚妇女都大声说着荤黄段子我就觉得恶俗。我基本上不聊天每天都沉浸在自己的世界里,带着耳机听着歌,我就自成一派,其他的一切都与我无关。 后来病了一场,我就辞职了。原来生活竟会如此不易。是我太天真,我一直生活在父母为我塑造的象牙塔里。忘记了人生还有酸甜苦辣。 后来的后来,我就再次启程,去成就现在的我。 (ps:不知道你是不是也时常会后悔,后悔当初做的决定,后悔当初不应该干的事情,想想如果当初换一个选择,现在会不会更好。不要带着后悔去走未来的路。既然是自己选择的路,即使跪着也要走完。)

程序员面试范文
《程序员面试范文.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档