C/C++程序员面试指南
2010-4
电子工业出版社
杨国祥
370
592000
无
从企业面试的角度来梳理C/C++程序员的技术功底 以技术经理的眼光来审视对C/C++编程知识的掌握 程序员应聘开发工作时,招聘公司一般都要考查应聘者的个人品质、编程能力、智力能力等各个方面。C、C++语言是现在非常流行的编程语言,从嵌入式到操作系统,到处都可以看到这两者的身影。所以,包括软件开发、嵌入式应用、电子通信等各个行业的很多公司都将C、C++编程能力作为考查程序员基本素质的主要方式。此外,智力测试也成了企业招聘时的重要考查内容,并且对其考查的力度并不小于编程语言。现在市场上流行的书籍,一般只注重讲解编程语言基础,而本书根据应聘需求,将语言基础、编程技巧、智力测试进行了合理的整理、讲解。 本书详细讲解了C/C++面试中出现的各个知识点的面试题,包括C语言编程基础、C++面向对象、数据结构、排序算法等。所有知识点都结合流行的面试题进行说明,每道例题都取材于各大公司的实际招聘面试题,并在题后紧跟详细的分析步骤和解答。 笔者精心编写了本书,目的是指出很多人对面试的各种误解,以及答题过程中的各种误区,尤其是为应届毕业生进入职场提供了一块很好的敲门金砖。相信本书一定能帮助读者快速复习有关的知识,并获得一份满意的工作。 本书的特点 本书深入浅出地讲解了各种面试题注意事项和解题方法,以及目前流行的各种智力题的解题方法。在有些面试题的最后,笔者还结合自己多年的经验,对不同的面试题中的各项注意问题进行了详细的讲解。 本书基本涵盖了C、C++面试的各个方面的知识,从企业和人才的关系、应聘技巧,到简历的书写,从C、C++的基本理论到C、C++的数据结构,排序算法设计等高级技巧,从智力题的基本方法、数学能力、推理能力、反应能力等各个方面,详细讲述了面试中常见的试题,讲解了各种面试题的解题技巧,并介绍了这些试题的理论基础。 本书的特点主要体现在以下几个方面。 本书的编排采用循序渐进的方式,适合各个层次的应聘者逐步掌握C、C++面试的基本方法,以及C、C++软件设计的精髓。 本书结合笔者多年的面试经历,对每道面试题都进行了详细分析讲解,并根据历来的软件先辈们总结的经验给出了解答各种问题的技巧和注意事项。 本书讲解由浅入深,由基本的理论知识面试题讲起,然后引出C、C++的高级编程技巧题型,对这些技巧题的讲解过程结合了前面的基础理论,让读者真实的感受理论知识在实际中的应用。 本书除讲解C、C++的编程理论基础和编程技巧的知识外,还大量讲解了现在比较流行的智力测试题及其解决方法和技巧。包括国内外各知名企业、公司的经典招聘智力测试题。如微软分金条、联想的烧绳计时、IBM的找病狗等经典智力测试题。 本书采用了大量的图形法来讲解比较复杂的面试题,更加有助于基础比较差的应聘者深刻理解这些问题的解决步骤和方法。 本书的内容安排 本书分为三篇,共15章,从面试的基本注意事项讲起,介绍面试所经历的各个阶段遇到的问题,然后结合目前流行的面试题对C、C++的编程基础、编程技巧进行详细的讲解,最后详细讲解现在各企业招聘软件工程师常见的智力测试题。本书可帮助应聘者成为面试的赢家。 第一篇(第1~2章)介绍面试及英文面试。 讲述了面试基础知识,包括中英文面试时的衣着、礼仪等各方面的注意事项,以及面试中常见的问题、解答技巧及职业生涯规划,为希望换工作和正在找工作的人提供一些基础知识。应届大学毕业生通过这两章的学习,可以大体地了解面试,对面试有一个全新的认识,并能根据自己的实际情况制订职业生涯规划。 第二篇(第3~11章)介绍C、C++面试题。 讲述了现阶段比较流行的C、C++相关的各种面试题,包括基本概念、预处理、指针和引用、字符串、嵌入式,面向对象,数据结构,各种排序算法。软件开发是一门需要具备广泛知识的职业,应聘人员应该掌握与C、C++编程相关的方方面面的知识,嵌入式编程这一章主要针对嵌入式编程人员,其他8章中面试题所涉及的所有问题都是应聘者必备的知识。 第三篇(第12~15章)介绍智力测试。 这4章讲述了面试中智力测试题的解题基本方法及三种能力测试的流行试题的解决方案。智力测试的基本方法包括: (1)排除法 (2)递推法 (3)倒推法 (4)假设法 (5)计算法 (6)分析法 (7)作图法 (8)综合法 第12章讲解了这8种方法的使用技巧,第13~15章根据具体的数学能力、推理能力和反应能力的测试题,对这8种方法进行详细的诠释。 本书由浅入深,由理论到实践,非常适合各个层次的C、C++应聘人员。 适合阅读本书的读者 希望从事C、C++编程的应届大学毕业生。 下岗待业,想从事C、C++程序开发的人员。 在职将要跳槽的C、C++工程师。 希望巩固C、C++基础知识的在校或在职人员。 企业负责软件部的HR人员。 具有一定基础项提升理论知识的软件开发人员。 本书作者 本书主要由杨国祥编写,其他参与编写的人员有昊燃、杨国祥、方振宇、陈冠佐、傅奎、陈勤、梁洋洋、毕梦飞、陈庆、柴相花、陈非凡、陈华、陈嵩、承卓、陈先在。在此表示感谢!
C、C++语言是IT行业的主流编程语言,也是很多程序员必备的软件基本功,是软件开发行业招聘考查的重点。本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序算法及数据结构的实现,包括链表、堆栈、队列和树。此外,本书开始用两章篇幅详细介绍了中英文面试的注意事项、常见问题及程序员的职业规划等软件工程师的常识。最后四章详细讲解了现在流行的智力测试题。
第一篇 求职 第1章 应聘求职 1.1 企业与人才 1.1.1 企业需要什么样的人才 1.1.2 如何成为企业需要的人才 1.2 做好面试的准备 1.2.1 面试衣着 1.2.2 简历 1.3 面试 1.3.1 面试注意事项 1.3.2 面试问题分析 问题一:“请自我介绍一下。” 问题二:“谈谈你的家庭情况。” 问题三:“你有什么业余爱好?” 问题四:“你最崇拜谁?” 问题五:“谈谈你的缺点。” 问题六:“谈一谈你的一次失败经历。” 问题七:“你为什么选择我们公司?” 问题八:“对这项工作,你可预见到 问题八:哪些困难?” 问题九:“如果我们录用你,你将怎样 问题九:开展工作?” 问题十:“与上级意见不一致,你将 问题十:怎么办?” 问题十一:“我们为什么要录用你?” 问题十二:“你能为我们做什么?” 问题十三:“你是应届毕业生,缺乏经验, 问题十三:如何能胜任这项工作?” 问题十四:“你希望与什么样的 问题十四:上级共事?” 问题十五:“你在前一家公司的离职原因 问题十五:是什么?” 1.4 为明天做好计划 第2章 英文面试 2.1 英文电话面试 2.1.1 英文电话面试注意事项 2.1.2 英文电话面试常见 问题 问题一:When will you graduate? 问题二:How do you normally handle criticism? 问题三:Why should we hire you? 问题四:Please tell me something unreflected 问题四:at your resume/about yourself/ your experience/your activities. 2.1.3 英文电话面试常用词汇 2.2 英文面试 2.2.1 英文简历 2.2.2 英文面试流程 2.2.3 英文面试注意事项 2.2.4 英文面试常见 问题 问题一:What is your strongest trait? 问题二:How would your friends or 问题二:colleagues describe you? 问题三:What personality traits do you 问题三:admire? 问题四:What leadership qualities did you 问题四:develop as an administrative 问题四:personnel? 问题五:How do you normally handle 问题五:criticism? 问题六:What do you find frustrating in a 问题六:work situation? 问题七:How do you handle your 问题七:failure? 问题八:What kinds of people do you like to 问题八:work with? 2.2.5 英文面试常用词汇 2.3 计算机专业英语面试常用词汇 第二篇 C/C++面试题 第3章 C/C++程序基础 3.1 基本概念 面试题1:什么是C语言语句 面试题2:变量的声明和定义有什么 面试题2:区别 面试题3:下列字符中,哪些不是C语言 面试题3:关键字 面试题4:下列变量定义中,哪些是 面试题4:合法的 面试题5:如何以最简单的方式让电脑蜂 面试题5:鸣器发出声音 3.2 编程规范 面试题6:谈谈你对编程规范的理解 面试题6:或认识 面试题7:函数、变量等命名都有 面试题7:哪些规则 面试题8:写出bool、int、float、指针变 面试题8:量与“零值”比较的if语句 3.3 数据类型 面试题9:写出代码的输出结果 面试题10:C语言中不合法的整型常数 面试题11:short i = 0; i = i + 1L;这两句 面试题11:有错吗 面试题12:char x[ ] = {“abcd”}和 char y[ ] = 面试题12:{‘a’,‘b’,‘c’,‘d’ } 面试题12:有不同吗 面试题13:char型数据在内存中的 面试题13:存储形式 3.4 运算符 面试题14:请写出下列代码的 面试题14:输出内容 面试题15:运算符的优先级 问题 面试题16:&&和&,||和|有什么区别 面试题17:什么是左值,什么是右值 面试题18:请写出程序的运行结果 面试题19:sizeof和strlen的区别 3.5 结构体 面试题20:结构体是什么样的数据 面试题20:类型 面试题21:结构体可以直接赋值吗 面试题22:组织WAV文件头,并解析 面试题22:WAV格式的各项信息 面试题23:计算学生不及格的人数打印 面试题23:他们的性别、姓名和成绩 面试题24:结构体内存对齐 问题 3.6 C和C++的区别 面试题25:关键字static在C和C++中 面试题25:的区别 面试题26:C语言的结构体和C++的有 面试题26:什么区别 面试题27:C中的malloc和C++中的 面试题27:new有什么区别 面试题28:C++的引用和C语言的指针 面试题28:有什么区别 第4章 预处理、保留字 4.1 预处理 面试题1:简述#ifdef、#else、#endif和#ifndef 面试题1:的作用 面试题2:宏定义和函数 面试题3:用#define声明一个常数 面试题4:写一个“标准”宏MIN 面试题5:typedef和define有什么 面试题5:区别 面试题6:#define CHAR char*和typedef 面试题6:char* CHAR各有什么优劣 面试题7:谈谈你对typedef的认识 4.2 const(常量) 面试题8:关键字const是什么 面试题9:说明以下a声明的含义 面试题10:const、define定义常量的 面试题10:区别 4.3 static(静态)和extern 面试题11:static有什么作用 面试题12:extern有什么作用 面试题13:简述变量存储类型 4.4 volatile 面试题14:volatile有什么作用 面试题15:一个参数可以既是const 面试题15:又是volatile吗 面试题16:一个指针可以是 面试题16:volatile吗 第5章 引用和指针 5.1 引用 面试题1:什么是引用 面试题2:常引用有什么作用 面试题3:流操作符重载为什么返回 面试题3:引用 5.2 指针 面试题4:说明以下声明的含义 面试题5:简述指针常量与常量指针 面试题5:区别 面试题6:写出以下代码的输出结果 面试题7:找出代码的错误 5.3 指针和数组 面试题8:写出代码的输出结果 面试题9:请问这段程序有 问题吗 面试题10:a和&a有什么区别 面试题11:请问代码有什么 问题 面试题12:数组名和指针的区别 5.4 函数指针 面试题13:请解析(*(void (*)( ) )0)( ) 面试题13:的含义 面试题14:指出程序的错误 5.5 “野指针” 面试题15:如何避免“野指针” 面试题16:程序是否正确 面试题17:指出程序的错误 5.6 动态内存 面试题18:简述C、C++程序编译的内存 面试题18:分配情况 面试题19:以下四段代码中哪段没有 面试题19:错误 第6章 字符串 6.1 数字字符串 面试题1:编码实现数字转化为 面试题1:字符串 面试题2:编码实现字符串转化 面试题2:为数字 6.2 字符串函数 面试题3:编写一个标准strcpy函数 面试题4:简述strcpy、sprintf与memcpy 面试题4:的区别 6.3 字符串与数组 面试题5:找出程序的错误之处 面试题6:判断程序会出现什么问题 第7章 嵌入式编程 面试题1:编码实现某一变量某位清 面试题1:或置 面试题2:用C编写一个死循环程序 面试题3:用变量a给出下面的定义 面试题4:设置地址为0x67a9的整型 面试题4:变量的值为0xaa66 面试题5:评论下面这个中断函数 面试题6:评价一个代码片段 第8章 面向对象 8.1 面向对象的基本概念 面试题1:谈谈你对面向对象的认识 面试题2:面向对象的三大特征 面试题3:面向过程和面向对象有什么 面试题3:区别 8.2 类的成员变量和成员函数 面试题4:简述类public、protected、private 面试题4:的作用 面试题5:写出代码的打印结果 面试题6:写出程序的打印结果 面试题7:C++的空类有哪些成员函数 8.3 构造函数和析构函数 面试题8:构造函数能否为虚函数 面试题9:简述子类与父类的析构、构造 面试题9:函数的调用顺序 面试题10:编写类String 的构造函数、 面试题10:析构函数和赋值函数 8.4 拷贝构造函数 面试题11:谈谈对拷贝构造函数和赋 面试题11:值运算符的认识 面试题12:写出当定义#define _INMAIN 0 面试题12:和不定义时代码打印结果 第9章 继承与多态 9.1 继承 面试题1:指出程序的错误 面试题2:用C++设计一个不能被 面试题2:继承的类 9.2 虚函数和纯虚函数 面试题3:下面说法中正确的是哪个 面试题4:写出程序的打印结果 面试题5:访问基类的私有虚函数 9.3 多态 面试题6:简述类成员函数的重写、重载 面试题6:和隐藏的区别 面试题7:简述多态实现的原理 第10章 数据结构 10.1 链表 面试题1:链表和数组有什么区别 面试题2:寻找单链表中间结点 面试题3:怎样把一个单链表反序 10.2 单循环链表 面试题4:根据需求建立一个单向 面试题4:循环链表 面试题5:检测一个较大的单向链表是 面试题5:否带环 10.3 双向链表 面试题6:按要求构造一个双向 面试题6:链表 面试题7:编程实现双链表插入 面试题7:新结点 面试题8:编程实现双链表删除 面试题8:指定结点 10.4 栈和队列 面试题9:简述队列和栈的异同 面试题10:建立一个链式栈 面试题11:建立一个链式队列 面试题12:能否用两个栈实现一个队列 面试题12:的功能 10.5 二叉树 面试题13:建立一个二叉树 面试题14:计算一棵二叉树的深度 面试题15:在二元树中找出和为某一值 面试题15:的所有路径 第11章 排序 11.1 插入排序 面试题1:编码实现直接插入排序 面试题2:编码实现希尔(Shell) 面试题2:排序 11.2 交换排序 面试题3:编码实现冒泡排序 面试题4:编码实现快速排序 11.3 选择排序 面试题5:编码实现直接选择排序 面试题6:编程实现堆排序 11.4 基数排序 面试题7:编程实现基数排序 第三篇 智力测试 第12章 基本方法 面试题1:斯密斯夫妇握手问题 面试题2:5个强盗分100颗宝石 面试题3:分牛 面试题4:谁在说谎 面试题5:是亏了还是赚了 面试题6:小虫分裂问题 面试题7:飞机绕地球环行问题 第13章 数学能力 面试题1:用一笔画出经过9个点的4条 面试题1:直线 面试题2:在9个点上画10条线 面试题3:100盏灯 面试题4:找出不同的球 面试题5:时针、分针和秒针重合问题 面试题6:可以喝多少瓶汽水 面试题7:怎样拿到第100号球 面试题8:烧绳计时 面试题9:分金条 面试题10:至少有多少人及格 面试题11:如何取3升水 面试题12:将16升水平均分给 面试题12:四个人 面试题13:如何将140克的盐分成50 面试题13:90克各一份 面试题14:蜗牛几天能爬到井口 面试题15:100美元的差额到哪里 面试题15:去了 面试题16:点击鼠标比赛 面试题17:小猴最多能运回多少根 面试题17:香蕉 面试题18:算出小张买了几瓶啤酒、 面试题18:几瓶饮料 面试题19:牧场有多少匹马 面试题20:找出不同的苹果 面试题21:如何穿越沙漠 第14章 推理能力 面试题1:怎么少了100元 面试题2:村里有多少条病狗 面试题3:他们都在做什么 面试题4:躯体与灵魂 面试题5:小明一家能否安全过桥 面试题6:过河 问题 面试题7:这是张什么牌 面试题8:说谎岛上的两个部落 面试题9:谁是特尔斐城的预言家 面试题10:哪个政党获胜 面试题11:每个护士星期几休息 面试题12:每个人系的圆牌都是什么 面试题12:颜色的 面试题13:帽子 问题 面试题14:谁是凶手 面试题15:他们的头发是什么颜色的 面试题16:谁是漂亮的青年 面试题17:哪个袋子里有金子 面试题18:他们星期几在说谎 面试题19:剩下的是什么牌 面试题20:老李的儿子们是做什么的 面试题21:史密斯家的门牌号 面试题22:尤克利地区的电话 面试题23:乡村庙会的15点游戏 面试题24:各家的孩子得了第几名 面试题25:经理应该带谁出差 面试题26:法官的判决 面试题27:张老师的生日是哪一天 面试题28:谁是M小姐的情人 面试题29:他们分别是哪国人 面试题30:他们分别是做什么的 面试题31:他们都会说什么语言 面试题32:怎么把马匹从甲村拉到 面试题32:乙村 面试题33:谁打碎了花瓶 面试题34:分机票 面试题35:石头有多重 面试题36:该释放谁 面试题37:谁打碎的玻璃 面试题38:谁是最优秀的医生 面试题39:今天星期几 面试题40:五个人进行汽车竞赛 面试题41:下一行是什么 面试题42:三筐水果各是什么 面试题43:最后剩下的是谁 第15章 反应能力 面试题1:下水道的井盖 面试题2:30秒答题 面试题3:一分钟答题 面试题4:镜子中的你 面试题5:埃及古币 面试题6:投硬币 面试题7:他在撒谎吗 面试题8:制造零件 面试题9:不喜欢正方形窗户的人 面试题10:孩子租房 面试题11:重男轻女的国度 面试题12:分遗产 面试题13:栽果树 面试题14:聪明的农民 面试题15:聪明的死刑犯 面试题16:幼儿园中奇怪的人 面试题17:奇怪的城镇 面试题18:聪明的商人 面试题19:渡船过河 面试题20:愚蠢的长工 面试题21:红球和白球 面试题22:小明坐在了哪里 面试题23:乌龟赛跑 面试题24:老师的爱恋 面试题25:爬楼梯 面试题26:马丁先生的约会 面试题27:巧入房间 面试题28:管子中的球 面试题29:女儿的错
第一篇 求职 第1章 应聘求职 无论是从象牙塔中将要展翅欲飞的毕业生,还是不喜欢现在的工作、想换个环境和心情的在职者,要得到一份称心如意的工作,绝不是一件简单的事情。尽管如此,如果求职者能做好自己的职业规划,详细了解企业需要什么样的人才,自己如何做才能成为企业需要的人才,并做好充分的面试准备,必然能找到满意的工作。 本章将详细地介绍企业和人才的关系、面试技巧和注意事项,以及如何做好职业规划等方面的内容。希望通过本章的学习,能够帮助应聘者正确地走出求职的第一步。 1.1 企业与人才 企业的发展离不开人才,人才的发展也很难离开企业。企业要不断吸收优秀人才来提高自己的实力和市场竞争力。人才也需要找到合适的企业,让自己的才能得以发挥。所以两者的关系是密不可分的。但是当今社会人才济济,几百甚至几千人在竞争一个职位,因此如何把握企业招聘脉搏便成了人才应聘的关键。 1.1.1 企业需要什么样的人才 由于高校扩招,越来越多的大学毕业生涌向人才市场,大学生“就业难”已成为社会关注的热点问题。每年有数百万大学毕业生跨出校门,走向社会。大学毕业生深受就业找不到理想工作的困扰。但是与此同时许多用人单位也在抱怨招不到合适的人才,许多职位处于缺人待补状态。为什么会形成如此强烈的反差?企业到底需要什么样的人才?这是应聘者在求职过程中首先需要了解清楚的。 应聘者应该明确企业对人才有什么样的需求,做到知彼善己。不同的企业对人才的需求不同。 下列是国内外几家知名企业的用人标准。 (1)IBM认为,只要学习能力强、情商不错,就可以考虑。在面试时,IBM很看重求职者的正直和诚实。此外,应聘者是否自信也很重要。 (2)微软认为,公司的首要任务就是寻找致力于通过软件的开发来改善人们生活的人才,不管这样的人生活在何处。这种人其实就是有理想、有抱负、有追求的人才。微软选拔人才是放眼于全世界的。 (3)用友软件公司选才本着“专业、敬业、创业、务实、诚信、创新”六项基本标准。“专业”要求每个人在自己的本职工作中,都必须具有很强的专业能力和专业水平,必须是专家。“敬业”是现代职业人的重要品质,再宏伟的工程都需要通过勤勉努力的工作才能成功。“创业”指要有勇气去开创新业务,去建立全新的目标。只有“务实、诚信、创新”,用友人才有志气去叫板国际对手。 (4)明基电通每年都要从全国各地的高校中招聘一百多名应届毕业生。他们挑选新人的主要依据是学生的价值观和素质。他们并不很注重学生所学的专业和学习成绩,而是看重学生的学校社团活动经验和社会实践经验,从中观察其是否符合明基的文化,是不是符合“平实务本、追求卓越、关怀社会”的要求。 ……
从面试的角度来梳理C/C++程序员的技术功底,以技术经理的眼光来审视变成知识的掌握 ·分3大部分,涵盖常见的C/C++面试题 ·216个经典面试题分析,详解C/C++程序员的方方面面 ·先分析问题,后参考答案,读者知其然更知其所以然 ·代码注释详尽,帮助读者快速理解代码 ·大量技巧和注意点,帮助读者快速提高技术水平
无
涵盖知识还是比较全面,深入浅出,便于理解,是C++/C面试前的必备良书
老公把这本书看了两遍之后去面试,果然就面试成功了。
不错 很权威的面试宝典
非常好 很好 很经典
挺好的。。。错误有点多
很全面,例子也很好。我在图书馆借过这本说,但是看过之后,感觉自己应该有一本,就买了!
这本出,简单看了点,感觉还不错。发货也蛮快的。
面试不错的书,我喜欢。
总结还比较全。适合面试前复习。
不看不知道,很多细节的东西都没掌握,这是很值得看得书
基本列举了经常考的题目,但是有些简单了
书的正反封面全是灰和脏迹、擦不掉
还不错,讲的挺好的
内容系统,针对性强,条理清晰
给别人买的,太专业不懂
给表弟买的,为了找工作。
目前使用很正常。书很实用
相当满意啊啊啊