‘壹’ C\C++程序员需要掌握什么书籍
c/c++程序员需要掌握的书籍大概可以分成几个方面:
计算机基础类书籍,这类书籍包括计算机组成原理、计算机网络、数据库、操作系统、数据结构与算法。
c/c++类专业书籍,这类书籍包括基础的C语言程序设计、C++primer。
扩展类书籍,c/c++相关扩展类,推荐的有C陷阱与缺陷、深度探索C++对象模型、effective C++。
平台扩展类书籍,这类就要看你在哪类系统下做开发,一般常用的系统平台是嵌入式、windows、Unix及ios(object C++),这类书籍就比较多了,可以按照个人需求选择。
按照上述推荐的理由是:
学习计算机语言需要一定的基础,这类基础是非常重要但是很无聊的,后续在做开发的时候会觉得非常实用。
学好语言其实不是非常麻烦的部分,一般的教材类书籍即可,重要而麻烦的是在敲代码的过程中去熟练掌握、运用和创新。
扩展类书籍3可以帮助你更深入的理解你所学到的东西,而深入理解是程序员进阶的必经之路。
平台类书籍略有区别,但是标准C++是一样的,只是针对各自平台做了相应扩展(objectc++除外)。如果需要在某个平台下做开发,或者学习再去学习使用即可。
‘贰’ c/c++程序员面试宝典怎么样
总体还是比较好的,通过380余个面试题,对企业招聘c/c++程序员需要掌握的知识进行了系统、全面的总结,以帮助读者进行充分的面试准备,在激烈的竞争中成功。
‘叁’ 工作二年以上的程序员前辈如何准备面试
做一份工作,实际就是追寻梦想的过程,而为了完成梦想,必须有一个长期规划,从而指导我们选择工作。它是择业过程中最本质和最原始的参考借鉴
‘肆’ 《.NET》程序员面试应该怎么准备
一、NET程序员面试的技巧:
面试是很奇妙的一件事情,在短短的一段时间内,要让一个完全陌生的人认可自己的专业能力,认可自己的人品,认可自己的职业习惯等。而同样,被面试者需要判断这是否是一家靠谱的公司,是不是有钱,是不是适合自己工作,是不是和自己发展方向一致等。工作就像是娶媳妇(找老公),不是说随随便便说换就换,而是自己每天都要面对的事情,所以找个好的企业,找一份好的工作,对于一个靠自己养活自己的人来说真实太重要了,那么找好企业,找好工作的第一步就是面试。
一、面试自身的综合素质。
1、基本仪容和礼仪:
其实不是针对面试,基本仪容和礼仪在日常生活也是非常重要的,是一个人是否有教养,是否有素质的基本要求。
穿着:如无特别需要,不要着正装,休闲装即可。但是不要光脚丫子大拖鞋,背心吊带,男士不要穿露脚趾凉鞋。干净整洁即可,表示对本次面试的重视和对面试官的尊重。
仪容:女士如果想化妆的话,淡妆即可,素颜也可以。男士头发理一下,胡子剃掉。还是那句话,干净整洁,万万不可口腔有异味,或者身上有体味(特别是脚丫子臭味,绝对不行)。
礼仪:多说“请”,“您”,“谢谢”,记得进门后关门,前台给你倒的水走的时候记得拿出去扔掉。坐下来面对面试官要有坐像,不要跟在家里一样太随便,说话口齿清楚,慢一点说,不要跟打机关枪一样。切记,不可做作,细节处把握尺度就行。如果遇到和面试官有分歧的时候,立即闭嘴并闭嘴,不要争论,不要试图说服面试官,更不可耻笑或者蔑视面试官,哪怕你确实不知道比面试官高到哪里去了。记住,这是礼貌,跟自己技术有多牛逼无关。
谦虚:任何时候,把自己放在一个相对低的姿态,自己是来面试,不是来教育面试官的,抱着一种接受检阅和学习的态度面对面试,千万千万不要觉得自己主角光环加身,天下之大老子第一。谦虚,起码不会让你有成为一个跳梁小丑的机会。
2、专业基础知识:
对于程序猿来说,专业基础知识绝对是重中之重,是面试成功的最基础要素。说的专业基础知识,不是说自己做了多少个项目,写了多少行代码,而是软件开发的基础知识。
在面试的时候,有时候会遇到一些候选人,乍一看简历也有好几年工作经验,项目也写的满满的,但是却连“值类型引用类型本质区别”,“构造函数有哪些特点,何时被调用”,“类和接口区别是什么”这样的问题也回答不了,注意, 是回答不了,也就是不知道,不是知道意思但是组织不了语言。 这类候选人通常在连续回答不上几个问题后,开口为自己辩解:“我动手比较强,写代码都没问题,但是书上的概念我真的不太清楚”。能说出这个话,就说明此人根本就明白作为一个技术工作者最基本的专业素质是什么。所以千万不要觉得自己工作几年,有些代码经验就已经可以挑战更加高薪的工作。
在面试前,一定要先审视一下自身的基础知识掌握程度,如果有必要,自己买书回来或者网上找一些资料,利用空余时间系统的学习一遍,比如所使用的语言本身,比如自己擅长的框架底层实现,比如编译原理,比如多线程的知识,比如Http相关的知识等等。千万不要没有一点点基础知识储备或者基础知识储备不丰富就跑去面试,失败的几率非常大,如果眼睁睁的看着自己心仪的工作机会擦肩而过,我想是谁都会难过的。
3、沟通能力:
面试的过程本质上就是一次沟通的过程,候选人在短短的时间内要尽量的向对方展现自己的长处,隐藏自己的短处,尽量让对方问题得到圆满答复并且留下较好印象。有些程序猿性格内向,在陌生人面前比较腼腆,话语不多。当然,这不能说是做错了,只能说是一些性格上的短处而已(如果很严重,那就有自卑的可能,需要重视并且纠正)。在面试时,候选人一定要精神焕发,昂首挺胸,眼神坚定,切记切记眼神不要飘忽不定,切记切记不要瓮声瓮气。咱们遇到不会的问题,就老老实实的说“这个我不清楚”,或者“这个我不会”,千万千万不要不懂装懂,顾左右而言他,打算糊弄过去。捣糨糊是过不去的,面试官的问题肯定是面试官非常清楚答案的,忽悠面试官就是在忽悠自己,有意思吗,当然,也不要胡乱回答,否则只会成为面试官和其它的同事茶余饭后的笑话。
在面试时,尽量双眼直视面试官(但不要瞪着人家),背挺直,手机开飞行模式,说话口齿清楚,利落干脆,回答得上就尽量说,回答不上直接说不知道,不要罗里吧嗦 ,特别是谈到薪酬,对方问你期望时,最好在现有基础上增加10%-20%,不要漫天要价,也不要不好意思,放心大胆的说出自己的期望,如果对方觉得略高,会再跟自己商量。务必一开口就给人真诚,干练,干脆,专业的印象。
4、过往项目经验:
很多面试者不大重视自己的过往项目经验,每个做过的项目,虽然自己在其中可能只是做一个模块甚至一个功能,但是自己都会想办法搞清楚整个项目的业务流程,研发背景,内部模块功能,和外部如何实现集成,底层数据库的设计,整体系统架构设计等等。在面试候选人的时候,通常都会问最近一个项目相关的东西,有很多候选人都会表示是自己一个人设计开发了这个项目,但是连有哪些功能模块,系统结构(注意,不是架构)都回答不出来。有些面试者,在面试一些中高级的程序员时,很喜欢从过往经验入手,自己再一遍介绍的时候他可能随时提问。因为这样有2个好处,第一是预防一问一答的形式,候选人事先背了很多问题的答案,第二是从候选人过往项目经验入手,除了可以看出候选人是否虚假构建了项目经验,还可以判断该候选人对开发细节的把握以及对一些技术点的反应能力和掌握情况,毕竟“突然袭击”比“瞄准射击”要更加考验候选人。
所以,在面试前,应该好好把自己以前的项目经验都捋一捋,特别是上一个项目,从业务流程到产品设计到系统开发,特别是项目内一些你做过的细节地方,准备在面试时拿出来说的,必须以此为点,相关的东西都查查资料看一看。再一个就是项目里面的闪光点,什么叫闪光点,就是高大上的东西,需要自己多了解了解,在面试的时候拿出来说也可以加分。面试的时候谈到这个上面(闪光点)的时候,面试官对这一块很有兴趣,越问越深,也知无不言,为自己增分不少。
5、不要作弊:
有些企业在面试程序员的时候,喜欢一开始扔一张试卷让候选人先做,然后再去面试。暂且先不谈做卷子考察方式的好坏, 在做试卷的时候,万万不要用移动设备上网查询答案。 本身作弊的行为就让人不齿,如果面试官在暗处进行观察,发现作弊,那就太尴尬了。会就是会,不会就是不会,即便你用手机查答案把试卷写的满满的,在接下来面试的时候,面试官再就试卷上的问题展开一问你,你还是不会。所以不管有没有人监督,在面试的做试卷环节,千万不要作弊。
6、热门技术点的掌握:
其实这是个增分项目,如果上面几点都已经通过面试的考核,那么这一点就会成为你绝对的亮点。
首先要先自己了解一下当前热门的技术,然后通过分析自己申请的职位,去看看可能涉及到哪些热门的技术,然后再去专门的找资料进行学习和动手实验。比如你是搞互联网的,那么最好学习一下负载均衡相关的技术,学习分布式数据库的技术,学习缓存技术,学习页面静态化的技术;
如果自己是搞数据分析的,那么最好学习一下Hadoop,学习一下微软的Cube,学习一下惠普的Vertical;如果自己是搞iOS的,那么可以看看Swift,可以看看Xamarin,可以看看WebSocket等,当然,我只是举几个例子,不一定非要这样对应,如果是搞Java的,也可以去看看Pathon,如果是搞.net的,也可以去看看Ruby on rails等等。所谓技多不压身,就是这个道理。
二、以上 6 点是自身素质的要求,如果在这6点上面能让面试官满意,基本上面试就没有太大的问题了。接下来讲一下,选一个好的公司或者企业。
1、面试官是否专业:
这里的面试官不仅仅是指技术面试官,也包括HR或者大老板。如果面试官问你一些奇葩问题(例如问你开什么车,房子多大,伴侣薪水多少等等),或者有比较明显的不耐烦,歧视,傲慢等表现,就基本可以断定这人是个奇葩,这家企业也要慎重考虑,因为这个奇葩的人很可能就是你的上司(或者是HR)。好的企业面试官应该表现出来的是专业水准,起码中规中矩问一些常规的该问的问题。
2、尽量找猎头推荐或者同行推荐:
道理其实很简单,一个企业如果花钱请猎头寻求人才,说明了企业对于这个职位的重视程度,也说明了企业是有经济能力支付相对高昂一些的招聘费用。这样就无形中对企业进行了一轮筛选。
3、工作环境:
不求工作环境高大上,起码要整洁干净。从对工作环境的状态,可以看出企业管理者的一些习惯,如果工作环境阴暗潮湿,破破烂烂的,员工也是咋咋呼呼大喊大叫,说明管理者要么是没有足够的经济条件进行整改,要么是自身习惯不好,不在乎环境。建议在面试时,仔细观察一下工作环境,如果是明亮宽敞,干净整洁,大家都静悄悄的做自己的事情的,从工作环境上说是个不错的企业。
4、加班与薪酬福利待遇:
谈到薪酬不要腼腆,在现有基础上加10%-20%都是正常范围,只要不乱要价就行了,这里说的薪酬是指纯工资,在面试时,还要考虑企业能提供的年终奖或者其他福利。对于加班的话,一般来说做IT的加班是很正常,但是要问清楚加班怎么算,是加班费还是调休。以下几种情况,请慎重考虑:
a. 无偿加班。
b. 强制加班到x点。
c. 单休。
d. 无年终奖。
e. 除了工资以外无任何福利。
f. Offer或者合同不量化写清楚工资数字,而是写“和业绩挂钩”,“根据业绩”等。
5.在面试之前上某准网(以前叫某智网)查一下该公司评价。
当然也可以先网络一下,如果是骗子公司,就直接可以查出来,但是有些公司内部其实很烂,但是并不是骗子公司,所以这时候就需要去某准网上搜一下评价。但是也不是每个公司都有评价,有很多小公司,在某准网上也没有。但是抱着没有负面评价就是好评的思路,也说的过去。如果一家企业明显有很多负面评价,而你刚好要去这家企业面试,建议你就得好好考虑考虑了。
6、上门面试时,去卫生间看一下:
没错,就是去卫生间。可以提前点到,然后问一下前台卫生间,去卫生间洗个手(或者面试完成后也行),特别是看看厕纸的质量。当然,让你去看看卫生间的环境和厕纸质量,不是在衡量以后你在这里方便的是否舒服,而是通过卫生间的状况,可以看出企业管理者对于治理企业的态度。如果一家企业连卫生间的要求都很高,装修比较好,卫生条件也不错,甚至连厕纸质量都很好,那么在其他方面,对待员工应该差不了哪里。说来你可能不信,我见过的企业中,几乎都满足这一条。不好的企业卫生间一定是比较破烂,设施破损怀旧了也不会及时修理,厕纸用的最廉价的。而好的企业卫生间装修精美,设施干净,厕纸也是较厚较柔软的。其实大家可以仔细留意一下,好的商场,好的学校,卫生间相对都比较高档一些。
其实面试还是得靠自己的实力,所以技巧再多都是辅助,只有自己的技术水准达到一定的程度,才能拿下心仪的职位。
‘伍’ 求C和C++程序员面试秘笈 pdf
既然是面试的话。建议不要去看什么之类的书籍了,时间也来不及,而且不一定奏效。个人在C方面的造诣不说多深,但也入行5年有余了,建议如下:
面试前。对你要面试的公司和岗位(或行业)做一次详细透彻的了解,记住是要透彻,技术不一定是最牛逼的,但是你要知道别人公司做什么的,处于行业的水平是什么样,公司文化以及公司的优势与劣势,他们究竟要招什么样的人;
面试中。一定要别人看到你认真、执着的一面,领导喜欢这样的员工,也不想错过这样的员工,也是公司培养的潜在人员,有升值空间;谈吐不必过于主动,也不要太被动,自然为好,能在谈吐中讲一讲自己曾经做过的案例更好,没有的话,就说在学校做过那些成功的IT项目。
面试后。如果收到HR的面试通过电话,或者邮件,就按照要求准备入职,如果一周后依然没有回音,就客气有礼貌的电话或者邮件回问公司,自己是是否被录取淘汰;
可能遇到笔试或者多轮面试考核。这里吗就看你的硬功夫了,一般就是给你多长时间设计完成一个程序,或者程序对接,程序调试,等等。
待遇问题。直接了当的说,按照公司制定的工资水平来。问清楚调薪制度、周期、幅度,或者提成计算方式,其他的福利待遇什么五险一金,都差不多,都是按照国家标准的。另外就是工作时间这块,是否每周五天八小时,加班怎么考虑。很多都是看公司地点和效益来定的。
纯手打,花了我十来分钟,支持请采纳!
‘陆’ 求C语言 .NET面试题
面试与被面试总结
我从事技术工作,
这几年的面试与被面试总结
先说我去被面试的经验吧。
回答清楚了2个问题,就能顺利过关了。
1。为什么要离开上一家公司。
2。公司为什么要雇佣你。
问第一个问题的是hr(或老板),呵呵 ,即使你技术过关,hr那里没有好的影响,结果是一个字,难!
如何回答呢? hr想推论出你在他的公司能呆多久。这个时候,你甚至可以明确告诉他,我在贵公司至少能呆n(n>=1)年----当然,你没有把握的话,绝对不能乱说,社会上混,要讲信用的。
有一次,我就在这个问题上吃了大亏,我看公司环境还不错,就我自做主张回答1年,结果,hr心目中是m(m>=2)年,呵呵,结果可想而知了。要知道,技术面试都过关了,Hr面试是2选1,在回家的路上,我只能祈祷对手自动放弃或找到了其他更好的工作。:)
问第二个问题的是技术官。你要让他知道你已经做过哪些商业作品。一定要是商业作品。在里面负责哪方面具体工作,对于你熟悉的地方要多说。最好就是能争取笔试或上机,因为用用口说的话,大家理解都不一样,误差可能很大,结果对你相当不利。在这个问题上我也吃过亏的,曾有一个我很看好的职位,认为把握很大,业务理解上也很有优势,和技术官一谈,结果是game over。要知道,在其他公司的上机和笔试中,我都能在应聘者中取得高分。
再说我去面试别人的经验吧。
当时,我的任务是出题,给分。若你觉得题很难,那么,请千万不要放弃,显然,你的对手也觉得难。只要坚持,我会认为这人有耐心很毅力,在以后的工作中也是好的合作者。题一定要做完,表现出认真的态度,若有疑问或卡壳,还可以寻求面试官的帮助,这些不会减分,相反,会增加你和他们的接触机会,面试官会评估你的沟通能力。
有一次,有1个人来面试,题没有完全ok,但很规范,态度很认真,他把他知道的都做上去了,我给了他技术类的高分。后来,顺利进入公司,再后来进步很快,成了重要角色。
若文章对你有帮助的话,请在此讨论。
祝你成功
面试题
1.链表和数组的区别在哪里?
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
4.请编写能直接实现strstr()函数功能的代码。
5.编写反转字符串的程序,要求优化速度、优化空间。
6.在链表里如何发现循环链接?
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码 ,编写出一个从字符串到长整形的函数?)
9.给出一个函数来输出一个字符串的所有排列。
10.请编写实现malloc()内存分配函数功能一样的代码。
11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
12.怎样编写一个程序,把一个有序整数数组放到二叉树中?
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
另外:
一、单项选择题:(共12题,每题2分,共24分)
1. 下面哪一个不是C++的标准数据类型? ( D)
A. int B. char
C. bool D. real
2. break关键字在哪一种语法结构中不能使用? (C)
A. for语句 B. switch语句
C. if语句 D. while语句
3. 类的继承方式有几种? (B )
A. 两种 B. 三种
C. 四种 D. 六种
4. extern关键字的作用是什么? (D)
A. 声明外部链接 B. 声明外部头文件引用
C. 声明使用扩展C++语句 D. 声明外部成员函数、成员数据。
5. C库函数strstr的功能是? (A )
A. 查找子串 B. 计算字符串长度
C. 字符串比较 D. 连结字符串
6. stl::deque是一种什么数据类型? (A )
A. 动态数组 B. 链表
C. 堆栈 D. 树
7. STL库里含有下面的哪一种泛型算法? (D )
A. KMP查找 B. 折半查找
C. 冒泡排序 D. 快速排序
8. 现在最快且最通用的排序算法是什么? (A )
A. 快速排序 B. 冒泡排序
C. 选择排序 D. 外部排序
9. Win32下的线程的哪一种优先级最高? ( C)
A. THREAD_PRIORITY_HIGHEST 高优先级
B. THREAD_PRIORITY_IDLE 最低优先级,仅在系统空闲时执行
C. THREAD_PRIORITY_TIME_CRITICAL 最高优先级
D. THREAD_PRIORITY_ABOVE_NORMAL 高于普通优先级
10. 下面四个选项中,哪一个不是WinMain函数的参数? (D )
A. HINSTANCE B. INT
C. LPSTR D. WPARAM
11. VC++的编译器中,运算符new底层的实现是什么? (B )
A. VirtualAlloc() B. HeapAlloc()
C. GlobalAlloc() D. AllocateUserPhysicalPages()
12. 下面哪一本C++参考书最厚? ( C)
A. 《Think in C++》 B. 《深入浅出MFC》
C. 《C++ Primer》 D. 《Effective C++》
13. 当调用Windows API函数InvalidateRect,将会产生什么消息(A)
A. WM_PAINT B. WM_CREATE
C. WM_NCHITTEST D. WM_SETFOCUS
14. 关于virtual void Draw()=0,下面说法正确的有几个(C)
(1)它是纯虚函数(对)
(2)它在定义它的类中不能实现(对)
(3)定义它的类不可实例化(对)
(4)如果一个类要继承一个ADT类,必须要实现其中的所有纯虚函数(错)//可以不实现,派生之后的类仍旧作为一个抽象类.
A. 1 B. 2
C. 3 D. 4
二、不定项选择题:(共6题,每题3分,共18分,多选、错选、漏选均不给分)
1. vector::iterator重载了下面哪些运算符? (ACD)
A. ++ B. >>
C. *(前置) D. ==
2. CreateFile( )的功能有哪几个? (AB )
A. 打开文件 B. 创建新文件
C. 文件改名 D. 删除文件
3. 下面哪些是句柄(HANDLE)? (ABCD )
A. HINSTANCE 实例句柄B. HWND 窗口句柄
C. HDC 设备描述符号句柄 D. HFONT 字体句柄
4. 下面哪些不是OpenGL标准几何元素的绘制模式? (A )
A. GL_FOG B. GL_LINE_STRIP
C. GL_POINTS D. GL_TRIANGLE_FAN
5. 下面哪些运算符不能被重载? (ABD )
A. 做用域运算符“::” B. 对象成员运算符“.”
C. 指针成员运算符“->” D. 三目运算符“? :”
6. 下面哪些人曾参与了世界上第一个C++编译器的开发? ( )
A. Bill Gates B. Stanley Lippman
C. Anderson Hejlsberg D. Bjarne Stroustrup
7. 以下说法正确的是? ( ABC)
A. 头文件中的 ifndef/define/endif 是为了防止该头文件被重复引用。
B. 对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
C. C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C 语言的不同。假设某个函数的原型为: void foo(int x, int y); 该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。
D. fopen函数只是把文件目录信息调入内存。//错,fopen是把整个文件读入内存
三、填空题:(共8题,每题3分,共24分)
1. 一个大小为320 X 192,颜色为灰度索引色的设备相关位图有______字节。如果此位图颜色为24位真彩色,则它的大小有______字节。
2. Windows API的中文意义是____ windows应用程序接口___。
3. 计算反正弦的库函数是__asin()____;计算浮点数绝对值的库函数是__fabs()____;计算浮点数n次方的库函数是__pow()____;将浮点数转化为字符串的库函数是___fcvt()___。
4. 如果i等于5,那么( ++i ) - -的返回值是__6__。
5. API LoadBitmap()的功能是从__指定的模块和或应用程序实例__中读取位图数据到内存。
6. new和__delete___对应,malloc和_free___对应,他们之间_ 不能__交叉混用。calloc的功能是__为数组动态分配内存___,realloc的功能是_改变原有内存区域的大小_。
7. SendMessage和PostMessage都会向窗体发送一个消息,但SendMessage__将一条消息发送到指定窗口,立即处理__而PostMessage__将一条消息投递到指定窗口的消息队列,不需要立即处理___。
8. 输出指定圆心、半径、边数的圆上的点:
const int nCount = 12;
const double dOrgX = 5.0,
dOrgY = 3.0;
const double dRadius = 2.0;
for( int i = 0; i < nCount; i++ )
{
double dAngle = M_PI * 2.0 / (double)nCount * i;
cout << "第" << i << "点:X = " << ________; cout << ", Y = " << __________ << endl;
}
三、判断题:(共12题,每题2分,共24分)
1. 一个类必须要有一个不带参数的构造函数。 错
2. 你不能写一个虚的构造函数。 对
3. 类里面所有的函数都是纯虚函数时才是纯虚类。 错
4. const成员函数对于任何本类的数据成员都不能进行写操作。 对
5. 函数中带默认值的参数必须位于不带默认值的参数之后。 对
6. char *p = "Test"; p[0] = 'R'; 错
7. cout << "Test"; 对
8. stl::list不支持随机访问叠代器。 对
9. stl::vector的效率比stl::list高。 错
10. VC和VC++是一回事,而VC++是一种比C++更难一些的语言。 错
11. 理论上,new和malloc造成的内存泄露都会由操作系统回收。 错
12. 在C++中struct和class的差别很大,所以从语法上不能混用。对
四、简述题(共3题,每题5分,共15分)
1. 请简述PeekMessage和GetMessage的区别。
答: Peekmessage和Getmessage都是向系统的消息队列中取得消息,两个函数的不同在于取不到消息的时候,若Getmessage()向消息队列中取不到消息,则程序的主线程会被OS(操作系统)挂起,等到有合适的消息时才返回;若是用Peekmessage()在消息队列中取不到消息,则程序会取得OS控制权,运行一段时间。
另外,在处理消息的时候,GetMessag()会将消息从队列中删除,而PeekMessage()可以设置最后一个参数wRemoveMsg来决定是否将消息保留在队列中。
2. 请列出你所知道的在Windows SDK平台上,实现计时功能的方法。
答:可以使用SetTimer函数创建一个计时器,SetTimer的函数原型如下:
UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc
3. 请简述你所知道的const的各种用法。
答: const 常量
const 修饰类的数据成员
const 修饰指针
const 应用在函数声明中
const 应用在类成员函数
五、编程题:(共3题,第1小题7分,第2小题14分,第3小题24分)
1. 深度遍历二叉树。
struct Node
{
Node *Parent;
Node *Left, *Right;
};
void Through(Node *Root)
{
}
2. 二分法查找。
int DicFind( int *Array, int Count, int Value )
{
}
3. 写出字符串类String的默认构造函数、析构函数和重载赋值运算符。
已知类String的原型为:
class String
{
public:
String( const char *pStr = NULL ); // 默认构造函数
~String( void ); // 析构函数
String &operate = ( const String &Source ); // 重载赋值运算符
private:
char *m_pData; // 指向字符串的指针
};
‘柒’ 程序员面试笔试宝典的目录
前言
上篇 面试笔试经验技巧篇
第1章 面试官箴言 2
1.1 有道无术,术可求;有术无道,止于术 2
1.2 求精不求全 3
1.3 脚踏实地,培养多种技能 4
1.4 保持空杯心态 6
1.5 职场是能者的舞台 7
1.6 学会“纸上谈兵” 8
1.7 小结 8
第2章 面试心得交流 9
2.1 心态决定一切 9
2.2 假话全不说,真话不全说 10
2.3 走自己的路,让别人去说吧 12
2.4 夯实基础谋出路 14
2.5 书中自有编程法 15
2.6 笔试成绩好,不会被鄙视 17
2.7 不要一厢情愿做公司的备胎 18
2.8 小结 19
第3章 企业面试笔试攻略 20
3.1 互联网企业 20
3.2 网络设备提供商 25
3.3 外企 29
3.4 国企 32
3.5 研究所 35
3.6 创业型企业 37
3.7 如何抉择 41
第4章 面试笔试技巧 42
4.1 不打无准备之仗 42
4.1.1 如何获取求职信息 42
4.1.2 如何制作一份受用人单位青睐的简历 43
4.1.3 如何高效地网申简历 47
4.1.4 面试考查什么内容 48
4.1.5 霸王面合适吗 50
4.1.6 非技术类笔试如何应答 50
4.1.7 什么是职场暗语 51
4.1.8 如何克服面试中的紧张情绪 54
4.1.9 面试礼仪有哪些 55
4.1.10 面试需要准备什么内容 56
4.1.11 女生适合做程序员吗 57
4.1.12 程序员是吃青春饭的吗 58
4.1.13 为什么会被企业拒绝 58
4.1.14 如何准备集体面试 59
4.1.15 如何准备电话面试 61
4.2 从容应对 62
4.2.1 如何进行自我介绍 63
4.2.2 你对我们公司有什么了解 64
4.2.3 如何应对自己不会回答的问题 65
4.2.4 如何应对面试官的“激将法”语言 65
4.2.5 如何处理与面试官持不同观点的问题 66
4.2.6 如果你在这次面试中没有被录用,你会怎么办 66
4.2.7 如果你被我们录取了,接下来你将如何开展工作 66
4.2.8 你怎么理解你应聘的职位 67
4.2.9 你有哪些缺点 67
4.2.10 你有哪些优点 68
4.2.11 你没有工作经验,如何能够胜任这个岗位 69
4.2.12 你的好朋友是如何评价你的 69
4.2.13 你与上司意见不一致时,该怎么办 70
4.2.14 你能说说你的家庭吗 71
4.2.15 你认为自己最适合做什么 72
4.2.16 你如何看待公司的加班现象 72
4.2.17 你的业余爱好是什么 73
4.2.18 你和别人发生过争执吗?你怎样解决 74
4.2.19 你如何面对压力 74
4.2.20 你为什么离开了原来的单位 75
4.2.21 你为什么更倾向于我们公司 75
4.2.22 你觉得我们为什么要录用你 76
4.2.23 你的职业规划是什么 76
4.2.24 你对薪资有什么要求 77
4.2.25 你有什么需要问我的问题吗 77
4.3 签约这点事 78
4.3.1 风萧萧兮易水寒,offer多了怎么办 78
4.3.2 签约、违约需要注意哪些事项 78
4.4 小结 81
第5章 英文面试攻略 82
5.1 注意事项 82
5.2 英文自我介绍 83
5.3 常见的英文面试问题 85
5.4 常见计算机专业词汇 94
5.4.1 计算机专业相关课程 94
5.4.2 操作系统相关术语 95
5.4.3 算法相关术语 96
5.4.4 数据结构相关术语 97
5.4.5 计算机网络相关术语 100
第6章 智力题攻略 102
6.1 推理类 102
6.2 博弈类 107
6.3 计算类 109
6.4 作图类 111
6.5 倒水类 112
6.6 称重类 113
6.7 最优化类 114
6.8 IT思想类 115
6.9 过桥类 118
6.10 概率类 119
下篇 面试笔试技术攻克篇
第7章 程序设计基础 122
7.1 C/C++关键字 122
7.1.1 static(静态)变量有什么作用 122
7.1.2 const有哪些作用 124
7.1.3 switch语句中的case结尾是否必须添加break语句?为什么 127
7.1.4 volatile在程序设计中有什么作用 128
7.1.5 断言ASSERT( )是什么 129
7.1.6 枚举变量的值如何计算 130
7.1.7 char str1[] = abc; char str2[] = abc; str1与str2不相等,为什么 130
7.1.8 为什么有时候main( )函数会带参数?参数argc与argv的含义是什么 131
7.1.9 C++里面是不是所有的动作都是main( )函数引起的 132
7.1.10 *p++与(*p)++等价吗?为什么 132
7.1.11 前置运算与后置运算有什么区别 132
7.1.12 a是变量,执行(a++) += a语句是否合法 133
7.1.13 如何进行float、bool、int、指针变量与“零值”的比较 134
7.1.14 new/delete与malloc/free的区别是什么 135
7.1.15 什么时候需要将引用作为返回值 137
7.1.16 变量名为618Software是否合法 137
7.1.17 C语言中,整型变量x小于0,是否可知x×2也小于0 138
7.1.18 exit(status)是否跟从main( )函数返回的status等价 138
7.1.19 已知String类定义,如何实现其函数体 138
7.1.20 在C++中如何实现模板函数的外部调用 140
7.1.21 在C++中,关键字explicit有什么作用 140
7.1.22 C++中异常的处理方法以及使用了哪些关键字 141
7.1.23 如何定义和实现一个类的成员函数为回调函数 141
7.2 内存分配 142
7.2.1 内存分配的形式有哪些 142
7.2.2 什么是内存泄露 143
7.2.3 栈空间的最大值是多少 144
7.2.4 什么是缓冲区溢出 144
7.3 sizeof 146
7.3.1 sizeof是关键字吗 146
7.3.2 strlen( )=?sizeof( )=? 146
7.3.3 对于结构体而言,为什么sizeof返回的值一般大于期望值 148
7.3.4 指针进行强制类型转换后与地址进行加法运算,结果是什么 149
7.4 指针 150
7.4.1 使用指针有哪些好处 150
7.4.2 引用还是指针 150
7.4.3 指针和数组是否表示同一概念 152
7.4.4 指针是否可进行>、<、>=、<=、==运算 152
7.4.5 指针与数字相加的结果是什么 152
7.4.6 野指针?空指针 153
7.5 预处理 154
7.5.1 C/C++头文件中的ifndef/define/endif的作用有哪些 154
7.5.2 #include <filename.h>和#include “filename.h” 有什么区别 155
7.5.3 #define有哪些缺陷 155
7.5.4 如何使用define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 155
7.5.5 含参数的宏与函数有什么区别 156
7.5.6 宏定义平方运算#define SQR(X) X*X是否正确 156
7.5.7 不能使用大于、小于、if语句,如何定义一个宏来比较两个数a、b的大小 157
7.5.8 如何判断一个变量是有符号数还是无符号数 158
7.5.9 #define TRACE(S) (printf(%s
, #S), S)是什么意思 159
7.5.10 不使用sizeof,如何求int占用的字节数 160
7.5.11 如何使用宏求结构体的内存偏移地址 161
7.5.12 如何用sizeof判断数组中有多少个元素 162
7.5.13 枚举和define有什么不同 162
7.5.14 typdef和define有什么区别 162
7.5.15 C++中宏定义与内联函数有什么区别 164
7.5.16 定义常量谁更好?#define还是const 164
7.6 结构体与类 165
7.6.1 C语言中struct与union的区别是什么 165
7.6.2 C和C++中struct的区别是什么 165
7.6.3 C++中struct与class的区别是什么 166
7.7 位操作 166
7.7.1 一些结构声明中的冒号和数字是什么意思 166
7.7.2 最有效的计算2乘以8的方法是什么 167
7.7.3 如何实现位操作求两个数的平均值 167
7.7.4 unsigned int i=3;printf(%u
,i*-1)输出为多少 168
7.7.5 如何求解整型数的二进制表示中1的个数 169
7.7.6 不能用sizeof( )函数,如何判断操作系统是16位还是32位的 170
7.7.7 嵌入式编程中,什么是大端?什么是小端 171
7.7.8 考虑n位二进制数,有多少个数中不存在两个相邻的1 174
7.7.9 不用除法操作符如何实现两个正整数的除法 175
7.8 函数 179
7.8.1 怎么样写一个接受可变参数的函数 179
7.8.2 函数指针与指针函数有什么区别 179
7.8.3 C++函数传递参数的方式有哪些 183
7.8.4 重载与覆盖有什么区别 185
7.8.5 是否可以通过绝对内存地址进行参数赋值与函数调用 188
7.8.6 默认构造函数是否可以调用单参数构造函数 190
7.8.7 C++中函数调用有哪几种方式 191
7.8.8 什么是可重入函数?C语言中如何写可重入函数 192
7.9 数组 192
7.9.1 int a[2][2]={{1},{2,3}},则a[0][1]的值是多少 192
7.9.2 如何合法表示二维数组 193
7.9.3 a是数组,(int*)(&a+1)表示什么意思 193
7.9.4 不使用流程控制语句,如何打印出1~1000的整数 194
7.9.5 char str[1024]; scanf(%s,str)是否安全 197
7.9.6 行存储与列存储中哪种存储效率高 197
7.10 变量 197
7.10.1 全局变量和静态变量有什么异同 197
7.10.2 局部变量需要“避讳”全局变量吗 199
7.10.3 如何建立和理解非常复杂的声明 199
7.10.4 变量定义与变量声明有什么区别 200
7.10.5 不使用第三方变量,如何交换两个变量的值 201
7.10.6 C与C++变量初始化有什么不同 202
7.11 字符串 202
7.11.1 不使用C/C++字符串库函数,如何自行编写strcpy( )函数 203
7.11.2 如何把数字转换成字符串 205
7.11.3 如何自定义内存复制函数memcpy( ) 206
7.12 编译 207
7.12.1 编译和链接的区别是什么 207
7.12.2 编译型语言与解释型语言的区别是什么 208
7.12.3 如何判断一段程序是由C编译程序还是由C++编译程序编译的 208
7.12.4 在C++程序中调用被C编译器编译后的函数,为什么要加extern “C” 209
7.12.5 两段代码共存于一个文件,编译时有选择地编译其中的一部分,如何实现 210
7.13 面向对象相关 210
7.13.1 面向对象与面向过程有什么区别 210
7.13.2 面向对象的基本特征有哪些 211
7.13.3 什么是深复制?什么是浅复制 212
7.13.4 什么是友元 213
7.13.5 复制构造函数与赋值运算符的区别是什么 214
7.13.6 基类的构造函数/析构函数是否能被派生类继承 216
7.13.7 初始化列表和构造函数初始化的区别是什么 216
7.13.8 类的成员变量的初始化顺序是按照声明顺序吗 217
7.13.9 当一个类为另一个类的成员变量时,如何对其进行初始化 217
7.13.10 C++能设计实现一个不能被继承的类吗 218
7.13.11 构造函数没有返回值,那么如何得知对象是否构造成功 219
7.13.12 C++中的空类默认产生哪些成员函数 219
7.13.13 如何设置类的构造函数的可见性 219
7.13.14 public继承、protected继承、private继承的区别是什么 220
7.13.15 C++提供默认参数的函数吗 221
7.13.16 C++中有哪些情况只能用初始化列表而不能用赋值 222
7.14 虚函数 223
7.14.1 什么是虚函数 223
7.14.2 C++如何实现多态 225
7.14.3 C++中继承、虚函数、纯虚函数分别指的是什么 226
7.14.4 C++中的多态种类有哪几种 226
7.14.5 什么函数不能声明为虚函数 227
7.14.6 是否可以把每个函数都声明为虚函数 229
7.14.7 C++中如何阻止一个类被实例化 229
7.15 编程技巧 229
7.15.1 当while( )的循环条件是赋值语句时会出现什么情况 229
7.15.2 不使用if/:?/switch及其他判断语句如何找出两个int型变量中的最大值和最小值 230
7.15.3 C语言获取文件大小的函数是什么 231
7.15.4 表达式a>b>c是什么意思 231
7.15.5 如何打印自身代码 232
7.15.6 如何实现一个最简单病毒 232
7.15.7 如何只使用一条语句实现x是否为2的若干次幂的判断 233
7.15.8 如何定义一对相互引用的结构 233
7.15.9 什么是逗号表达式 234
7.15.10
是否与
等价 235
7.15.11 什么是短路求值 235
7.15.12 已知随机数函数rand7( ),如何构造rand10( )函数 236
7.15.13 printf(%p
,(void *)x)与printf (%p
,&x)有何区别 237
7.15.14 printf( )函数是否有返回值 237
7.15.15 不能使用任何变量,如何实现计算字符串长度函数Strlen( ) 237
7.15.16 负数除法与正数除法的运算原理是否一样 238
7.15.17 main( )主函数执行完毕后,是否可能会再执行一段代码 238
第8章 数据库 240
8.1 数据库概念 240
8.1.1 关系数据库系统与文件数据库系统有什么区别 240
8.1.2 SQL语言的功能有哪些 240
8.1.3 内连接与外连接有什么区别 242
8.1.4 什么是事务 243
8.1.5 什么是存储过程?它与函数有什么区别与联系 244
8.1.6 什么是主键?什么是外键 244
8.1.7 什么是死锁 245
8.1.8 什么是共享锁?什么是互斥锁 245
8.1.9 一二三四范式有何区别 246
8.1.10 如何取出表中指定区间的记录 247
8.1.11 什么是CHECK约束 247
8.1.12 什么是视图 247
8.2 SQL高级应用 248
8.2.1 什么是触发器 248
8.2.2 什么是索引 249
8.2.3 什么是回滚 250
8.2.4 数据备份有哪些种类 251
8.2.5 什么是游标 251
8.2.6 并发环境下如何保证数据的一致性 252
8.2.7 如果数据库日志满了,会出现什么情况 252
8.2.8 如何判断谁往数据库中插入了一行数据 252
第9章 网络与通信 254
9.1 网络模型 254
9.1.1 OSI七层模型是什么 254
9.1.2 TCP/IP模型是什么 255
9.1.3 B/S与C/S有什么区别 255
9.1.4 MVC模型结构是什么 256
9.2 网络设备 258
9.2.1 交换机与路由器有什么区别 258
9.2.2 路由表的功能有哪些 259
9.3 网络协议 260
9.3.1 TCP和UDP的区别有哪些 260
9.3.2 什么叫三次握手?什么叫四次断开 260
9.3.3 什么是ARP/RARP 262
9.3.4 IP Phone的原理是什么?都用了哪些协议 263
9.3.5 Ping命令是什么 263
9.3.6 基本的HTTP流程有哪些 264
9.4 网络编程 264
9.4.1 如何使用Socket编程 264
9.4.2 阻塞模式和非阻塞模式有什么区别 265
9.5 网络其他问题 266
9.5.1 常用的网络安全防护措施有哪些 266
9.5.2 什么是SQL注入式攻击 267
9.5.3 电路交换技术、报文交换技术和分组交换技术有什么区别 268
9.5.4 相比IPv4,IPv6有什么优点 269
第10章 操作系统 270
10.1 进程管理 270
10.1.1 进程与线程有什么区别 270
10.1.2 线程同步有哪些机制 271
10.1.3 内核线程和用户线程的区别 271
10.2 内存管理 272
10.2.1 内存管理有哪几种方式 272
10.2.2 分段和分页的区别是什么 272
10.2.3 什么是虚拟内存 272
10.2.4 什么是内存碎片?什么是内碎片?什么是外碎片 273
10.2.5 虚拟地址、逻辑地址、线性地址、物理地址有什么区别 273
10.2.6 Cache替换算法有哪些 274
10.3 用户编程接口 275
10.3.1 库函数与系统调用有什么不同 275
10.3.2 静态链接与动态链接有什么区别 276
10.3.3 静态链接库与动态链接库有什么区别 276
10.3.4 用户态和核心态有什么区别 276
10.3.5 用户栈与内核栈有什么区别 277
第11章 软件工程 278
11.1 软件工程过程与方法 278
11.1.1 软件工程过程有哪些 278
11.1.2 常见的软件开发过程模型有哪些 279
11.1.3 什么是敏捷开发 283
11.1.4 UML中一般有哪些图 285
11.2 软件工程思想 285
11.2.1 什么是软件配置管理 285
11.2.2 什么是CMMI 286
11.2.3 如何提高软件质量 287
第12章 发散思维 289
12.1 设计模式 289
12.1.1 什么是单例模式 289
12.1.2 什么是工厂模式 290
12.1.3 什么是适配器模式 290
12.1.4 什么是享元模式 291
12.1.5 什么是观察者模式 291
12.2 新技术 291
12.2.1 什么是云计算 291
12.2.2 什么是物联网 292
12.2.3 你平时读的专业书籍有哪些 293
第13章 数据结构与算法 295
13.1 数组 295
13.1.1 如何用递归实现数组求和 295
13.1.2 如何用一个for循环打印出一个二维数组 296
13.1.3 在顺序表中插入和删除一个结点平均移动多少个结点 297
13.1.4 如何用递归算法判断一个数组是否是递增 297
13.1.5 如何分别使用递归与非递归实现二分查找算法 298
13.1.6 如何在排序数组中,找出给定数字出现的次数 299
13.1.7 如何计算两个有序整型数组的交集 300
13.1.8 如何找出数组中重复次数最多的数 301
13.1.9 如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数 303
13.1.10 如何找出数组中唯一的重复元素 305
13.1.11 如何判断一个数组中的数值是否连续相邻 308
13.1.12 如何找出数组中出现奇数次的元素 309
13.1.13 如何找出数列中符合条件的数对的个数 311
13.1.14 如何寻找出数列中缺失的数 313
13.1.15 如何判定数组是否存在重复元素 314
13.1.16 如何重新排列数组使得数组左边为奇数,右边为偶数 315
13.1.17 如何把一个整型数组中重复的数字去掉 316
13.1.18 如何找出一个数组中第二大的数 318
13.1.19 如何寻找数组中的最小值和最大值 319
13.1.20 如何将数组的后面m个数移动为前面m个数 320
13.1.21 如何计算出序列的前n项数据 321
13.1.22 如何找出数组中只出现一次的数字 322
13.1.23 如何判断一个整数x是否可以表示成n(n≥2)个连续正整数的和 324
13.2 链表 325
13.2.1 数组和链表的区别是什么 325
13.2.2 何时选择顺序表、何时选择链表作为线性表的存储结构为宜 325
13.2.3 如何使用链表头 326
13.2.4 如何实现单链表的插入、删除操作 327
13.2.5 如何找出单链表中的倒数第k个元素 328
13.2.6 如何实现单链表反转 329
13.2.7 如何从尾到头输出单链表 331
13.2.8 如何寻找单链表的中间结点 331
13.2.9 如何进行单链表排序 332
13.2.10 如何实现单链表交换任意两个元素(不包括表头) 334
13.2.11 如何检测一个较大的单链表是否有环 335
13.2.12 如何判断两个单链表(无环)是否交叉 337
13.2.13 如何删除单链表中的重复结点 338
13.2.14 如何合并两个有序链表(非交叉) 339
13.2.15 什么是循环链表 340
13.2.16 如何实现双向链表的插入、删除操作 342
13.2.17 为什么在单循环链表中设置尾指针比设置头指针更好 343
13.2.18 如何删除结点的前驱结点 343
13.2.19 如何实现双向循环链表的删除与插入操作 343
13.2.20 如何在不知道头指针的情况下将结点删除 344
13.3 字符串 345
13.3.1 如何统计一行字符中有多少个单词 345
13.3.2 如何将字符串逆序 346
13.3.3 如何找出一个字符串中第一个只出现一次的字符 350
13.3.4 如何输出字符串的所有组合 351
13.3.5 如何检查字符是否是整数?如果是,返回其整数值 353
13.3.6 如何查找字符串中每个字符出现的个数 353
13.4 STL容器 354
13.4.1 什么是泛型编程 354
13.4.2 栈与队列的区别有哪些 354
13.4.3 vector与list的区别有哪些 355
13.4.4 如何实现循环队列 355
13.4.5 如何使用两个栈模拟队列操作 357
13.5 排序 359
13.5.1 如何进行选择排序 359
13.5.2 如何进行插入排序 360
13.5.3 如何进行冒泡排序 361
13.5.4 如何进行归并排序 364
13.5.5 如何进行快速排序 366
13.5.6 如何进行希尔排序 368
13.5.7 如何进行堆排序 369
13.5.8 各种排序算法有什么优劣 371
13.6 二叉树 372
13.6.1 基础知识 372
13.6.2 如何递归实现二叉树的遍历 373
13.6.3 已知先序遍历和中序遍历,如何求后序遍历 374
13.6.4 如何非递归实现二叉树的后序遍历 376
13.6.5 如何使用非递归算法求二叉树的深度 378
13.6.6 如何判断两棵二叉树是否相等 381
13.6.7 如何判断二叉树是否是平衡二叉树 381
13.6.8 什么是霍夫曼编解码 382
13.7 图 383
13.7.1 什么是拓扑排序 384
13.7.2 什么是DFS?什么是BFS 385
13.7.3 如何求关键路径 386
13.7.4 如何求最短路径 388
第14章 海量数据处理 390
14.1 问题分析 390
14.2 基本方法 390
14.3 经典实例分析 403
14.3.1 top K问题 403
14.3.2 重复问题 405
14.3.3 排序问题 407
致谢 409
‘捌’ ASP.NET程序员常见面试题有什么
2 .列举ASP.NET 页面之间传递值的几种方式。
答. 1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session变量
3).使用Server.Transfer
3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
4.C#中的委托是什么?事件是不是一种委托?
答 :
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
5.override与重载的区别
答 :
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。为了适应需要。
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
答 : QueryString、FormsAuthentication、 this.Server.Transfer
7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}
8.请编程实现一个冒泡排序算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:可以用任意类型。
10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
12.在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:X=1,Y=0
13.什么叫应用程序域?
答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
14.CTS、CLS、CLR分别作何解释?
答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
15.什么是装箱和拆箱?
答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
16.什么是受管制的代码?
答:unsafe:非托管代码。不经过CLR运行。
17.什么是强类型系统?
答:RTTI:类型识别系统。
http://hi..com/wwwzzg/blog/item/9f68fc1e6ad9cc0c314e15cb.html
这里还有 太多 你去那看吧 还有楼上的=-=-! 你发个JAVA的出来骗分啊
‘玖’ 《程序员代码面试指南第二版》pdf下载在线阅读全文,求百度网盘云资源
《程序员代码面试指南第二版》网络网盘pdf最新全集下载:
链接: https://pan..com/s/1v1uD6fUCW7MEjk9TzkmtYA
‘拾’ c/c++程序员面试宝典和程序员面试宝典哪个好
前者好一点,介绍的更加详细,有针对性,程序员面试宝典太广泛了,短期内没有太大的效果