logo资料库

2015计算机找工作工作笔试面试必备(C,C++,数据库,操作系统,数据结构).pdf

第1页 / 共125页
第2页 / 共125页
第3页 / 共125页
第4页 / 共125页
第5页 / 共125页
第6页 / 共125页
第7页 / 共125页
第8页 / 共125页
资料共125页,剩余部分请下载后查看
第1页共125页目录找工作笔试面试那些事儿(1)---C,C++基础和编程风格(1)........................................................................................2找工作笔试面试那些事儿(1)---C,C++基础和编程风格(2)......................................................................................10找工作笔试面试那些事儿(2)---函数那些事..............................................................................................................14找工作笔试面试那些事儿(3)---内存管理那些事......................................................................................................20找工作笔试面试那些事儿(4)---C++函数高级特征..................................................................................................33找工作笔试面试那些事儿(5)---构造函数、析构函数和赋值函数..........................................................................45找工作笔试面试那些事儿(6)---简单测试题..............................................................................................................54找工作笔试面试那些事儿(7)---测试题答案..............................................................................................................57找工作笔试面试那些事儿(8)---常问的CC++基础题...............................................................................................63找工作笔试面试那些事儿(9)---数据库知识总结(1).................................................................................................70找工作笔试面试那些事儿(10)---SQL语句总结.......................................................................................................74找工作笔试面试那些事儿(11)---数据库知识总结(2)范式.......................................................................................78找工作笔试面试那些事儿(12)---数据库测试题........................................................................................................81找工作笔试面试那些事儿(13)---操作系统常考知识点总结....................................................................................86找工作笔试面试那些事儿(14)---轻松一下,谈谈面试注意的点............................................................................92找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验............................................................94找工作笔试面试补充基础知识(1)---内存对齐..........................................................................................................98迅雷近几年笔试题及其分析....................................................................................................................................101
第2页共125页找工作笔试面试那些事儿(1)---C,C++基础和编程风格(1)前言眼看着又要到一年一度的找工作季了,遥想去年这会儿,学校同学们也都是一副要上战场似得枕戈待旦整装待发的情景。想来自己当时笔试面试也确实参加了不少,无奈技术和智商平平,最后结果一般,但也确实经历了不少,外加一直有总结和整理资料的小习惯,手头上确实攒下了一些笔试面试的资源。又最近频繁有师弟师妹问我要相关的资料,想来还不如自己整理整理发到博客里,大家都能看看,希望能有一些帮助吧。第一部分C/C++编程基础这部分内容大部分来自林锐博士01年写的高质量C++/C编程指南,距今已经十多年了,但是我依旧清晰地记得师兄当初介绍这本几十页的书给我,看后的惊艳,确切的说来,这本书让我的编程风格编程习惯以及对C++/C的认识有了大的提升(这个说来尴尬了,本人属于木有任何天赋的程序员,和大牛们差几百个档,之前写的程序只能用惨不忍睹来形容,即使现在可能也只属于勉强能看)。直至后来参加大大小小的笔试面试,发现里面考察略深一点点的C++/C基础知识在书里面都能看到;而后来参加某互联网公司面试,当场写算法程序时,被面试官夸过编程习惯和编程风格非常好(介个,其实也有可能是刚好对上面试官胃口罢了...),我再一次意识到,这份资料确实是不错的,所以这里打算整理整理,发到博客上共享一下,已经看过和熟知的童鞋或者大牛们自行绕开吧。今天写的这部分,大体上都是关于编程风格和编程习惯的,C/C++基础和注意点下次再说吧。正题一、文件结构1.1版权版本声明我看过一些写的比较详细正统的头文件和定义文件的开头都有这部分。具体包括以下内容:1)版权信息。2)文件名称,标识符,摘要。3)当前版本号,作者/修改者,完成日期。4)版本历史信息。1.2关于头文件
第3页共125页1)为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。2)用#include格式来引用标准库的头文件,用#include“filename.h”格式来引用非标准库的头文件。3)头文件中只存放“声明”而不存放“定义”。示例:#ifndefGRAPHICS_H//防止graphics.h被重复引用#defineGRAPHICS_H#include//引用标准库的头文件…#include“myheader.h”//引用非标准库的头文件…voidFunction1(…);//全局函数声明…classBox//类结构声明{…};#endif1.3头文件作用1)通过头文件来调用库功能。2)头文件能加强类型安全检查。二、程序的板式2.1空行建议:1)在每个类声明之后、每个函数定义结束之后都要加空行。2)在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。实力如下图左右所示:
第4页共125页2.2代码行建议:1)一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。2)if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。例下图中左侧为风格良好的代码,右侧为风格糟糕的代码。
第5页共125页3)尽可能在定义变量的同时初始化该变量,以减少安全隐患。2.3代码行内的空格1)关键字(const、virtual、inline、case、if、for、while)之后要留空格。而函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。2)‘(’向后紧跟,不留空格;‘)’、‘,’、‘;’向前紧跟,不留空格。‘,’、‘;’后接空格。3)二元操作符(“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”)前后应当加空格。一元操作符(“!”、“~”、“++”、“--”、“&”)前后不加空格。4)对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for(i=0;i<10;i++)和if((a<=b)&&(c<=d))示例如下:
第6页共125页2.4对齐1)程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。2){}之内的代码块在‘{’右边数格处左对齐。
第7页共125页2.5修饰符的位置这里的修饰符主要指*和&,事实上关于它们应该靠近数据类型还是变量名,一直都有争议。将修饰符*靠近数据类型,例如:int*x;比较直观,但同时在某些情况下也容易引起误解(例int*x,y中的y容易被误解为指针变量)。所以这里:建议大家在写程序时将修饰符*和&紧靠变量名。所以:int*x,y;//此处y不会被误解为指针2.6注释C语言的注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。注释的主要作用是:1)版本、版权声明;2)函数接口说明;3)重要的代码行或段落提示一个示例如下图所示:
第8页共125页三、命名规则关于变量和函数等的命名,程序员会有自己的认识和习惯,没有一种命名规则可以让所有的程序员赞同,重要的是要保持一致的风格。这个地方,比较著名的一种写法是Microsoft公司的“匈牙利”法。主要命名规则总结如下:1)类名和函数名用大写字母开头的单词组合而成。例如:classNode;//类名classLeafNode;//类名voidDraw(void);//函数名voidSetValue(intvalue);//函数名2)变量和参数用小写字母开头的单词组合而成。例如:BOOLflag;intdrawMode;3)常量全用大写的字母,用下划线分割单词。例如:constintMAX=100;constintMAX_LENGTH=100;4)静态变量加前缀s_(表示static)。例如:voidInit(…){staticints_initValue;//静态变量…}5)如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。例如:intg_howManyPeople;//全局变量intg_howMuchMoney;//全局变量6)类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。例如:
分享到:
收藏