- 博客(0)
- 资源 (35)
- 收藏
- 关注
C_C++程序员面试宝典(梁镇宇) PDF 可搜寻 扫描版
目 录
第1篇求职准备和技巧
第1章了解面试——通过面试抓住机会..........................................2
1.1选择自己的应聘职位范围............................................................2
1.1.1针对初级C/Of•工程师职位...................................................2
1.1.2针对中、高级C/OH■开发丁程师职位...........................................3
1.1.3 C/OH■的职位划分............................................................4
1.2制作专业化的应聘简历..............................................................5
1.2.1简历的组成.................................................................5
1.2.2 —个简历的样本.............................................................6
1.4箪握应聘的流程一一步步为营........................................................9
1.5投递简历..........................................................................10
1.5.1招聘网站投递...............................................................10
1.5.2 E-mail 投递................................................................11
1.5.3如何面对招聘会.............................................................12
1.6面试+笔试+上机考试...............................................................13
1.6.1 酿.......................................................................13
1.6.2 笔试.......................................................................14
1.6.3 上机考试...................................................................15
1.7面试后的终结邮件..................................................................16
第2章英文面试教学视频:60分钟).....................................18
2.1英文面试过程和技巧................................................................18
2.2关于工作..........................................................................19
面试题 1 What salary would you expect for this job.....................................19
面试题 2 What new skills or ideas do you bring to the job that other candidates
aren't likely to offer......................................................20
面试题 3 What would you like to accomplish that you weren't able to accomplish
in your last position.......................................................20
面试题 4 How have your career motivations changed over the past few years................20
面试题 5 Why should I hire you.....................................................21
面试题 6 What are your key skills...................................................21
面试题 7 What are your strengths...................................................22
而试题 8 How is your experience relevant to this job....................................22
面试题 9 What skills do you think are most critical to this job.............................23
面试题 10 What skills would you like to develop in this job...............................23
面试题 11 If you had to stay in your current job, what would you spend more time on? Why....24
面试题 12 How could you enrich your current job.......................................24
2.3关于个人.........................................................................24
面试题 13 Why do you want to work here............................................25
曲试题 14 Do you believe you’re overqualified for this position..........................25
面试题 15 Tell me about a time you didn’t perform to your capabilities....................26
面试题 16 How do you manage stress in your daily work................................26
面试题 17 Considering your own resume,what are your weaknesses in relation to this job.....26
面试题 18 Describe your working relationship with your colleagues.......................27
面试题 19 Describe your personality beneath the professional image.......................27
向试题 20 How will you complement this department...................................27
2.4关于发展..........................................................................28
面试题 21 Tell me what you learned from a recent book.................................28
面M题 22 What’s your most productive or ideal work setting.............................28
而试题 23 Where do you want to be in five years.......................................29
面试题 24 What are your aspirations beyond this job....................................29
ift 试题 25 How long do you think you'd continue to grow in this job......................29
由试题 26 What do you reasonably expect to earn within five years........................30
第3章电话面试(^1教学视频:13分钟)...........................................31
3.1电话面试简介......................................................................31
3.2如何准备电话面试..................................................................32
3.3电话面试常见问题.................................................................33
面试题27为什么想进本公司......................................................33
面试题28你最#欢这份工作的哪一点或者哪些方面.................................33
面试题29请描述一下你自己的优缺点..............................................34
面试题30你对本公司的了解有多少................................................34
面试题3丨对这份工作的期望与目标何在............................................34
面试题32你为什么要离职........................................................34
面试题33选择这份工作的原因是什么..............................................35
面试题34你认为相关产业的发展会如何............................................35
面试题35你希望的待遇为多少....................................................35
面试题36在工作中学习到了些什么................................................35
_______________________________________________________________UM____________________________________ ___________________________
• VI •
目录
第2篇C/C++基础知识
第4章C/C++语言基础(尤*教学视频:50分钟)...................................38
4.1基本数据类型.....................................................................38
面试题37 C++中有哪几种基本数据类型............................................38
面试题38整型有哪几种形式?各种形式有什么区别.................................39
面试题39 C++中有哪些常量......................................................40
面试题40常量与变量有哪些区别.................................................42
4.2操作符...........................................................................42
面试题41操作符有哪些分类......................................................43
面试题42操作符优先级对运算结果有什么影响.....................................43
面试题43逻辑操作与其他操作的关系.............................................45
面试题44自增自减前操作与后操作的区别.........................................46
面试题45指针&增自减有什么不同...............................................47
4.3变量.............................................................................47
面试题46什么是左值和右值......................................................48
面试题47什么是变童............................................................48
面试题48变量有哪几种初始化方式................................................49
面试题49变量默认初始化有什么规则..............................................50
面试题50仆么是变M的声明和定义................................................50
面试题51 C++中有哪几种作用域.............................................51
面试题52局部变量与嵌套的作用域................................................52
面试题53变景有哪几种存储类型..................................................53
4.4 弓 |fli..............................................................................53
面试题54什么是引用............................................................54
面试题55 如何使用const引用与非const引用........................................54
4.5 C与C*H•的联系...................................................................55
面试题56 C与C++有什么区别..............................................55
4.6编程规范.........................................................................55
面试题57什么是匈牙利命名法....................................................55
面试题58变黄有什么命名规则....................................................56
第5章流程控制教学视频:24分钟)..........................................58
5.1条件语句.........................................................................58
面试题59条件语句有哪几种形式..................................................58
面试题60条件语句如何嵌套?如何匹配else子句...................................59
5.2循环语句.........................................................................61
面试题61 for循环语句的计算顺序是什么..........................................61
面试题62 while循环与do-while循环有什么区别......................................62
• VII •
面试题63典型循环语句..........................................................64
面试题64 break语句与continue语句有什么区别.....................................64
5.3 switch 语句.......................................................................66
面试题65 switch语句的执行顺序是什么.............................................66
面试题66如何在switch语句内部定义变量.........................................67
5.4 細.............................................................................68
面试题67什么是递归............................................................68
面试题68汉诺塔问题............................................................69
第6章输入输出教学视频:15分钟).....................................73
6.1 输入流与输出流...................................................................73
面试题69什么是标准输入输出流..................................................73
面试题70如何®载输入输出......................................................74
6.2文件输入/输出.....................................................................75
面试题71如何读取一个文件......................................................75
面试题72文件输入输出有哪几种方式.............................................76
6.3异常与错误.......................................................................77
面试题73什么是异常............................................................77
面试题74如何抛出和捕捉异常....................................................78
第7章预处理以及内存管理教学视频:28分钟)...............................80
7.1 宏定义...........................................................................80
面试题75宏定义与操作符的区别..................................................80
而试题76宏定义如何展开........................................................81
7.2 include 的使用.....................................................................82
面试题77 include有哪几种使用方式?有什么区别..................................82
面试题78包含头文件时如何査找头文件...........................................83
7.3 内存分配.........................................................................83
面试题79 C++中各数据类型的长度................................................84
面试题80如何分配和释放存储空间................................................84
7.4虚函数与纯虚函数.................................................................85
由试题81 虚函数与纯虚函数的区别...............................................85
面试题82如何使用纯虚函数......................................................86
第8章指针(教学视频•• 60分钟)...........................................88
8.1指针概述.........................................................................88
面试题83什么是指针............................................................88
而试题84如何初始化指针并对其陚值.............................................89
面试题85是否可以确定指针指向一个对象.........................................90
面试题86如何使用指针操作数组.................................................90
面试题87 const对象的指针和const指针的区别.....................................91
• VIII
面试题88数组指针与指针数组的区别.............................................92
8.2函数指针.........................................................................93
面试题89什么是函数指针?如何使用函数指针.....................................93
面试题90指针函数和函数指针的区别.............................................95
8.3 this 指针..........................................................................96
面试题91什么是this指针........................................................96
面试题92何时使用this指针......................................................%
8.4引用与值传递..................................................:..................97
面试题93什么是值传递..........................................................97
面试题94引用与值传递的区别...................••.................................98
面试题95指针和引用有什么区别..................................................99
第9章面向对象与类■教学视频:48分钟)................................1〇〇
9.1 面向对象的基本知识..............................................................100
面试题96面向对象与面向过程的区别.............................................100
面试题97面向对象的特征是什么.................................................101
9.2 ^...............................................................................101
面试题98类和结构有什么区别...................................................102
面试题99抽象类及它的用途.....................................................103
9.3 类成员...........................................................................105
面试题100成员变萤有哪些访问方式..............................................105
面试题101成员变量有哪些访问控制方式..........................................105
面试题102 如何访问静态成员....................................................106
9.4 0S.............................................................................108
面试题103什么是多态?多态的作用..............................................108
面试题104在OH•中如何实现多态................................................109
第10章继承教学视频•• 44分钟).............................................113
10.1 縣............................................................................113
面试题105派生类与基类的转换..................................................113
面试题106什么是虚成员?有什么作用............................................115
面试题107构造函数与析构函数的调用时机........................................116
10.2访问控制........................................................................118
面试题108有哪几种继承方式....................................................118
面试题109继承时访问级别如何变化..............................................120
10.3继承时的类作用域................................................................121
面试题110什么时候发生函数覆盖................................................121
面试题111如何访问基类的成员..................................................122
10.4复制构造函数....................................................................123
面试题112什么是深复制与浅复制................................................123
而试题113什么是复制构造函数..................................................124
_______________________________________________________ ____________________________________________________________
• IX •
10.5类型转换构造函数...............................................................125
面试题114类型转换有哪些分类.................................................125
面试题115什么是类型转换构造函数..............................................126
第11章函数(f教学视频:49分钟).............................................128
11.1函数的定义......................................................................128
面试题116什么是函数..........................................................128
面试题117形参与实参有什么区别................................................129
面试题118 C++支持参数个数不确定的函数吗.....................................130
面试题119什么是内联函数......................................................131
11.2函数参数的传递..................................................................132
面试题120引用形参和非引用形参有什么区别......................................132
面试题121使用引用形参有什么问题..............................................133
面试题122指针形参与引用形参有什么区别........................................134
11.3类成员函数......................................................................135
面试题123什么是类成员函数?有哪些特别的类成员函数...........................135
面试题124什么是静态函数?如何使用静态函数....................................136
面试题125静态函数能访问类的私有成员..........................................137
面试题126 —-个类可以访问另一个类的私有成员吗...................................137
11.4函数重载.......................................................................138
面试题127函数重载与作用域...................................................138
面试题128如何进行函数重载的匹配.............................................139
面试题129函数重载时如何实现实参的类型转换...................................140
第12章模板与STL ( ^教学视频:46分钟).....................................141
12.1 賺...........................................................................141
面试题130什么是函数模板.....................................................141
面试题131什么是类模板.......................................................143
12.2 獅...........................................................................145
面试题132什么是容器.........................................................145
面试题133有哪几种顺序容器...................................................147
面试题134什么是迭代器的范围.................................................】49
面试题135什么是关联容器.....................................................150
12.3泛型编程.......................................................................152
面试题136什么是泛型编程.....................................................152
面试题137 C++如何实现泛型编程...............................................152
第3篇C/C++专业应用
第13章数据结构教学视频:100分钟)......................................156
13.1 表.............................................................................156
_______ _____________________________________________________________ 0 ^ ____________________________________________________________________
• X •
面试题138有哪几种表的实现方式................................................156
面试题139链表有哪儿种分类....................................................157
13.2 队列............................................................................159
面试题140什么是队列..........................................................159
13.3 栈..............................................................................160
面试题141什么是栈............................................................160
而试题142如何访问栈中的元素..................................................162
13.4 W..............................................................................162
面试题143树的分类有哪些......................................................162
面试题144如何对树进行遍历....................................................164
面试题145如何对二叉树进行遍历................................................164
面试题146如何计算二叉树的高度................................................166
面试题147如何计算二叉树的结点数..............................................167
13.5 图..............................................................................167
面试题148图的实现方式有哪几种................................................167
面试题149如何进行图的搜索?搜索算法有哪几种方式..............................168
13.6 排序............................................................................169
面试题150什么是冒泡排序......................................................169
面试题151鸡尾酒排序(改进的冒泡排序)........................................171
面试题152仆么是选择排序......................................................172
面试题153什么是直接插入排序..................................................173
面试题154什么是归并排序......................................................174
面试题155什么是快速排序............................:........................176
面试题156什么是希尔(Shell)排序..............................................177
面试题157仆么是堆排序........................................................179
13.7排序算法的总结..................................................................180
第14章软件工程(^教学视频:39分钟).........................................182
14.1 软件工程基础....................................................................182
面试题158什么是软件工程......................................................182
面试题159什么是软件危机......................................................183
14.2软件的4大开发模型..............................................................184
面试题160 4大幵发模型的区别..................................................184
面试题161如何选择开发模型....................................................186
14.3 软件测试........................................................................187
面试题162测试有哪些分类......................................................187
面试题163 如何设计测试用例...................................................188
14.4 UML语言概述...................................................................189
面试题164 什么是UML.........................................................189
面试题165 UML有哪些图......................................................190
_______________________________________________________ ____________________________________________________________
• XI •
___________________________________________________________________________________________________________________
面试题166 UML中的动态阁................................................191
面试题167静态图有哪几种......................................................192
14.5设计模式........................................................................192
面试题168什么是设计模式......................................................192
面试题169 GOF的23个设计模式是如何进行分类的..................................193
第15章数据库、操作系统、计算机网络教学视频:65分钟).................195
15.1数据库理论......................................................................195
面试题170什么是关系数据库设计范式............................................195
面试题171什么是数据库事务....................................................196
面试题172有哪儿种数据模型....................................................197
面试题173什么是数据库管理系统................................................198
15.2 SQL 语言.......................................................................199
面试题174什么是SQL语言.....................................................199
面试题175使用SQL语句对表进行分页査询.......................................199
15.3操作系统概述...................................................................200
面试题176什么是操作系统......................................................200
面试题177比较常用的操作系统有哪些............................................201
15.4进程与线程.....................................................................202
面试题178操作系统的最小调度单位是什么.......................................202
面试题179资源的最小单位是什么....................... 202
面试题180进程与线程的区别....................................................203
面试题181如何实现多线程的同步................................................203
15.5 内存与作业调度.................................................................204
面试题182内存管理方式有哪些..................................................204
面试题183作业调度算法有哪些..................................................205
面试题184作业一般有哪些状态..................................................206
15.6计算机网络结构.................................................................206
面试题185 OSI七层模型是什么..................................................207
面试题186 OSI七层网络结构模型与TCP/IP四层结构模型的区别....................207
面试题187什么是TCP/IP协议...................................................208
第16章上机操作题(f教学视频:25分钟).................................210
16.1 经典算法问题...................................................................210
面试题188斐波那契数列........................................................210
面试题189杨辉三角............................................................212
面试题190整数十进制转二进制..................................................213
面试题191素数问题............................................................214
面试题192字符串转换为整数....................................................215
16.2数据库操作题...................................................................216
面试题193 选课系统............................................................216
• XII •
第17章思维拓展教学视频:16分钟)........................................223
17.1经典试题.......................................................................223
面试题194八皇后问题..........................................................223
面试题195经典矩形............................................................225
面试题196汉诺塔..............................................................229
面试题197新娘和新郞问题......................................................230
面试题198大数乘法............................................................230
17.2面试经验分享...................................................................232
17.2.1面试经过................................................................232
17.2.2由面试想到的............................................................234
17.3群体面试.......................................................................235
第4篇C/C++面试题实战解析
第18章文字解答实战题教学视频:113分钟)................................238
面试题199介绍STL,详细说明STL如何实现vector (华为面试题)................238
面试题200分析Visual C科程序出错的原因.......................................239
面试题201继承和多态有何K别..................................................240
面试题202指针和引用有何区别?传引用比传指针安全,为什么......................240
面试题203参数传递的方式与多态參数传递的实现(摩托罗拉面试题)...............241
面试题204怎样应用设计模式的理念..............................................241
面试题205介绍一•下对设计模式的理解...........................................241
IH试题206 C++和C定义结构的区别是什么(摩托罗拉笔试题).....................242
面试题207关丁•构造函数和析构函数.............................................242
囟试题208对拷贝构造函数的深拷贝、浅拷贝和临时对象的理解.....................242
面试题209基类中有一个虚函数,子类还需要申明为virtual吗.......................242
面试题210 C++的类有什么优点...................................242
面试题211如何实现多态?父类和子类的继承关系如何..............................243
面试题212为什么要引入抽象基类和纯虚函数(摩托罗拉笔试题)...................243
面试题213介炤一下模板和容器,如何实现.......................................243
面试题214什么是MVC?简单举例说明其应用....................................243
面试题215列举儿种进程的同步机制(华为面试题)...............................243
面试题2〗6进程之间通信的途径..................................................244
面试题217进程死锁的原因......................................................244
面试题218死锁的4个必要条件..................................................244
面试题219死锁的处理..........................................................244
面试题220操作系统中进程调度策略有哪几种.....................................245
面试题22丨类的静态成员和非静态成员有何区别...................................245
面试题222纯虚函数如何定义?使用时应注意什么.................................245
____________________________________________________________________________________________________________________
• XIII •
面试题223数组和链表的区别....................................................245
面试题224关于ISO七层模型的典型问题.........................................245
面试题225内存的分配方式及其区别.............................................246
面试题226 struct和class的区别.................................................246
面试题227 —个类所占内存空间的问题(Autodesk面试题改编)....................246
面试题228在8086汇编中,逻辑地址和物理地址如何转换(Intel面试题).................247
面试题229比较C++中的4种类型转换方式.......................................247
面试题230面向对象的3个基本特征是什么.......................................247
面试题231重载(overload)和重写(overried)的K别.............................248
面试题232多态的作用..........................................................248
面试题233 ADO与ADO.NET有何异同...........................................248
面试题234 New delete与malloc free有何联系与区别...............................249
面试题 235 #defineDOUBLE(x)x+x, i = 5*DOUBLE(5),求 i........................249
面试题236哪几种情况只能用intialization list而不能用assignment....................249
面试题237 OH■是不是类型安全的................................................249
面试题238 mainO函数执行前还会执行什么代码....................................249
面试题239 static有什么用途(至少说明两种)....................................250
面试题240描述实时系统的基本特性.............................................250
面试题241全局变量和局部变量在内存中是否有区别?说明原因......................250
面试题242什么是平衡二叉树...................................................250
面试题243定义int**a[3][4],则变量占用的内存空间为多少........................250
面试题244堆栈溢出一般是由什么原因导致的.....................................251
面试题245什么函数不能声明为虚函数...........................................251
面试题246冒泡排序算法的时间复杂度是什么.....................................251
面试题247写出float x与“零值”比较的if语句..................................251
面试题248 Internet采用哪种网络协议?介绍该协议的主要层次结构..................252
面试题249 Internet物理地址和丨P地址转换采用什么协议............................252
面试题250 IP地址的编码分为哪两部分...........................................252
面试题251不能做switch()的参数类型是什么数据类型..............................252
面试题252尽可能多地说出static和const关键字的作用............................252
面试题253什么是预编译.......................................................253
面试题254写一个标准宏,使其输入两个参数,返回较小的一个.....................254
面试题255嵌入式系统中如何用C语言编写死循环................................254
面试题 256 int(*s[10])(int)表示什么...............................................254
面试题257 F列表达式哪些会被编译器禁止(华为面试题).......................254
面试题258换两个变虽的值而不使用第3个变量,即a=3, b=5,交换之后a=5, b=3•……255
面试题259 C和C++中的struct有什么不同........................................255
面试题260如何让程序跳转到绝对地址0x100000去执行............................255
面试题261已知一个数组table,用一个宏定义求出数据的元素个数..................256
面试题262关于线程和进程的典型问题...........................................256
____________________________________________ ____________________________________________________________
• XIV •
面试题263什么是引用?说明申明和使用引用要注意的问题.........................256
面试题264将引用作为函数的参数有哪些特点.....................................256
面试题265什么时候需要使用常引用..............................................257
面试题266给出将“引用”作为函数返冋值类型的格式及其优点和需遵守的规则.......257
面试题267 “引用”与多态的关系................................................259
面试题268如何判断一段程序是由C编译还是由C++编译的.........................259
面试题269结构与联合有何区别..................................................259
面试题270下面代码的输出结果是什么............................................259
面试题271 —个32位的机器的指针是多少位(华为面试题)........................260
面试题272类成员函数的重载、覆盖和隐藏的区别.................................260
面试题273 const相比有何优点..........................................261
曲试题274 h头文件中的ifndef/define/emiif有何作用...............................261
面试题 275 #indude<file.h>~#i!iclude "file.h’•有何区别..............................261
囟试题276 C++中调用被C编译器编译后的函数为何要加extern "C”..................261
面试题277关联、聚合(Aggregation)及组合(omposition)有何区别..................264
面试题278多重继承如何消除向上继承的二义性(摩托罗拉笔试题).................265
第19章程序改错实战题(t教学视频:31分钟).................................266
面试题279找出下面代码中的所有错误............................................266
曲试题280找出下面代码中的所有错误............................................266
面试题281找出T••面代码的错误..................................................267
面试题282找出下面代码的错误..................................................267
面试题283找出下面代码的错误..................................................268
面试题284找出下面代码的错误..................................................269
面试题285找出下面代码的错误..................................................270
面试题286找出下面代码的错误..................................................270
面试题287找出下面代码的错误..................................................271
面试题288以卜代码有什么问题..................................................271
面试题289下面程序执行后冇什么错误或结果(华为面试题).......................272
面试题290改正下面代码的错误..................................................272
面试题291以下代码中的两个sizeof用法有问题吗(朗讯面试题)...................273
面试题292指出下而程序中的错误................................................273
面试题293指出下而程序中的错误................................................273
面试题294指出下而程序中的错误................................................274
面试题295下面程序有什么错误..................................................274
而试题296下面程序有什么错误..................................................274
面试题297下面程序有什么错误..................................................275
面试题298以下代码有什么错误..................................................275
面试题299求一个数的平方,请找出代码错误(华为面试题).......................276
面试题300找出下面这段程序的错误(华为面试题)...............................276
________________________________________________ 0 ^ ________________________________________________
• XV •
第20章编写程序实战题(f教学视频:79分钟).................................277
面试题301写出删除一个单项链表某一个结点的算法...............................277
Ifi]试题302用1分钱、2分钱、5分钱组成1元钱的方式............................278
面试题303奶牛生子的问题(腾讯囱试题).......................................278
面试题304写一个函数将链表逆序(Intel面试题).................................279
面试题305将两个链表合并成一个链表依然有序...................................280
面试题306用递归方法将两个链表合并成一个链表依然有序(Autodesk面试题)......281
面试题307给出bool、im、float指针变量与“零值”比较的if语句..................281
面试题308计算Windows NT下32位C++程序的sizeof值..........................282
面试题309写一个“标准”宏MIN,输入两个参数,返N较小的....................283
面试题310标准头文件的结构问题(微软面试题).................................283
囱试题3U编写一个函数,把一个char组成的字符串循环右移n位..................284
面试题312以适当的数据结构组织WAV文件头并解析文件信息.....................285
面试题3丨3编写类String的构造函数、析构函数和赋值函数.........................286
面试题314写一个C函数,判断不同模式处理器的返回值..........................287
面试题315写一个函数返回l+2+3+“.+n的值......................................288
Ifir试题316输入一个m在屏幕上打印出NXN的矩阵(华为面试题)...............288
面试题317找出两个数中最大的一个(华为面试题)...............................290
面试题318打印出当前源文件的文件名及当前行号.................................290
面试题319 main()主函数执行完毕后是否会再执行一段代码............................290
面试题320 —个关于指针的问题.....................;...........................291
面试题321按要求输出时间......................................................292
面试题322 —个关于字符串函数的问题...........................................293
面试题323尝试写出类的成员函数的实现.........................................294
面试题324简述数组与指针的区别................................................295
面试题325关于C/C++编译器的N题.............................................295
面试题326 —个关于排序和文件输出的问题(华为面试题).........................296
面试题327找出一个整数数组中的第二大数(微软面试题).........................297
面试题328判断一个单链表有环..................................................297
面试题329 求函数返回值.......................................................298
向试题330 —个关于如何处理溢出的问题.........................................2%
面试题331如何用C语言将一个字符转换成整型...................................299
第5篇智力测试与逻辑测试
第21章智力测试(t教学视频•• 54分钟)........................................302
21.1数学智力测试...................................................................302
面试题332现代的斯芬克斯(美国AT&T公司2000年面试题)......................302
面试题333 找出次品乒乓球.....................................................302
________________________________________________ 0 ^ ________________________________________________
• XVI •
__________________________________________________________________________________________________________________
面试题334有几顶黑_子........................................................303
面试题335如何分配蛋糕........................................................303
面试题336如何切会最多........................................................303
面试题337怎样烙饼............................................................304
面试题338如何撥快送到情报....................................................304
面试题339他们是怎么比赛的....................................................304
面试题340如何称大米..........................................................305
面试题341 100美元哪里去了(欧洲某著名1T公司2005年面试题)..................305
面试题342击鼠标比赛(欧洲某著名〖T公司2005年面试题).......................305
面试题343女儿哪里错了(印度某著名IT公司2003年面试题).....................306
面试题344原来是什么硬币(日本某著名公司1998年面试题)......................306
面试题345怎样会有满满的一瓶(欧洲某著名丨T公司2006年面试题)...............306
21.2推理智力测试...................................................................307
面试题346蜗牛出井(欧洲某著名1T公司2003年面试题).........................307
面试题347他们如何过河........................................................307
面试题348为什么上当(中国某大型丨T公司2008年面试题).......................307
面试题349判断几率............................................................308
面试题350诚实的人(微软1999年应届生面试题)................................308
面试题351到达的顺序(中国某大型IT公司2009年面试题).......................308
面试题352下列数列中少了一个什么数(中国某大型IT公司2009年面试题)..........308
21.3综合智力测试...................................................................309
面试题353 飞机票如何分配......................................................309
面试题354聪明的农民..........................................................309
面试题355求最短的时间(中国某大型1T公司2007年面试题).....................309
面试题356不能称到的最轻重量(中国某大型IT公司2007年面试题)...............310
面试题357小机灵的办法(中国某大型丨T公司2006年面试题).....................310
面试题358池塘取水(美闺某大型I丁公司2003年面试题).........................310
面试题359 1=5,2=15, 3=215, 4=2145。那么5=?(曰本某大型IT公司2006年
而试题)............................................................311
面试题360如何打开房间........................................................311
面试题361聪明人怎么发财......................................................311
面试题362请问有几条生病的狗..................................................312
第22章逻辑测试(^教学视频:41分钟).........................................313
22.1文字逻辑测试...................................................................313
面试题363 H是什么人种(北美电信2006年应届生面试题)........................313
面试题364推断血液、脂肪蛋白和胆固醉的关系(中闽某教育集凼2008年面试题)•…•…314
面试题365学籍、学生会干部和奖学金(中国某大型IT公司2003年面试题).........314
面试题366数学院的规定(中国某著名研究院2007年面试题)......................315
面试题367老师的结论(中国某著名公司2007年面试题)..........................315
• XVII •
面试题368是哪一张牌..........................................................316
22.2图形逻辑测试...................................................................317
面试题369选择正确的图形(欧洲某著名1T公司2003年面试题)...................317
面试题370选择正确的图形(欧洲某著名IT公司2004年面试题)...................318
面试题371选择正确的图形(雅虎中国公司2005年面试题)........................318
面试题372选择正确的图形(中国某大型IT公司2007年面试题)...................319
面试题373选择正确的图形(中国某大型IT公司2002年面试题)...................319
面试题374选择正确的图形(亚洲某著名IT公司2006年面试题)...................320
22.3规律题测试.....................................................................321
面试题375规律题1............................................................321
面试题376 规律题2...........................................................321
面试题377规律题3............................................................322
面试题378 规律题4...........................................................322
面试题379规律题5............................................................322
面试题380规律题6............................................................323
面试题381 规律题7...........................................................323
面试题382 规律题8...........................................................323
2017-01-13
C_C++ 程序员面试宝典 梁镇宇 完整扫描版.
目 录
第1篇求职准备和技巧
第1章了解面试——通过面试抓住机会..........................................2
1.1选择自己的应聘职位范围............................................................2
1.1.1针对初级C/Of•工程师职位...................................................2
1.1.2针对中、高级C/OH■开发丁程师职位...........................................3
1.1.3 C/OH■的职位划分............................................................4
1.2制作专业化的应聘简历..............................................................5
1.2.1简历的组成.................................................................5
1.2.2 —个简历的样本.............................................................6
1.4箪握应聘的流程一一步步为营........................................................9
1.5投递简历..........................................................................10
1.5.1招聘网站投递...............................................................10
1.5.2 E-mail 投递................................................................11
1.5.3如何面对招聘会.............................................................12
1.6面试+笔试+上机考试...............................................................13
1.6.1 酿.......................................................................13
1.6.2 笔试.......................................................................14
1.6.3 上机考试...................................................................15
1.7面试后的终结邮件..................................................................16
第2章英文面试教学视频:60分钟).....................................18
2.1英文面试过程和技巧................................................................18
2.2关于工作..........................................................................19
面试题 1 What salary would you expect for this job.....................................19
面试题 2 What new skills or ideas do you bring to the job that other candidates
aren't likely to offer......................................................20
面试题 3 What would you like to accomplish that you weren't able to accomplish
in your last position.......................................................20
面试题 4 How have your career motivations changed over the past few years................20
面试题 5 Why should I hire you.....................................................21
面试题 6 What are your key skills...................................................21
面试题 7 What are your strengths...................................................22
而试题 8 How is your experience relevant to this job....................................22
面试题 9 What skills do you think are most critical to this job.............................23
面试题 10 What skills would you like to develop in this job...............................23
面试题 11 If you had to stay in your current job, what would you spend more time on? Why....24
面试题 12 How could you enrich your current job.......................................24
2.3关于个人.........................................................................24
面试题 13 Why do you want to work here............................................25
曲试题 14 Do you believe you’re overqualified for this position..........................25
面试题 15 Tell me about a time you didn’t perform to your capabilities....................26
面试题 16 How do you manage stress in your daily work................................26
面试题 17 Considering your own resume,what are your weaknesses in relation to this job.....26
面试题 18 Describe your working relationship with your colleagues.......................27
面试题 19 Describe your personality beneath the professional image.......................27
向试题 20 How will you complement this department...................................27
2.4关于发展..........................................................................28
面试题 21 Tell me what you learned from a recent book.................................28
面M题 22 What’s your most productive or ideal work setting.............................28
而试题 23 Where do you want to be in five years.......................................29
面试题 24 What are your aspirations beyond this job....................................29
ift 试题 25 How long do you think you'd continue to grow in this job......................29
由试题 26 What do you reasonably expect to earn within five years........................30
第3章电话面试(^1教学视频:13分钟)...........................................31
3.1电话面试简介......................................................................31
3.2如何准备电话面试..................................................................32
3.3电话面试常见问题.................................................................33
面试题27为什么想进本公司......................................................33
面试题28你最#欢这份工作的哪一点或者哪些方面.................................33
面试题29请描述一下你自己的优缺点..............................................34
面试题30你对本公司的了解有多少................................................34
面试题3丨对这份工作的期望与目标何在............................................34
面试题32你为什么要离职........................................................34
面试题33选择这份工作的原因是什么..............................................35
面试题34你认为相关产业的发展会如何............................................35
面试题35你希望的待遇为多少....................................................35
面试题36在工作中学习到了些什么................................................35
_______________________________________________________________UM____________________________________ ___________________________
• VI •
目录
第2篇C/C++基础知识
第4章C/C++语言基础(尤*教学视频:50分钟)...................................38
4.1基本数据类型.....................................................................38
面试题37 C++中有哪几种基本数据类型............................................38
面试题38整型有哪几种形式?各种形式有什么区别.................................39
面试题39 C++中有哪些常量......................................................40
面试题40常量与变量有哪些区别.................................................42
4.2操作符...........................................................................42
面试题41操作符有哪些分类......................................................43
面试题42操作符优先级对运算结果有什么影响.....................................43
面试题43逻辑操作与其他操作的关系.............................................45
面试题44自增自减前操作与后操作的区别.........................................46
面试题45指针&增自减有什么不同...............................................47
4.3变量.............................................................................47
面试题46什么是左值和右值......................................................48
面试题47什么是变童............................................................48
面试题48变量有哪几种初始化方式................................................49
面试题49变量默认初始化有什么规则..............................................50
面试题50仆么是变M的声明和定义................................................50
面试题51 C++中有哪几种作用域.............................................51
面试题52局部变量与嵌套的作用域................................................52
面试题53变景有哪几种存储类型..................................................53
4.4 弓 |fli..............................................................................53
面试题54什么是引用............................................................54
面试题55 如何使用const引用与非const引用........................................54
4.5 C与C*H•的联系...................................................................55
面试题56 C与C++有什么区别..............................................55
4.6编程规范.........................................................................55
面试题57什么是匈牙利命名法....................................................55
面试题58变黄有什么命名规则....................................................56
第5章流程控制教学视频:24分钟)..........................................58
5.1条件语句.........................................................................58
面试题59条件语句有哪几种形式..................................................58
面试题60条件语句如何嵌套?如何匹配else子句...................................59
5.2循环语句.........................................................................61
面试题61 for循环语句的计算顺序是什么..........................................61
面试题62 while循环与do-while循环有什么区别......................................62
• VII •
面试题63典型循环语句..........................................................64
面试题64 break语句与continue语句有什么区别.....................................64
5.3 switch 语句.......................................................................66
面试题65 switch语句的执行顺序是什么.............................................66
面试题66如何在switch语句内部定义变量.........................................67
5.4 細.............................................................................68
面试题67什么是递归............................................................68
面试题68汉诺塔问题............................................................69
第6章输入输出教学视频:15分钟).....................................73
6.1 输入流与输出流...................................................................73
面试题69什么是标准输入输出流..................................................73
面试题70如何®载输入输出......................................................74
6.2文件输入/输出.....................................................................75
面试题71如何读取一个文件......................................................75
面试题72文件输入输出有哪几种方式.............................................76
6.3异常与错误.......................................................................77
面试题73什么是异常............................................................77
面试题74如何抛出和捕捉异常....................................................78
第7章预处理以及内存管理教学视频:28分钟)...............................80
7.1 宏定义...........................................................................80
面试题75宏定义与操作符的区别..................................................80
而试题76宏定义如何展开........................................................81
7.2 include 的使用.....................................................................82
面试题77 include有哪几种使用方式?有什么区别..................................82
面试题78包含头文件时如何査找头文件...........................................83
7.3 内存分配.........................................................................83
面试题79 C++中各数据类型的长度................................................84
面试题80如何分配和释放存储空间................................................84
7.4虚函数与纯虚函数.................................................................85
由试题81 虚函数与纯虚函数的区别...............................................85
面试题82如何使用纯虚函数......................................................86
第8章指针(教学视频•• 60分钟)...........................................88
8.1指针概述.........................................................................88
面试题83什么是指针............................................................88
而试题84如何初始化指针并对其陚值.............................................89
面试题85是否可以确定指针指向一个对象.........................................90
面试题86如何使用指针操作数组.................................................90
面试题87 const对象的指针和const指针的区别.....................................91
• VIII
面试题88数组指针与指针数组的区别.............................................92
8.2函数指针.........................................................................93
面试题89什么是函数指针?如何使用函数指针.....................................93
面试题90指针函数和函数指针的区别.............................................95
8.3 this 指针..........................................................................96
面试题91什么是this指针........................................................96
面试题92何时使用this指针......................................................%
8.4引用与值传递..................................................:..................97
面试题93什么是值传递..........................................................97
面试题94引用与值传递的区别...................••.................................98
面试题95指针和引用有什么区别..................................................99
第9章面向对象与类■教学视频:48分钟)................................1〇〇
9.1 面向对象的基本知识..............................................................100
面试题96面向对象与面向过程的区别.............................................100
面试题97面向对象的特征是什么.................................................101
9.2 ^...............................................................................101
面试题98类和结构有什么区别...................................................102
面试题99抽象类及它的用途.....................................................103
9.3 类成员...........................................................................105
面试题100成员变萤有哪些访问方式..............................................105
面试题101成员变量有哪些访问控制方式..........................................105
面试题102 如何访问静态成员....................................................106
9.4 0S.............................................................................108
面试题103什么是多态?多态的作用..............................................108
面试题104在OH•中如何实现多态................................................109
第10章继承教学视频•• 44分钟).............................................113
10.1 縣............................................................................113
面试题105派生类与基类的转换..................................................113
面试题106什么是虚成员?有什么作用............................................115
面试题107构造函数与析构函数的调用时机........................................116
10.2访问控制........................................................................118
面试题108有哪几种继承方式....................................................118
面试题109继承时访问级别如何变化..............................................120
10.3继承时的类作用域................................................................121
面试题110什么时候发生函数覆盖................................................121
面试题111如何访问基类的成员..................................................122
10.4复制构造函数....................................................................123
面试题112什么是深复制与浅复制................................................123
而试题113什么是复制构造函数..................................................124
_______________________________________________________ ____________________________________________________________
• IX •
10.5类型转换构造函数...............................................................125
面试题114类型转换有哪些分类.................................................125
面试题115什么是类型转换构造函数..............................................126
第11章函数(f教学视频:49分钟).............................................128
11.1函数的定义......................................................................128
面试题116什么是函数..........................................................128
面试题117形参与实参有什么区别................................................129
面试题118 C++支持参数个数不确定的函数吗.....................................130
面试题119什么是内联函数......................................................131
11.2函数参数的传递..................................................................132
面试题120引用形参和非引用形参有什么区别......................................132
面试题121使用引用形参有什么问题..............................................133
面试题122指针形参与引用形参有什么区别........................................134
11.3类成员函数......................................................................135
面试题123什么是类成员函数?有哪些特别的类成员函数...........................135
面试题124什么是静态函数?如何使用静态函数....................................136
面试题125静态函数能访问类的私有成员..........................................137
面试题126 —-个类可以访问另一个类的私有成员吗...................................137
11.4函数重载.......................................................................138
面试题127函数重载与作用域...................................................138
面试题128如何进行函数重载的匹配.............................................139
面试题129函数重载时如何实现实参的类型转换...................................140
第12章模板与STL ( ^教学视频:46分钟).....................................141
12.1 賺...........................................................................141
面试题130什么是函数模板.....................................................141
面试题131什么是类模板.......................................................143
12.2 獅...........................................................................145
面试题132什么是容器.........................................................145
面试题133有哪几种顺序容器...................................................147
面试题134什么是迭代器的范围.................................................】49
面试题135什么是关联容器.....................................................150
12.3泛型编程.......................................................................152
面试题136什么是泛型编程.....................................................152
面试题137 C++如何实现泛型编程...............................................152
第3篇C/C++专业应用
第13章数据结构教学视频:100分钟)......................................156
13.1 表.............................................................................156
_______ _____________________________________________________________ 0 ^ ____________________________________________________________________
• X •
面试题138有哪几种表的实现方式................................................156
面试题139链表有哪儿种分类....................................................157
13.2 队列............................................................................159
面试题140什么是队列..........................................................159
13.3 栈..............................................................................160
面试题141什么是栈............................................................160
而试题142如何访问栈中的元素..................................................162
13.4 W..............................................................................162
面试题143树的分类有哪些......................................................162
面试题144如何对树进行遍历....................................................164
面试题145如何对二叉树进行遍历................................................164
面试题146如何计算二叉树的高度................................................166
面试题147如何计算二叉树的结点数..............................................167
13.5 图..............................................................................167
面试题148图的实现方式有哪几种................................................167
面试题149如何进行图的搜索?搜索算法有哪几种方式..............................168
13.6 排序............................................................................169
面试题150什么是冒泡排序......................................................169
面试题151鸡尾酒排序(改进的冒泡排序)........................................171
面试题152仆么是选择排序......................................................172
面试题153什么是直接插入排序..................................................173
面试题154什么是归并排序......................................................174
面试题155什么是快速排序............................:........................176
面试题156什么是希尔(Shell)排序..............................................177
面试题157仆么是堆排序........................................................179
13.7排序算法的总结..................................................................180
第14章软件工程(^教学视频:39分钟).........................................182
14.1 软件工程基础....................................................................182
面试题158什么是软件工程......................................................182
面试题159什么是软件危机......................................................183
14.2软件的4大开发模型..............................................................184
面试题160 4大幵发模型的区别..................................................184
面试题161如何选择开发模型....................................................186
14.3 软件测试........................................................................187
面试题162测试有哪些分类......................................................187
面试题163 如何设计测试用例...................................................188
14.4 UML语言概述...................................................................189
面试题164 什么是UML.........................................................189
面试题165 UML有哪些图......................................................190
_______________________________________________________ ____________________________________________________________
• XI •
___________________________________________________________________________________________________________________
面试题166 UML中的动态阁................................................191
面试题167静态图有哪几种......................................................192
14.5设计模式........................................................................192
面试题168什么是设计模式......................................................192
面试题169 GOF的23个设计模式是如何进行分类的..................................193
第15章数据库、操作系统、计算机网络教学视频:65分钟).................195
15.1数据库理论......................................................................195
面试题170什么是关系数据库设计范式............................................195
面试题171什么是数据库事务....................................................196
面试题172有哪儿种数据模型....................................................197
面试题173什么是数据库管理系统................................................198
15.2 SQL 语言.......................................................................199
面试题174什么是SQL语言.....................................................199
面试题175使用SQL语句对表进行分页査询.......................................199
15.3操作系统概述...................................................................200
面试题176什么是操作系统......................................................200
面试题177比较常用的操作系统有哪些............................................201
15.4进程与线程.....................................................................202
面试题178操作系统的最小调度单位是什么.......................................202
面试题179资源的最小单位是什么....................... 202
面试题180进程与线程的区别....................................................203
面试题181如何实现多线程的同步................................................203
15.5 内存与作业调度.................................................................204
面试题182内存管理方式有哪些..................................................204
面试题183作业调度算法有哪些..................................................205
面试题184作业一般有哪些状态..................................................206
15.6计算机网络结构.................................................................206
面试题185 OSI七层模型是什么..................................................207
面试题186 OSI七层网络结构模型与TCP/IP四层结构模型的区别....................207
面试题187什么是TCP/IP协议...................................................208
第16章上机操作题(f教学视频:25分钟).................................210
16.1 经典算法问题...................................................................210
面试题188斐波那契数列........................................................210
面试题189杨辉三角............................................................212
面试题190整数十进制转二进制..................................................213
面试题191素数问题............................................................214
面试题192字符串转换为整数....................................................215
16.2数据库操作题...................................................................216
面试题193 选课系统............................................................216
• XII •
第17章思维拓展教学视频:16分钟)........................................223
17.1经典试题.......................................................................223
面试题194八皇后问题..........................................................223
面试题195经典矩形............................................................225
面试题196汉诺塔..............................................................229
面试题197新娘和新郞问题......................................................230
面试题198大数乘法............................................................230
17.2面试经验分享...................................................................232
17.2.1面试经过................................................................232
17.2.2由面试想到的............................................................234
17.3群体面试.......................................................................235
第4篇C/C++面试题实战解析
第18章文字解答实战题教学视频:113分钟)................................238
面试题199介绍STL,详细说明STL如何实现vector (华为面试题)................238
面试题200分析Visual C科程序出错的原因.......................................239
面试题201继承和多态有何K别..................................................240
面试题202指针和引用有何区别?传引用比传指针安全,为什么......................240
面试题203参数传递的方式与多态參数传递的实现(摩托罗拉面试题)...............241
面试题204怎样应用设计模式的理念..............................................241
面试题205介绍一•下对设计模式的理解...........................................241
IH试题206 C++和C定义结构的区别是什么(摩托罗拉笔试题).....................242
面试题207关丁•构造函数和析构函数.............................................242
囟试题208对拷贝构造函数的深拷贝、浅拷贝和临时对象的理解.....................242
面试题209基类中有一个虚函数,子类还需要申明为virtual吗.......................242
面试题210 C++的类有什么优点...................................242
面试题211如何实现多态?父类和子类的继承关系如何..............................243
面试题212为什么要引入抽象基类和纯虚函数(摩托罗拉笔试题)...................243
面试题213介炤一下模板和容器,如何实现.......................................243
面试题214什么是MVC?简单举例说明其应用....................................243
面试题215列举儿种进程的同步机制(华为面试题)...............................243
面试题2〗6进程之间通信的途径..................................................244
面试题217进程死锁的原因......................................................244
面试题218死锁的4个必要条件..................................................244
面试题219死锁的处理..........................................................244
面试题220操作系统中进程调度策略有哪几种.....................................245
面试题22丨类的静态成员和非静态成员有何区别...................................245
面试题222纯虚函数如何定义?使用时应注意什么.................................245
____________________________________________________________________________________________________________________
• XIII •
面试题223数组和链表的区别....................................................245
面试题224关于ISO七层模型的典型问题.........................................245
面试题225内存的分配方式及其区别.............................................246
面试题226 struct和class的区别.................................................246
面试题227 —个类所占内存空间的问题(Autodesk面试题改编)....................246
面试题228在8086汇编中,逻辑地址和物理地址如何转换(Intel面试题).................247
面试题229比较C++中的4种类型转换方式.......................................247
面试题230面向对象的3个基本特征是什么.......................................247
面试题231重载(overload)和重写(overried)的K别.............................248
面试题232多态的作用..........................................................248
面试题233 ADO与ADO.NET有何异同...........................................248
面试题234 New delete与malloc free有何联系与区别...............................249
面试题 235 #defineDOUBLE(x)x+x, i = 5*DOUBLE(5),求 i........................249
面试题236哪几种情况只能用intialization list而不能用assignment....................249
面试题237 OH■是不是类型安全的................................................249
面试题238 mainO函数执行前还会执行什么代码....................................249
面试题239 static有什么用途(至少说明两种)....................................250
面试题240描述实时系统的基本特性.............................................250
面试题241全局变量和局部变量在内存中是否有区别?说明原因......................250
面试题242什么是平衡二叉树...................................................250
面试题243定义int**a[3][4],则变量占用的内存空间为多少........................250
面试题244堆栈溢出一般是由什么原因导致的.....................................251
面试题245什么函数不能声明为虚函数...........................................251
面试题246冒泡排序算法的时间复杂度是什么.....................................251
面试题247写出float x与“零值”比较的if语句..................................251
面试题248 Internet采用哪种网络协议?介绍该协议的主要层次结构..................252
面试题249 Internet物理地址和丨P地址转换采用什么协议............................252
面试题250 IP地址的编码分为哪两部分...........................................252
面试题251不能做switch()的参数类型是什么数据类型..............................252
面试题252尽可能多地说出static和const关键字的作用............................252
面试题253什么是预编译.......................................................253
面试题254写一个标准宏,使其输入两个参数,返回较小的一个.....................254
面试题255嵌入式系统中如何用C语言编写死循环................................254
面试题 256 int(*s[10])(int)表示什么...............................................254
面试题257 F列表达式哪些会被编译器禁止(华为面试题).......................254
面试题258换两个变虽的值而不使用第3个变量,即a=3, b=5,交换之后a=5, b=3•……255
面试题259 C和C++中的struct有什么不同........................................255
面试题260如何让程序跳转到绝对地址0x100000去执行............................255
面试题261已知一个数组table,用一个宏定义求出数据的元素个数..................256
面试题262关于线程和进程的典型问题...........................................256
____________________________________________ ____________________________________________________________
• XIV •
面试题263什么是引用?说明申明和使用引用要注意的问题.........................256
面试题264将引用作为函数的参数有哪些特点.....................................256
面试题265什么时候需要使用常引用..............................................257
面试题266给出将“引用”作为函数返冋值类型的格式及其优点和需遵守的规则.......257
面试题267 “引用”与多态的关系................................................259
面试题268如何判断一段程序是由C编译还是由C++编译的.........................259
面试题269结构与联合有何区别..................................................259
面试题270下面代码的输出结果是什么............................................259
面试题271 —个32位的机器的指针是多少位(华为面试题)........................260
面试题272类成员函数的重载、覆盖和隐藏的区别.................................260
面试题273 const相比有何优点..........................................261
曲试题274 h头文件中的ifndef/define/emiif有何作用...............................261
面试题 275 #indude<file.h>~#i!iclude "file.h’•有何区别..............................261
囟试题276 C++中调用被C编译器编译后的函数为何要加extern "C”..................261
面试题277关联、聚合(Aggregation)及组合(omposition)有何区别..................264
面试题278多重继承如何消除向上继承的二义性(摩托罗拉笔试题).................265
第19章程序改错实战题(t教学视频:31分钟).................................266
面试题279找出下面代码中的所有错误............................................266
曲试题280找出下面代码中的所有错误............................................266
面试题281找出T••面代码的错误..................................................267
面试题282找出下面代码的错误..................................................267
面试题283找出下面代码的错误..................................................268
面试题284找出下面代码的错误..................................................269
面试题285找出下面代码的错误..................................................270
面试题286找出下面代码的错误..................................................270
面试题287找出下面代码的错误..................................................271
面试题288以卜代码有什么问题..................................................271
面试题289下面程序执行后冇什么错误或结果(华为面试题).......................272
面试题290改正下面代码的错误..................................................272
面试题291以下代码中的两个sizeof用法有问题吗(朗讯面试题)...................273
面试题292指出下而程序中的错误................................................273
面试题293指出下而程序中的错误................................................273
面试题294指出下而程序中的错误................................................274
面试题295下面程序有什么错误..................................................274
而试题296下面程序有什么错误..................................................274
面试题297下面程序有什么错误..................................................275
面试题298以下代码有什么错误..................................................275
面试题299求一个数的平方,请找出代码错误(华为面试题).......................276
面试题300找出下面这段程序的错误(华为面试题)...............................276
________________________________________________ 0 ^ ________________________________________________
• XV •
第20章编写程序实战题(f教学视频:79分钟).................................277
面试题301写出删除一个单项链表某一个结点的算法...............................277
Ifi]试题302用1分钱、2分钱、5分钱组成1元钱的方式............................278
面试题303奶牛生子的问题(腾讯囱试题).......................................278
面试题304写一个函数将链表逆序(Intel面试题).................................279
面试题305将两个链表合并成一个链表依然有序...................................280
面试题306用递归方法将两个链表合并成一个链表依然有序(Autodesk面试题)......281
面试题307给出bool、im、float指针变量与“零值”比较的if语句..................281
面试题308计算Windows NT下32位C++程序的sizeof值..........................282
面试题309写一个“标准”宏MIN,输入两个参数,返N较小的....................283
面试题310标准头文件的结构问题(微软面试题).................................283
囱试题3U编写一个函数,把一个char组成的字符串循环右移n位..................284
面试题312以适当的数据结构组织WAV文件头并解析文件信息.....................285
面试题3丨3编写类String的构造函数、析构函数和赋值函数.........................286
面试题314写一个C函数,判断不同模式处理器的返回值..........................287
面试题315写一个函数返回l+2+3+“.+n的值......................................288
Ifir试题316输入一个m在屏幕上打印出NXN的矩阵(华为面试题)...............288
面试题317找出两个数中最大的一个(华为面试题)...............................290
面试题318打印出当前源文件的文件名及当前行号.................................290
面试题319 main()主函数执行完毕后是否会再执行一段代码............................290
面试题320 —个关于指针的问题.....................;...........................291
面试题321按要求输出时间......................................................292
面试题322 —个关于字符串函数的问题...........................................293
面试题323尝试写出类的成员函数的实现.........................................294
面试题324简述数组与指针的区别................................................295
面试题325关于C/C++编译器的N题.............................................295
面试题326 —个关于排序和文件输出的问题(华为面试题).........................296
面试题327找出一个整数数组中的第二大数(微软面试题).........................297
面试题328判断一个单链表有环..................................................297
面试题329 求函数返回值.......................................................298
向试题330 —个关于如何处理溢出的问题.........................................2%
面试题331如何用C语言将一个字符转换成整型...................................299
第5篇智力测试与逻辑测试
第21章智力测试(t教学视频•• 54分钟)........................................302
21.1数学智力测试...................................................................302
面试题332现代的斯芬克斯(美国AT&T公司2000年面试题)......................302
面试题333 找出次品乒乓球.....................................................302
________________________________________________ 0 ^ ________________________________________________
• XVI •
__________________________________________________________________________________________________________________
面试题334有几顶黑_子........................................................303
面试题335如何分配蛋糕........................................................303
面试题336如何切会最多........................................................303
面试题337怎样烙饼............................................................304
面试题338如何撥快送到情报....................................................304
面试题339他们是怎么比赛的....................................................304
面试题340如何称大米..........................................................305
面试题341 100美元哪里去了(欧洲某著名1T公司2005年面试题)..................305
面试题342击鼠标比赛(欧洲某著名〖T公司2005年面试题).......................305
面试题343女儿哪里错了(印度某著名IT公司2003年面试题).....................306
面试题344原来是什么硬币(日本某著名公司1998年面试题)......................306
面试题345怎样会有满满的一瓶(欧洲某著名丨T公司2006年面试题)...............306
21.2推理智力测试...................................................................307
面试题346蜗牛出井(欧洲某著名1T公司2003年面试题).........................307
面试题347他们如何过河........................................................307
面试题348为什么上当(中国某大型丨T公司2008年面试题).......................307
面试题349判断几率............................................................308
面试题350诚实的人(微软1999年应届生面试题)................................308
面试题351到达的顺序(中国某大型IT公司2009年面试题).......................308
面试题352下列数列中少了一个什么数(中国某大型IT公司2009年面试题)..........308
21.3综合智力测试...................................................................309
面试题353 飞机票如何分配......................................................309
面试题354聪明的农民..........................................................309
面试题355求最短的时间(中国某大型1T公司2007年面试题).....................309
面试题356不能称到的最轻重量(中国某大型IT公司2007年面试题)...............310
面试题357小机灵的办法(中国某大型丨T公司2006年面试题).....................310
面试题358池塘取水(美闺某大型I丁公司2003年面试题).........................310
面试题359 1=5,2=15, 3=215, 4=2145。那么5=?(曰本某大型IT公司2006年
而试题)............................................................311
面试题360如何打开房间........................................................311
面试题361聪明人怎么发财......................................................311
面试题362请问有几条生病的狗..................................................312
第22章逻辑测试(^教学视频:41分钟).........................................313
22.1文字逻辑测试...................................................................313
面试题363 H是什么人种(北美电信2006年应届生面试题)........................313
面试题364推断血液、脂肪蛋白和胆固醉的关系(中闽某教育集凼2008年面试题)•…•…314
面试题365学籍、学生会干部和奖学金(中国某大型IT公司2003年面试题).........314
面试题366数学院的规定(中国某著名研究院2007年面试题)......................315
面试题367老师的结论(中国某著名公司2007年面试题)..........................315
• XVII •
面试题368是哪一张牌..........................................................316
22.2图形逻辑测试...................................................................317
面试题369选择正确的图形(欧洲某著名1T公司2003年面试题)...................317
面试题370选择正确的图形(欧洲某著名IT公司2004年面试题)...................318
面试题371选择正确的图形(雅虎中国公司2005年面试题)........................318
面试题372选择正确的图形(中国某大型IT公司2007年面试题)...................319
面试题373选择正确的图形(中国某大型IT公司2002年面试题)...................319
面试题374选择正确的图形(亚洲某著名IT公司2006年面试题)...................320
22.3规律题测试.....................................................................321
面试题375规律题1............................................................321
面试题376 规律题2...........................................................321
面试题377规律题3............................................................322
面试题378 规律题4...........................................................322
面试题379规律题5............................................................322
面试题380规律题6............................................................323
面试题381 规律题7...........................................................323
面试题382 规律题8...........................................................323
2017-01-13
USB Complete 3rdEdition
1. USB Basics 1
What USB Can Do 2
Benefits for Users 2
Benefits for Developers 6
Beyond the Hype 10
Evolution of an Interface 13
Original USB 14
USB 2.0 15
USB On-The-Go 16
Wireless USB 16
USB versus IEEE-1394 16
USB versus Ethernet 17
Bus Components 17
Topology 18
Defining Terms 19
Contents
iv
Division of Labor 22
The Host’s Duties 22
The Peripheral’s Duties 25
What about Speed? 28
Developing a Device 29
Elements in the Link 29
Tools for Developing 30
Steps in Developing a Project 30
2. Inside USB Transfers 33
Transfer Basics 34
Enumeration Communications 34
Application Communications 34
Managing Data on the Bus 35
Host Speed and Bus Speed 36
Elements of a Transfer 37
Device Endpoints: the Source and Sink of Data 38
Pipes: Connecting Endpoints to the Host 40
Types of Transfers 40
Stream and Message Pipes 42
Initiating a Transfer 43
Transactions: the Building Blocks of a Transfer 44
Transaction Phases 45
Ensuring that Transfers Are Successful 51
Handshaking 51
Reporting the Status of Control Transfers 55
Error Checking 56
3. A Transfer Type for Every Purpose 61
Control Transfers 61
Availability 62
Structure 62
Data Size 66
Speed 66
Detecting and Handling Errors 68
Bulk Transfers 68
Availability 69
Structure 69
Data Size 69
Speed 71
Detecting and Handling Errors 71
Contents
v
Interrupt Transfers 72
Availability 72
Structure 72
Data Size 73
Speed 73
Detecting and Handling Errors 75
Isochronous Transfers 76
Availability 76
Structure 76
Data Size 79
Speed 79
Detecting and Handling Errors 80
More about Time-critical Transfers 80
Bus Bandwidth 81
Device Capabilities 81
Host Capabilities 82
Host Latencies 83
4. Enumeration: How the Host Learns about Devices 85
The Process 86
Enumeration Steps 87
Enumerating a Hub 91
Device Removal 92
Tips for Successful Enumeration 92
Descriptors 93
Types of Descriptors 94
Device Descriptor 96
Device_qualifier Descriptor 99
Configuration Descriptor 101
Other_speed_configuration Descriptor 103
Interface Association Descriptor 103
Interface
2016-12-23
Google.Android.SDK开发范例大全 第3版 完整 60M 扫描版
第1章 了解、深入、动手做...... 1
1.1 红透半边天的Android... 2
1.2 本书目的及涵盖范例范围...... 3
1.3 如何阅读本书...... 4
1.4 使用本书范例...... 5
1.5 参考网站...... 7
第2章 Android初体验...... 8
2.1 安装Android SDK与ADT plug-in... 9
2.2 建立第一个Android项目~Hello Android!...... 10
2.3 Android应用程序架构—从此开始...... 13
2.4 可视化的界面开发工具...... 16
2.5 部署应用程序到Android手机...... 17
第3章 用户人机界面...... 20
3.1 更改与显示文字标签——TextView标签的使用...... 21
3.2 更改手机窗口画面底色——drawable定义颜色常数的方法...... 23
3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色...... 25
3.4 置换TextView文字——CharSequence数据类型与
Resource ID应用...... 27
3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法...... 29
3.6 样式化的定型对象——Style样式的定义...... 31
3.7 简易的按钮事件——Button事件处理...... 33
3.8 手机页面的转换——setContentView的应用...... 35
3.9 调用另一个Activity——Intent对象的使用...... 38
3.10 不同Activity之间的数据传递——Bundle对象的实现...... 43
3.11 返回数据到前一个Activity——startActivityForResult方法...... 47
3.12 具有交互功能的对话框——AlertDialog窗口...... 52
3.13 置换文字颜色的机关——Button与TextView的交互...... 54
3.14 控制不同的文字字体——Typeface对象使用...... 56
3.15 如iPhone拖动相片特效——Gallery画廊...... 59
3.16 自制计算器——多按钮的整合应用...... 61
3.17 关于(About)程序信息——Menu功能菜单程序设计...... 63
3.18 程序加载中~请稍后——ProgressDialog与线程整合应用...... 66
3.19 全屏幕以按钮覆盖——动态产生按钮并最大化...... 69
3.20 今晚到哪儿打牙祭?——具选择功能的对话框...... 71
3.21 Android变脸——主题(Theme)实现...... 74
第4章 史上超豪华的手机控件...... 77
4.1 EditText与TextView共舞——setOnKeyListener事件...... 78
4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理...... 79
4.3 给耶诞老人的信息——Toast对象的使用...... 83
4.4 我同意条款——CheckBox的isChecked属性...... 85
4.5 消费券采购列表——多选项CheckBox的应用...... 87
4.6 向左或向右——RadioGroup组与onCheckedChanged事件...... 90
4.7 专业相框设计——ImageView的堆栈应用...... 93
4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource.. 96
4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性...... 99
4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器...... 103
4.11 快速的搜索手机文件引擎——Java I/O的应用...... 106
4.12 按钮也能随点击变换——ImageButton选择特效...... 109
4.13 具自动提示功能的菜单——AutoCompleteTextView与数组...... 111
4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理...... 113
4.15 动态输入日期与时间——DatePicker与TimePicker应用...... 116
4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理...... 120
4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用...... 124
4.18 动态文字排版——GridView与ArrayAdapter设计...... 129
4.19 在Activity里显示列表列表——ListView的布局...... 133
4.20 以动态列表配置选项——ListActivity与Menu整合技巧...... 136
4.21 查找程序根目录下所有文件——Java I/O与
ListActivity的结合...... 140
4.22 加载手机磁盘里的图文件——使用decodeFile方法...... 144
4.23 动态放大缩小ImageView里的图片——运用Matrix对象
来缩放图文件...... 146
4.24 动态旋转图片——Bitmap与Matrix旋转ImageView.... 150
4.25 猜猜我在想什么——RadioButton ID.... 154
4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标...... 158
第5章 交互式通信服务与手机控制...... 162
5.1 具有正则表达式的TextView——Linkify规则...... 163
5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的
使用...... 165
5.3 自制发送短信程序——SmsManager与PendingIntent对象...... 168
5.4 自制发送Email程序——Intent在Email上的使用...... 174
5.5 自制日历手机数据库——实现SQLiteOpenHelper. 178
5.6 手机震动的节奏——Vibrator对象及周期运用...... 184
5.7 图文可视化提醒——Toast与LinearLayout View.... 188
5.8 状态栏的图标与文字提醒——NotificationManager与
Notification对象的应用...... 190
5.9 搜索手机通讯录自动完成——使用ContentResolver. 195
5.10 取得联系人资料——Provider.Contact的使用...... 200
5.11 制作有图标的文件资源管理器——自定义Adapter对象...... 204
5.12 还原手机默认桌面——重写clearWallpaper方法...... 210
5.13 置换手机背景图——Gallery与setWallpaper整合实现...... 213
5.14 撷取手机现存桌面——getWallpaper与setImageDrawable.. 217
5.15 文件资源管理器再进化——Java I/O修改文件名及删除...... 219
5.16 取得目前File与Cache的路径——getCacheDir与getFilesDir. 228
5.17 打开/关闭WiFi服务——WifiManager状态判断...... 232
5.18 取得SIM卡内的信息——TelephonyManager的应用...... 242
5.19 调用拨号按钮——打电话CALL_BUTTON.... 247
5.20 DPAD按键处理——onKeyDown事件与Layout坐标交互...... 249
5.21 任务管理器正在运行的程序——RunningTaskInfo... 254
5.22 动态更改屏幕方向——LANDSCAPE与PORTRAIT... 260
5.23 系统设置更改事件——onConfigurationChanged信息处理...... 264
5.24 取得电信网络与手机相关信息——TelephonyManager与
android.provider.Settings.System的应用...... 269
第6章 手机自动服务纪实...... 276
6.1 您有一条短信pop up提醒——常驻BroadcastReceiver的应用...... 277
范例说明...... 277
运行结果...... 277
范例程序...... 278
扩展学习...... 280
6.2 手机电池计量还剩多少——使用BroadcastReceiver捕捉
Intent.ACTION_BATTERY_CHANGED.... 281
范例说明...... 281
运行结果...... 282
范例程序...... 282
扩展学习...... 284
6.3 群发拜年短信给联系人——ACTION_PICK与Uri对象...... 285
范例说明...... 285
运行结果...... 285
范例程序...... 286
扩展学习...... 288
6.4 开始与停止系统服务——Service与Runnable整合并用...... 289
范例说明...... 289
运行结果...... 290
范例程序...... 290
扩展学习...... 294
6.5 通过短信发送email通知——BroadcastReceiver与Intent整合...... 294
范例说明...... 294
运行结果...... 295
范例程序...... 295
扩展学习...... 299
6.6 手机拨接状态——PhoneStateListener之onCallStateChanged... 300
范例说明...... 300
运行结果...... 301
范例程序...... 301
扩展学习...... 304
6.7 有来电,发送邮件通知——PhoneStateListener与
ACTION_SEND.... 304
范例说明...... 304
运行结果...... 305
范例程序...... 305
扩展学习...... 307
6.8 存储卡剩余多少容量——Environment加StatFs.. 308
范例说明...... 308
运行结果...... 308
范例程序...... 308
扩展学习...... 310
6.9 访问本机内存与存储卡——File的创建与删除...... 311
范例说明...... 311
运行结果...... 311
范例程序...... 312
扩展学习...... 319
6.10 实现可定时响起的闹钟——PendingIntent与
AlarmManager的运用...... 319
范例说明...... 319
运行结果...... 319
范例程序...... 320
扩展学习...... 326
6.11 黑名单来电自动静音——PhoneStateListener与AudioManager. 326
范例说明...... 326
运行结果...... 327
范例程序...... 327
扩展学习...... 330
6.12 手机翻背面即静音震动——SensorListener及
AudioManager整合应用...... 330
范例说明...... 330
运行结果...... 331
范例程序...... 331
扩展学习...... 336
6.13 指定时间置换桌面背景——多AlarmManager事件处理...... 337
范例说明...... 337
运行结果...... 337
范例程序...... 338
扩展学习...... 347
6.14 判断发送短信后的状态——BroadcastReceiver聆听PendingIntent. 347
范例说明...... 347
运行结果...... 347
范例程序...... 348
扩展学习...... 351
6.15 后台服务送出广播信息——sendBroadcast与BroadcastReceiver. 353
范例说明...... 353
运行结果...... 353
范例程序...... 354
扩展学习...... 359
6.16 开机程序设计——receiver与intent-filter协同作业...... 360
范例说明...... 360
运行结果...... 360
范例程序...... 360
扩展学习...... 362
6.17 双向短信常驻服务——Service与receiver实例...... 362
范例说明...... 362
运行结果...... 363
范例程序...... 363
扩展学习...... 373
第7章 娱乐多媒体...... 374
7.1 访问Drawable资源的宽高——ContextMenu与Bitmap的应用...... 375
范例说明...... 375
运行结果...... 375
范例程序...... 375
扩展学习...... 378
7.2 绘制几何图形——使用android.graphics类...... 378
范例说明...... 378
运行结果...... 378
范例程序...... 379
扩展学习...... 382
7.3 手机屏幕保护程序——Fade In/ Fade Out特效与运行线程...... 384
范例说明...... 384
运行结果...... 384
范例程序...... 384
扩展学习...... 394
7.4 用手指移动画面里的照片——onTouchEvent事件判断...... 396
范例说明...... 396
运行结果...... 397
范例程序...... 397
扩展学习...... 400
7.5 加载存储卡的Gallery相簿——File ArrayList. 401
范例说明...... 401
运行结果...... 401
范例程序...... 401
扩展学习...... 404
7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT
取回InputStream.... 405
范例说明...... 405
运行结果...... 406
范例程序...... 406
扩展学习...... 407
7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery... 408
范例说明...... 408
运行结果...... 408
范例程序...... 408
扩展学习...... 412
7.8 调整音量大小声——AudioManager控制音量...... 412
范例说明...... 412
运行结果...... 413
范例程序...... 413
扩展学习...... 416
7.9 播放mp3资源文件——raw文件夹与MediaPlayer的使用...... 417
范例说明...... 417
运行结果...... 417
范例程序...... 417
扩展学习...... 421
7.10 播放存储卡里的mp3音乐——MediaPlayer.setDataSource.. 422
范例说明...... 422
运行结果...... 422
范例程序...... 423
扩展学习...... 427
7.11 自制录音/播放录音程序——MediaRecorder与AudioEncoder. 428
范例说明...... 428
运行结果...... 428
范例程序...... 428
扩展学习...... 434
7.12 通过收到短信开始秘密录音——MediaRecorder与
BroadcastReceiver实例...... 434
范例说明...... 434
运行结果...... 435
范例程序...... 435
扩展学习...... 439
7.13 内置影片播放器载入3gp电影——VideoView Widget. 439
范例说明...... 439
运行结果...... 439
范例程序...... 440
扩展学习...... 442
7.14 自制3gp影片播放器——MediaPlayer与实现SurfaceView.... 444
范例说明...... 444
运行结果...... 445
范例程序...... 445
扩展学习...... 450
7.15 相机预览及拍照临时文件——Camera及PictureCallback事件...... 450
范例说明...... 450
运行结果...... 451
范例程序...... 451
扩展学习...... 458
第8章 当Android与Internet接轨...... 460
8.1 HTTP GET/POST传递参数——HTTP连接示范...... 461
范例说明...... 461
运行结果...... 461
范例程序...... 461
扩展学习...... 465
8.2 在程序里浏览网页——WebView.loadUrl. 465
范例说明...... 465
运行结果...... 466
范例程序...... 466
扩展学习...... 467
8.3 嵌入HTML标记的程序——WebView.loadData.. 468
范例说明...... 468
运行结果...... 469
范例程序...... 469
扩展学习...... 470
8.4 设计前往打开网页功能——Intent与Uri.parse.. 471
范例说明...... 471
运行结果...... 471
范例程序...... 472
扩展学习...... 474
8.5 将网络图像网址放入Gallery中显示——URL、
URLConnection、BaseAdapter. 474
范例说明...... 474
运行结果...... 475
范例程序...... 475
扩展学习...... 477
8.6 即时访问网络图文件展示——HttpURLConnection... 478
范例说明...... 478
运行结果...... 478
范例程序...... 478
扩展学习...... 480
8.7 手机气象局,实时卫星云图——HttpURLConnection与
URLConnection和运行线程...... 480
范例说明...... 480
运行结果...... 480
范例程序...... 481
扩展学习...... 483
8.8 通过网络播放MP3——Runnable存储FileOutputStream技巧...... 484
范例说明...... 484
运行结果...... 484
范例程序...... 484
扩展学习...... 491
8.9 设置远程下载音乐为手机铃声——RingtoneManager与
铃声存放路径...... 492
范例说明...... 492
运行结果...... 492
范例程序...... 492
扩展学习...... 498
8.10 远程下载桌面背景图案——URLConnection与
setWallpaper()搭配...... 499
范例说明...... 499
运行结果...... 499
范例程序...... 500
扩展学习...... 502
8.11 将手机文件上传至网站服务器——模拟HTTP FORM的
POST ACTION.... 503
范例说明...... 503
运行结果...... 503
范例程序...... 504
扩展学习...... 506
8.12 移动博客发布器——以XML-RPC达成远程过程调用...... 508
范例说明...... 508
运行结果...... 510
范例程序...... 510
扩展学习...... 514
8.13 移动RSS阅读器——利用SAXParser解析XML... 515
范例说明...... 515
运行结果...... 515
范例程序...... 515
扩展学习...... 526
8.14 远程下载安装Android程序——APK Installer的应用...... 527
范例说明...... 527
运行结果...... 528
范例程序...... 528
扩展学习...... 533
8.15 手机下载看3gp影片——Runnable混搭SurfaceView.... 534
范例说明...... 534
运行结果...... 534
范例程序...... 535
扩展学习...... 543
8.16 访问网站Login API——远程服务器验证程序运行权限...... 544
范例说明...... 544
运行结果...... 544
范例程序...... 544
扩展学习...... 550
8.17 地震速报!——HttpURLConnection与Service侦测服务...... 551
范例说明...... 551
运行结果...... 552
范例程序...... 552
扩展学习...... 561
第9章 Google服务与Android混搭...... 563
9.1 Google帐号验证Token——AuthSub... 564
范例说明...... 564
运行结果...... 564
范例程序...... 564
扩展学习...... 572
9.2 Google搜索——AutoCompleteTextView与Google Search API. 573
范例说明...... 573
运行结果...... 573
范例程序...... 573
扩展学习...... 578
9.3 前端产生QR Code二维条形码——Google Chart API. 579
范例说明...... 579
运行结果...... 579
范例程序...... 579
扩展学习...... 583
9.4 以经纬度查找目的地位置——GeoPoint与MapView的搭配运用...... 584
范例说明...... 584
运行结果...... 585
范例程序...... 585
扩展学习...... 588
9.5 GPS Google地图——LocationListener与MapView实时更新...... 589
范例说明...... 589
运行结果...... 589
范例程序...... 589
扩展学习...... 594
9.6 移动版Google Map——Geocoder反查Address对象...... 595
范例说明...... 595
运行结果...... 595
范例程序...... 595
扩展学习...... 599
9.7 规划导航路径——Directions Route.. 602
范例说明...... 602
运行结果...... 603
范例程序...... 603
9.8 移动设备上的Picasa相册——Google Picasa API. 610
范例说明...... 610
运行结果...... 611
范例程序...... 611
扩展学习...... 626
9.9 随身翻译机——Google Translate API. 628
范例说明...... 628
运行结果...... 628
范例程序...... 628
第10章 创意Android程序设计...... 634
10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度...... 635
范例说明...... 635
运行结果...... 635
范例程序...... 635
扩展学习...... 641
10.2 GPS轨迹记录器——利用LocationListener在地图上
画图并换算距离...... 642
范例说明...... 642
运行结果...... 642
范例程序...... 643
扩展学习...... 651
10.3 女性贴身看护——AlarmManager、DatePicker、TimePicker. 652
范例说明...... 652
运行结果...... 653
范例程序...... 653
扩展学习...... 664
10.4 手机QR Code二维条形码生成器——Canvas与
SurfaceHolder绘图...... 665
范例说明...... 665
运行结果...... 665
范例程序...... 665
扩展学习...... 669
10.5 Android QR Code二维条形码扫描仪——
BitmapFactory.decodeByteArray... 670
范例说明...... 670
运行结果...... 671
范例程序...... 671
扩展学习...... 681
10.6 上班族今天中午要吃什么——热量骰子地图...... 682
范例说明...... 682
运行结果...... 683
范例程序...... 683
展学习...... 708
10.7 掷杯筊——把手机放在空中甩事件处理...... 709
范例说明...... 709
运行结果...... 710
范例程序...... 710
扩展学习...... 715
2016-09-15
Beginning Android 4 Application Development
Understand Android OS for both smartphone and tablet programming This fast-paced introduction to the newest release of Android OS gives aspiring mobile app developers what they need to know to program for today's hottest Android smartphones and tablets. Android 4 OS is, for the first time, a single solution for both smartphones and tablets, so if you master the information in this helpful guide, you'll be well on your way to successful development for both devices. From using activities and intents and creating rich user interfaces to working with SMS, messaging APIs, and the Android SDK, what you need is here. Provides clear instructions backed by real-world programming examples Begins with the basics and covers everything Android 4 developers need to know for both smartphones and tablets Explains how to customize activities and intents, create rich user interfaces, and manage data Helps you work with SMS and messaging APIs, the Android SDK, and using location-based services Details how to package and publish your applications to the Android Market Beginning Android 4 Application Development pares down the most essential steps you need to know so you can start creating Android applications today.
2016-08-27
linux网路编程 中文 23M 版
第1 章Linux操作系统概述................... .......................................................................... 2
1.1 Linux发展历史........................................................ 2
1.1.1 Linux的诞生和发展.............................................. 2
1.1.2 Linux名称的由来........................................ ........ 3
1.2 Linux的发展要素...................................................... 3
1.2.1 U N I X操作系统.................................................. 4
1.2.2 Minix操作系统.................................................. 4
1.2.3 POSIX 标准.....................................................4
1.3 Linux 与 U N I X 的异同.................................................. 5
1 . 4 操作系统类型选择和内核版本的选择..................................... 5
1.4.1常见的不同公司发行的Linux异同................................. 6
1.4.2 内核版木的选择..................................................6
1.5 Linux的系统架构...................................................... 7
1.5.1 Linux内核的主要模块............................................ 7
1.5.2 Linux的文件结构................................................ 9
1.6 G N U 通用公共许可证..................................................10
1.6.1 G P L许可证的历史.............................................. 10
1.6.2 G P L 的白由理念................................................ 10
1.6.3 G P L 的基本条款................................................ 11
1.6.4关于G P L 许町证的争议......................................... 12
1.7 Linux软件开发的可借鉴之处........................:.................. 12
1-8 .................................................................13
第2 章Linux编程环境....................................................................................................14
2.1 Linux环境下的编辑器................................................. 14
2.1.1 v i m使用简介...................................................14
2 . 1 . 2使用v i m建立文件.............................................. 15
2 . 1 . 3使用v i m编辑文本.............................................. 16
2.1.4 v i m的格式设置.................................................18
目录
2.1.5 vim 配置文件....................................................................................................... ..
2 . 1 . 6 使用其他编辑器...................................................................................................
2.2 Linux下的G C C 编译器工具集.......................................... 19
2.2.1 G C C 简介......................................................19
2 . 2 . 2 编译程序的基本知识......................................................................................... 21
2.2.3 .单个文件编译成执行文件........................................ 22
2 . 2 . 4编译生成目标文件.............................................. 22
2 . 2 . 5多文件编译............ ........................................ 23
2.2.6 预处理........................................................ 24
2 . 2 . 7编译成汇编语言.................................................24
2 . 2 . 8生成和使用静态链接库.......................................... 25
2 . 2 . 9生成动态链接库.................................................26
2.2.10动态加载库................................................... 29
2.2.11 G C C 常用选项................................................ 31
2 . 2 . 1 2编译环境的搭建................................................33
2.3 Makefile 文件简介.....................................................34
2.3.1 一个多文件的工程例子............................. ............. 34
2 . 3 . 2多文件工程的编译.............................................. 36
2.3.3 Makefile 的规则.................................................37
2.3.4 Makefile 中使用变量............................................ 39
2 . 3 . 5搜索路径...................................................... 43
2 . 3 . 6自动推导规则.................................................. 44
2.3.7 递归 make......................................................44
2.3.8 Makefile 中的函数.............................................. 46
2 . 4 用G D B 调试程序..................................................... 47
2 . 4 . 1编译可调试程序.................................................48
2.4.2 使用G D B 调试程序............................................. 49
2.4.3 G D B 常用命令..................................................52
2.4.4 其他的 G D B ....................................................59
2.5 顿.................................................................60
第3 章文件系统简介........................................................ 61
3.1 Linux下的文件系统.................................................. 61
3.1.1 Linux下文件的内涵............................................. 61
3.1.2 文件系统的创建................................................. 62
3 . 1 . 3挂接文件系统.................................................. 64
3.1.4 索弓丨节点 inode.......... •'...................................... 65
3.1.5 普通文件...................................................... 66
3 . 1 . 6设备文件...................................................... 66
3 . 1 . 7虚拟文件系统V F S .............................................. 68
目录
3.2 文件的通用操作方法................................................. 72
3 . 2 . 1文件描述符.................................................... 72
3 . 2 . 2打开创建文件open()、create()函数................................ 72
3 . 2 . 3关闭文件closeO函数............................................ 76
3 . 2 . 4读取文件read()函数............................................. 77
3.2.5 写文件write()函数.............................................. 79
3 . 2 . 6文件偏移lseekO函数............................................ 80
3 . 2 . 7获得文件状态fstat()函数.....................•'................... 83
3 . 2 . 8文件空间映射m m a p ()函数....................................... 85
3 . 2 . 9文件属性fcntl()函数............................................. 88
3. 2 . 1 0文件输入输出控制ioctl()函数....................................92
3.3 socket文件类型....................................................... 93
3.4 /J、@ .................................................................93
第4 章程序、进程和线程.................................................... 94
4 . 1 程序、进程和线程的概念.............................................. 94
4 . 1 . 1程序和进程的差别............................................ ’."94
4.1.2 Linux环境下的进程............................................. 95
4 . 1 . 3进程和线程.................................................... 96
4 . 2 进程产生的方式...................................................... 96
4.2.1 进程号........................................................ 96
4.2.2 进蟬复制 fork()................................................. 97
4.2.3 system()方式....................................................98
4.2.4 进程执行exec()函数系列......................................... 99
4 . 2 . 5所有用户态进程的产生进程init................................. 100
4 . 3 进程间通信和同步................................................... 101
4.3.1 半双工管道................................................... 101
4.3.2 命名管道..................................................... 107
4.3.3 消息队列..................................................... 108
4 . 3 . 4消息队列的一个例子........................................... 114
4.3.5 信号量......................... .............................. 116
4 . 3 . 6共享内存..................................................... 121
4.3.7 信号.......................................................... 124
4.4 Linux下的线程...................................................... 127
4 . 4 . 1多线程编程实例................................................127
4.4.2 Linux 下线程创建函数 pthread_create()............................ 129
4.4.3 线程的结束函数 pthread_join()和 pthread_exit().....................129
4.4.4 线程的属性................................................... 130
4 . 4 . 5线程间的互斥................................................. 132
4 . 4 . 6线程中使用信号量..............................................133
• VII •
n 录
4-5 純............................................................... 136
第2 篇Linux用户层网络编程
第5 章T C P / I P协议族简介.................................................. 138
5.1 O S I网络分层介绍....................................................138
5.1.1 O S I网络分层结构............................................. 138
5.1.2 O S I的7 层网络结构........................................... 139
5.1.3 O S I参考模塑中的数据传输..................................... 140
5.2 TCP/IP 协议找....................................................... 141
5.2.1 TCP/IP协议栈参考模型......................................... 141
5 . 2 . 2主机到网络层协议............................................. 143
5.2.3 IP 协议....................................................... 144
5.2.4 网际控制报文协议(ICMP) .................................... 146
5.2.5 传输控制协议(TCP) ......................................... 150
5 . 2 . 6用户数据报文协议(U D P ) ..................................... 154
5 . 2 . 7地址解析协议(A R P) ......................................... 156
5.3 IP地址分类与T C P / U D P端U .......................................... 158
5 . 3 . 1因特网中IP地址的分类........................................ 159
5.3.2 子网掩码(subnet mask address) ................................ 161
5.3.3 IP地址的配置................................................. 162
5.3.4 端口......................................................... 163
5 . 4 主机字节序和网络字节序............................................. 163
5 . 4 . 1字节序的含义................................................. 164
5 . 4 . 2网络字节序的转换............................................. 164
5.5 /J、@ ........................................................... .....166
第6 章应用层网络服务程序简介...................... ;..................... 167
6.1 H T T P协议和服务....................................................167
6.1.1 H T T P 协议概述.................................................167
6.1.2 H T T P协议的基本过程.......................................... 168
6.2 F T P协议和服务......................................................170
6.2.1 F T P协议概述..................................................170
6.2.2 F T P协议的工作模式........................................... 172
6.2.3 F T P协议的传输方式........................................... 172
6.2.4 —个简单的F T P过程........................................... 173
6.2.5 常用的F T P工具............................................... 173
6.3 T E L N E T协议和服务................................................. 174
6 . 3 . 1远程登录的基本概念........................................... 174
• VIII •
目录
6 . 3 . 2使用T E L N E T协议进行远程登录的工作过程...................... 174
6.3.3 T E L N E T 协议................................................. 174
6.4 N F S 协议和服务......................................................176
6.4.1 安装N F S服务器和客户端...................................... 176
6 . 4 . 2服务器端的设定................................................176
6 . 4 . 3客户端的操作................................................. 177
6.4.4 showmount 命令................................................177
6 . 5 自定义网络服务..................................................... 177
6.5.1 xinetd/inetd....................................................178
6.5.2 xinetd月艮务配置................................................178
6 . 5 . 3自定义网络服务............................................... 179
6.6 小结................................................................180
第7 章T C P 网络编程基础...............................................181
7.1 套接字编程基础知识................................................. 181
7.1.1 套接字地址结构................................................181
7 . 1 . 2用户层和内核层交互过程....................................... 183
7.2 T C P 网络编程流程................................................... 184
7.2.1 T C P网络编程架构............................................. 184
7 . 2 . 2创建网络插口函数socket()...................................... 186
7.2.3 绑定一个地址端口对bind()......................................189
7.2.4 监听本地端口 listen............................................ 192
7.2.5 接受一个网络请求acceptO...................................... 194
7 . 2 . 6连接H 标网络服务器connect()................................... 199
7.2.7 写入数据函数writeO........................................... 200
7 . 2 . 8读取数据函数readO............................................ 201
7 . 2 . 9关闭套接字函数close()......................................... 201
7 . 3 服务器/客户端的简单例子............................................ 202
7.3.1 例子功能描述........................................... ......202
7 . 3 . 2服务器网络程序................................................203
7 . 3 . 3服务器读取和显示字符串....................................... 205
7 . 3 . 4客户端的网络程序............................................. 205
7 . 3 . 5客户端读取和显示字符串....................................... 206
7 . 3 . 6编译运行程序................................................. 206
7 . 4 截取信号的例子..................................................... 207
7.4.1 信号处理..................................................... 207
7.4.2 信号 SIGPIPE..................................................208
7.4.3 信号 SI G INT.................................... •.............. 208
7.5 /J、g ................................................................208
• IX •
第8 章服务器和客户端信息的获取...........................................210
8 . 1 字节序............................................................................................................................210
8 . 1 . 1 大端字节序和小端字节序...............................................................................210
8 . 1 . 2 字节序转换函数................................................................................................212
8.1.3 一个字节序转换的例子......................................... 214
8 . 2 字符串I P地址和二进制IP地址的转换................................. 217
8.2.1 inet_xxx()函数................................................. 217
8.2.2 inet_pton()和 inet_ntop()函数.....................................219
8 . 2 . 3使用8.2.1节地址转换函数的例子............................ .•••••••220
8.2.4 使用函数 inet_pton()和函数 inet—ntop()的例子......................223
8 . 3 套接字描述符判定函数issockettype()................................... 223
8 . 3 . 1进行文件描述符判定的函数issockettypeO.........................224
8.3.2 main()g| 数.................................................... 224
8.4 IP地址与域名之间的相互转换................................................................................. 225
8.4.1 D N S 原理.....................................................225
8 . 4 . 2获取主机信息的函数........................................... 226
8 . 4 . 3使用主机名获取主机信息的例子................................. 228
8 . 4 . 4函数gethostbyname()不可重入的例子............................. 230
8 . 5 协议名称处理函数................................................... 232
8.5.1 xxxprotoxxx()函数............................................. 232
8 . 5 . 2使用协议族函数的例子......................................... 233
8.6 小结................................................................236
第9 章数据的I O和复用....................................................237
9.1 IO 函数.......................................................................................................................... 237
9 . 1 . 1使用recv()函数接收数据........................................237
9 . 1 . 2 使用sendO函数发送数据................................................................................239
9 . 1 . 3 使用readvO函数接收数据..............................................................................240
9 . 1 . 4 使用writev()闲数发送数据.............................................................................240
9 . 1 . 5使用recvmsgO函数接收数据.................................... 242
9 . 1 . 6 使用sendmsgO函数发送数据.........................................................................244
9.1.7 I O函数的比较.................................................246
9.2 使用I O函数的例子.................................................. 246
9 . 2 . 1客户端处理框架的例子......................................... 246
9 . 2 . 2服务器端程序框架............................................. 248
9.2.3 使用 recv()和 send()函数........................................ 249
9.2.4 使用 readv()和 write()函数.......................................251
9.2.5 使用 recvmsgO和 sendmsg()函数..................................253
9.3 10 模型............................................................. 256
9 . 3 . 1阻塞I O模型.................................................. 256
• X •
目录
9 . 3 . 2非阻塞1 0模型................................................ 257
9.3.3 10 复用....................................................... 257
9 . 3 . 4信号驱动I O模型.............................................. 258
9 . 3 . 5异步I O模型.................................................. 258
9.4 select()函数和 pselect()函数............................................ 259
9.4.1 select()闲数.................................................... 259
9.4.2 pselect()函数...................................................261
9.5 poll()函数和 ppoll()函数............................................... 262
9.5.1 poll()函数..................................................... 263
9.5.2 p p o l l O ® ^ .................................................... 264
9 . 6 非阻塞编程.......:.................................................. 264
9 . 6 . 1非阻塞方式程序设计介绍....................................... 264
9 . 6 . 2非阻塞程序设计的例子......................................... 264
9.7 小结................................................................266
第1 0章基于U D P 协议的接收和发送...................................... ,...267
10.1 U D P 编程框架......................................................267
10.1.1 U D P 编程框图................................................ 267
10.1.2 U D P 服务器编程框架.......................................... 269
10.1.3 U D P 客户端编程框架.......................................... 269
10.2 U D P 协议程序设计的常用函数....... :................................270
10.2.1建立套接字socket()和绑定套接字bind()......................... 270
10.2.2 接收数据 recvfrom()/recv()......................................270
10.2.3 发送数据 sendtoO/sendO...............................................................................275
10.3 U D P 接收和发送数据的例子.......................................... 279
10.3.1 U D P 服务器端................................................ 279
10.3.2 U D P 服务器端数据处理........................................280
10.3.3 U D P 客户端..................................................281
10.3.4 U D P 客户端数据处理.......................................... 281
10.3.5 测试 U D P 程序............................................... 282
10.4 U D P 协议程序设计中的几个问题......................................282
10.4.1 U D P 报文丢失数据............................................ 282
10.4.2 U D P 数据发送中的乱序........................................284
10.4.3 U D P 协议中的 connect()函数....................................287
10.4.4 U D P 缺乏流量控制............................................ 287
10.4.5 U D P 协议中的外出网络接口....................................289
10.4.6 U D P 协议中的数据报文截断....................................290
10.5 小结.............................................................. 291
第1 1章高级套接字........................................................ 292
11.1 U N I X 域函数.......................................................292
• XI •
目录
11.1.1 UNIX域函数的地址结构..............................................................................292
1 1 .1 .2套接字函数.................................................................................................... 293
11 . 1 . 3 使用UNIX域函数进行套接字编程............................................................ 293
11.1.4传递文件描述符.............................................. 296
11.1.5 socketpair()闲数............................................................................................. 296
11.1.6传递文件描述符的例子.................................................................................297
11.2 广播............................................................................................................................. 302
11.2.1 广播的IP地址............................................................................................... 302
11.2.2广播与单播的比较......................................................................................... 303
11.2.3 广播的示例.....................................................................................................304
1 1 . 3多播................................................
11.3.1多播的概念.......................
1 1 .3 .2广域网的多播...................
11.3.3多播的编程.......................
11.3.4 内核中的多播...................
11.3.5 一个多播例子的服务器端
11.3.6 —个多播例子的客户端••••
1 1 . 4数据链路层访问...........................
11.4.1 SOCK_PACKET 类型……
11.4.2设置套接U 以捕获链路帧的编程方法............................ 320
11.4.3从套接口读取链路帧的编程方法................................ 321
11.4.4定位IP包头的编程方法....................................... 322
11.4.5定位T C P报头的编程方法..................................... 323
11.4.6定位U D P 报头的编程方法..................................... 325
11.4.7定位应用层报文数据的编程方法................................ 326
11.4.8使用S O C K _ P A C K E T编写A R P 请求程序的例子................. 326
11.5 329
第1 2章套接字选项........................................................330
12.1 获取和设置套接字选项 getsocketopt()/setsocketopt()......................330
12.1.1 getsockopt()函数和 setsocketopt()函数的介绍......................330
12.1.2套接字选项................................ ..................331
12.1.3套接字选项简单示例.......................................... 332
12.2 S O L ^ S O C K E T 协议族选项........................................... 336
12.2.1 S O—B R O A D C A S T 广播选项....................................336
12.2.2 S O—D E B U G 调试选项......................................... 337
12.2.3 S O _ D O N T R O U T E 不经过路由选项............................. 337
12.2.4 S O—E R R O R 错误选项......................................... 338
12.2.5 S O _ K E E P A L I V E 保持连接选项................................. 338
12.2.6 S O L I N G E R缓冲区处理方式选项...............................339
• XII •
U录
12.2.7 S O _ O O B I N L I N E带外数据处理方式选项.........................342
12.2.8 S O _ R C V B U F 和 S O一S N D B U F 缓冲区大小选项................... 342
12.2.9 S O _ R C V L O W A T 和 S O _ S N D L O W A T 缓冲区下限选项............ 343
12.2.10 S O _ R C V T I M E O 和 S O _ S N D T I M E O 收发超时选项............... 343
12.2.11 S O _ R E U S E R A D D R 地址重用选项............................. 344
12.2.12 S O—E X C L U S I V E A D D R U S E 端 U 独占选项...................... 344
12.2.13 S 0 _ T Y P E套接字类型选项.................................... 345
12.2.14 SO_BSDCOMPAT 与 BSD 銮接字兼容选项............................................345
12.2.15 S O _ B I N D T O D E V I C E套接字网络接口绑定选项................. 345
12.2.16 S O _ P R I O R I T Y套接字优先级选项............................. 346
12.3 I P P R O T O J P 选项...................................................347
12.3.1 IP-HD RT NCL 选项............................................ 347
12.3.2 IP O P T N I O S 选项............................................ 347
12.3.3 IP_TOS 选项................................................. 347
12.3.4 IP_TTL 选项..................................................347
12.4 IPP RO TO_TCP 选项................................................. 348
12.4.1 T C P _ K E E P A L I V E 选项................... ..................... 348
12.4.2 T C P _ M A X R T 选项............................................ 348
12.4.3 T C P—M A X S E G 选项.......................................... 349
12.4.4 T C P _ N O D E L A Y 和 T C P _ C O R K 选项............................ 349
1 2 . 5使用套接字选项.................................................... 351
12.5.1设置和获取缓冲区大小........................................ 351
12.5.2获取套接字类型的例子........................................ 355
12.5.3使用套接字选项的综合例子.................................... 356
12.6 ioctl()函数.......................................................... 361
12.6.1 ioctl()函数的命令选项......................................... 361
12.6.2 ioctl()函数的 IO 请求.......................................... 363
12.6.3 ioctl()函数的文件请求......................................... 365
12.6.4 ioctl()函数的网络接U 请求:.....................................365
12.6.5使用ioctl()函数对A R P 高速缓存操作........................... 372
12.6.6使用ioct〖()函数发送路由表请求.................................374
12.7 fcntl()函数......................................................... 374
12.7.1 fcntl()函数的选项............................................. 375
12.7.2使用fcntl()函数修改套接字非阻塞属性.......................... 375
12.7.3使用fcntlO函数设置信号属主...................................376
12.8 小结...............................................................376
第13章原始套接字......................................................................................................377
13.1 概述...............................................................377
1 3 . 2原始套接字的创建.................................................. 379
• XIII •
目录
13.2.1 S O C K J I A W 选项............................................. 379
13.2.2 IPJHDR 1NCL 套接字选项......................................379
13.2.3 不需要bindO函数............................................. 380
1 3 . 3原始套接字发送报文................................................ 380
13.4 原始套接字接收报文................................................ 380
1 3 . 5原始套接字报文处理时的结构........................................ 381
13.5.1 1 P头部的结构........................................... ..... 381
13.5.2 I C M P 头部结构............................................... 382
13.5.3 U D P 头部结构................................................ 384
13.5.4 T C P 头部结构................................................ 386
13.6 ping 的例子........................................................ 387
13.6.1 协议格式............................................. •••..... 388
13.6.2 校验和函数.................................................. 389
13.6.3 设置I C M P发送报文的头部.................................... 390
13.6.4剥离I C M P接受报文的头部.................................... 391
13.6.5 计算时间差.................................................. 392
13.6.6发送报文.................................................... 393
13.6.7接收报文.................................................... 394
13.6.8主函数过程.................................................. 395
13.6.9 主函数 main()................................................ 397
13.6.10 编译测试................... ................................ 400
1 3 . 7洪水攻击.......................................................... 400
13.8 I C M P洪水攻击..................................................... 401
13.8.1 I C M P洪水攻击的原理.........................................401
13.8.2 I C M P洪水攻击的例子.........................................401
13.9 U D P 洪水攻市......................................................405
13.10 S Y N 洪水攻击.....................................................409
13.10.1 S Y N 洪水攻击的原理.........................................409
13.10.2 S Y N 洪水攻击的例子.........................................409
13.11 小结............................................................. 413
第1 4章服务器模型选择....................................................414
1 4 . 1循环服务器:........................................................ 414
14.1.1 U D P 循环服务器.............................................. 414
14.1.2 T C P循环服务器.............................................. 417
1 4 . 2简单并发服务器.................................................... 420
14.2.1并发服务器的模型............................................ 420
14.2.2 U D P 并发服务器.............................................. 420
14.2.3 T C P并发服务器.............................................. 423
14.3 T C P的高级并发服务器模型.......................................... 426
. XIV •
目录
14.3.1 单客户端单进程,统一 accept()................................. 426
14.3.2 单客户端单线程,统一accept()................................. 429
1 4.3.3单客户端单线程,各线程独自acceptO,使用互斥锁.............. 431
14.4 I O复用循环服务器..................................................435
14.4.1 I O复用循环服务器模型介绍....................................435
14.4.2 I O复用循环服务器模型的例子..................................436
14.5 440
第1 5章IPv6简介.......................... ...............................441
15.1 IPv4 的缺陷........................................................ 441
15.2 IPv6 的特点........................................................ 442
15.3 IPv6 的地址......................:.................................. 443
15.3.1 IPv6的单播地址.............................................. 443
15.3.2可聚集全球单播地址.......................................... 443
15.3.3 本地使用单播地址............................................ 444
15.3.4 兼容性地址.................................................. 445
15.3.5 IPv6 多播地址................................................ 446
15.3.6 IPv6 任播地址................................................ 446
15.3.7主机的多个IPv6地址......................................... 447
15.4 IPv6 的头部........................................................ 447
15.4.1 IPv6 头部格式........................................ ........ 447
15.4.2 与IPv4头部的对比........................................... 448
15.4.3 IPv6 的 T C P 头部............................................. 449
15.4.4 IPv6 的 U D P 头部............................................. 449
15.4.5 IPv6 的 I C M P 头部............................................ 449
15.5 IPv6运行环境...................................................... 451
15.5.1 加载 IPv6 模块............................................... 451
15.5.2查看是否支持IPv6............................................ 452
15.6 IPv6的结构定义.................................................... 453
15.6.1 IPv6的地址族和协议族........................................453
15.6.2套接字地址结构...............................................453
15.6.3 地址兼容考虑................................................ 455
15.6.4 IPv6 通用地址................................................ 455
15.7 IPv6的套接字函数.................................................. 456
15.7.1 socketO 函数.................................................. 456
15.7.2没有发生改变的函数.......................................... 456
15.7.3 发生改变的函数...............................................457
15.8 IPv6的套接字选项.................................................. 457
15.8.1 IPv6的套接字选项............................................ 457
15.8.2 单播跳限 I P V 6 _ U N I C A S T _ H O P S............................... 459
• XV •
目录
15.8.3发送和接收多播包............................................ 459
15.8.4 IPv6中获得时间戳的ioctl命令................................. 460
15.9 IPv6的库函数...................................................... 460
15.9.1地址转换函数的差异.......................................... 460
15.9.2域名解析函数的差异.......................................... 461
15.9.3 测试宏...................................................... 463
15.10 IPv6的编程的一个简单例子......................................... 463
15.10.1 服务器程序................................................. 464
15.10.2 客户端程序................................................. 465
15.10.3 编译调试................................................... 467
15.11 小结............................................................. 467
第3 篇Linux内核网络编程
第16章Linux内核中网络部分结构以及分布...............................................................470
16.1 概述...............................................................470
16.1.1代码目录分布................................................ 470
16.1.2内核中网络部分流程简介...................................... 472
16.1.3系统提供修改网络流程点...................................... 474
16.1.4 sk_buff 结构..................................................475
16.1.5 网络协议数据结构inet_protosw................................. 478
1 6 . 2软中断C P U 报文队列及其处理....................................... 479
16.2.1 Linux内核网络协议层的层间传递手段— 软中断................ 479
1 6 . 2 . 2网络收发处理软中断的实现机制................................ 481
16.3 socket数据如何在内核中接收和发送...................................482
16.3.1 socket()的初始化.............................................. 482
16.3.2 接收网络数据recv()........................................... 482
16.3.3发送网络数据sendO........................................... 483
16.4 小结...............................................................484
第17章neffilter框架内报文处理.................................................................................485
17.1 netfilter............................................................ 485
17.1.1 netfilter 简介..................................................485
17.1.2 netfilter 框架..................................................486
17.1.3 netfilter 检査时的表格.........;................................487
17.1.4 netfilter 的规则................................................487
17.2 iptables 和 netfilter...................................................488
17.2.1 iptables 简介..................................................488
17.2.2 iptables 的表和链............................................. 488
• XVI •
目录
17.2.3 使用iptables设置过滤规则.....................................489
1 7 . 3内核模块编程...................................................... 492
17.3.1 内核 “Hello, World! ”程序................................... 492
17 . 3 . 2内核模块的基本架构.......................................... 494
1 7 . 3 . 3内核模块加载和卸载过程...................................... 496
1 7 . 3 . 4内核模块初始化和清理函数.................................... 497
1 7 . 3 . 5内核模块初始化和淸理过程的容错处理.......................... 497
1 7 . 3 . 6内核模块编译所需的Makefile.................................. 498
17.4 5 个钩子点......................................................... 499
17.4.1 netfilter 的 5 个钩子,点......................................... 499
17.4.2 N F H O O K 'k .................................................500
17.4.3钩了.的处理规则.............................................. 501
1 7 . 5注册/注销钩子...................................................... 502
17.5.1 结构 nf_hook_ops............................................. 502
17.5.2注册钩子.................................................... 503
17.5.3 注销钩子.................................................... 504
17.5.4注册注销函数................................................ 504
1 7 . 6钩子的简单处理例子................................................ 505
17.6.1 功能描述.................................................... 505
17.6.2 需求分析.................................................... 506
17.6.3 ping回显屏蔽实现............................................ 506
17.6.4禁止向目的IP地址发送数据的实现............................. 506
17.6.5 端口关闭实现................................................ 506
17.6.6动态配置实现................................................ 508
17.6.7可加载内核实现代码.......................................... 509
17.6.8应用层测试代码实现.......................................... 516
17.6.9 编泽运行.................................................... 516
17.7 •点多个钩子的优先级...............................................517
1 7 . 8校验和问题........................................................ 518
17.9 小结.... ...........................................................518
第4篇综合案例
第1 8章一个简单W e b 服务器的例子S H T T P D ............................... 522
18.1 S H T T P D的需求分析................................................ 522
18.1.1 S H T T P D启动参数可动态配置的需求............................ 523
18.1.2 S H T T P D的多客户端支持的需求................................ 524
18.1.3 S H T T P D支持方法的需求...................................... 525
18.1.4 S H T T P D支持的H T T P协议版本的需求.......................... 526
• XVII •
0 录
18.1.5 S H T T P D支持头部的需求...................................... 527
18.1.6 S H T T P D 定位 URI 的需求......................................527
18.1.7 S H T T P D 支持 CGI 的需求......................................528
18.1.8 S H T T P D错误代码的需求............... ....................... 529
18.2 S H T T P D的模块分析和设计.......................................... 530
18.2.1 S H T T P D 的主函数............................................ 530
18.2.2 S H T T P D命令行解析的分析设计................................ 531
18.2.3 S H T T P D配置文件解析的分析设计.............................. 532
18.2.4 S H T T P D的多客户端支持的分析设计............................ 534
18.2.5 S H T T P D头部解析的分析设计.................................. 536
18.2.6 S H T T P D 对 URI 的分析设计....................................537
18.2.7 S H T T P D支持方法的分析设计.................................. 537
18.2.8 S H T T P D支持C G I的分析设计................................. 538
18.2.9 S H T T P D错误处理的分析设计................................. <540
18.3 S H T T P D各模块的实现.................................... :......... 542
18.3.1 S H T T P D命令行解析的实现.................................... 543
18.3.2 S H T T P D文件配置解析的实现.................................. 545
18.3.3 S H T T P D的多客户端支持的实现................................ 547
18.3.4 S H T T P D所请求U R I解析的实现............................... 551
18.3.5 S H T T P D方法解析的实现...................................... 552
18.3.6 S H T T P D响应方法的实现...................................... 552
18.3.7 S H T T P D 支持 CGI 的实现......................................556
18.3.8 S H T T P D支持H T T P协议版本的实现............................ 559
18.3.9 S H T T P D内容类型的实现...................................... 559
18.3.10 S H T T P D错误处理的实现..................................... 561
18.3.11 S H T T P D生成目录下文件列表文件的实现.......................563
18.3.12 S H T T P D主函数的实现....................................... 565
18.4 S H T T P D的编译、调试和测试........................................ 566
18.4.1 建立源文件...................................................566
18.4.2 制作 Makefile.................................................566
18.4.3 制作执行文件........................................:....... 567
18.4.4使用不同的浏览器测试服务器程序.............................. 567
18.5 小结...............................................................568
第1 9章一个简单网络协议栈的例子S I P ......................................569
19.1 S I P网络协议找的功能描述........................................... 569
19.1.1 SIP网络协议栈的基本功能描述................................ 570
19.1.2 S I P网络协议栈的分层功能描述................................ 570
19.1.3 S I P网络协议栈的用户接U 功能描述............................ 571
19.2 S I P网络协议找的架构............................................... 571
• XVIII •
S 录
19.3 S I P网络协议找的存储区缓存......................................... 572
19.3.1 SIP存储缓冲的结构定义....................................... 573
19.3.2 SIP存储缓冲的处理函数....................................... 577
19.4 S I P网络协议找的网络接U 层......................................... 579
19.4.1 SI P网络接U 层的架构......................................... 579
19.4.2 S I P网络接U 层的数据结构...................................•.••■580
19.4.3 S I P网络接口层的初始化函数...................................581
19.4.4 S I P网络接口层的输入函数.....................................583
19.4.5 S I P网络接口层的输出函数.....................................586
19.5 S I P网络协议栈的A R P 层............................................ 588
19.5.1 SIP地址解析层的架构......................................... 588
19.5.2 SIP地址解析层的数据结构.....................................588
19.5.3 SIP地址解析层的映射表.......................................590
19.5.4 SIP地址解析层的A R P 映射表维护函数......................... 591
19.5.5 SIP地址解析层的A R P 网络报文构建函数.... :..................593
19.5.6 S1P地址解析层的A R P 网络报文收发处理函数................... 595
19.6 S I P网络协议栈的IP层.............................................. 598
19.6.1 S I P网际协议层的架构......................................... 598
19.6.2 S I P网际协议层的数据结构.....................................599
19.6.3 S I P网际协议层的输入函数.....................................601
19.6.4 S I P网际协议层的输出函数.....................................605
19.6.5 S I P网际协议层的分片函数.....................................606
19.6.6 S I P网际协议层的分片组装函数................................ 607
19.7 S I P网络协议栈的I C M P层........................................... 611
19.7.1 SIP控制报文协议的数据结构.................................. 611
19.7.2 SIP控制报文协议的协议支持...................................612
19.7.3 SIP控制报文协议的输入函数.................................. 613
19.7.4 SIP控制报文协议的回显应答函数.............................. 614
19.8 S I P网络协议栈的U D P 层............................................ 615
19.8.1 SIP数据报文层的数据结构.....................................615
19.8.2 SIP数据报文层的控制单元.....................................615
19.8.3 SIP数据报文层的输入函数.....................................617
19.8.4 SIP数据报文层的输出函数.....................................618
19.8.5 SIP数据报文层的建立函数.....................................618
19.8.6 SIP数据报文层的释放函数.....................................619
19.8.7 SIP数据报文层的绑定函数.....................................620
19.8.8 SIP数据报文层的发送数据闲数.................................621
19.8.9 SIP数据报文层的校验和计算...................................622
19.9 S I P网络协议栈的协议无关层......................................... 623
19.9.1 SIP协议无关层的系统架构.....................................623
• XIX •
目录
19.9.2 SIP协议无关层的函数形式.....................................624
19.9.3 S1P协议无关层的接收数据函数................................ 624
19.10 S I P网络协议栈的B S D 接U 层....................................... 625
19.10.1 S IP用户接口层的架构........................................ 625
19.10.2 SIP用户接n 层的套接字建立函数............................. 626
19.10.3 SIP用户接M 层的套接字关闭函数............................. 627
19.10.4 SIP用户接U 层的套接字绑定函数............................. 627
19.10.5 SIP用户接丨」层的套接字连接函数............................. 628
19.10.6 SIP用户接U 层的套接字接收数据函数......................... 628
19.10.7 SIP用户接口层的发送数据函数................................629
19.11 S I P网络协议找的编译.............................................. 630
19.11.1 SI P的文件结构.............................................. 630
19.11.2 SIP 的 Makefile.............................................. 631
19.11.3 SIP的编译运行.............................................. 631
19.12 小结..............................................................631
第2 0章一个简单防火墙的例子S I P F W .......................................633
20.1 S I P F W防火墙的功能描述............................................ 633
20.1.1 S I P F W防火墙对主机进行网络数据过滤的功能描述............... 633
20.1.2 S I P F W防火墙用户设置防火墙规则的功能描述................... 634
20.1.3 S I P F W防火墙配K 文件等附加功能的功能描述................... 634
20.2 SIPFW 需求分析.................................................... 634
20.2.1 S I P F W防火墙条件和动作......................................635
20.2.2 S I P F W防火墙支持过滤的类型和内容........................... 635
20.2.3 S I P F W防火墙过滤的方式和动作............................... 638
20.2.4 S I P F W防火墙的配置文件...................................... 640
20.2.5 S I P F W防火墙命令行配置格式..................................640
20.2.6 S I P F W防火墙的规则文件格式..................................642
20.2.7 S I P F W防火墙的日志文件数据格式............................. 643
20.2.8 S I P F W防火墙构建所采用的技术方案........................... 644
2 0 . 3使用netlink进行用户空间和内核空间数据交S ......................... 645
20.3.1 netlink的用户空间程序设计.................................... 645
20.3.2 netlink 的内核空间 A P I........................................ 648
2 0 . 4使用proc进行内存数据用户空间映射..................................650
20.4.1 proc虚拟文件系统的结构...................................... 650
20.4.2 创建proc虚拟文件........................................... 651
2 0 . 4 . 3删除proc虚拟文件........................................... 652
20.4.4 proc文件的写函数............................................ 652
20.4.5 proc文件的读函数............................................ 653
2 0 . 5内核空间的文件操作函数............................................ 654
• XX •
20.5.1 内核空间的文件结构.......................................... 654
20.5.2 内核空间的文件建立操作...................................... 655
20.5.3 内核空间的文件读写操作...................................... 656
20.5.4 内核空间的文件关闭操作...................................... 657
20.6 S I P F W防火墙的模块分析和设计......................................657
20.6.1 S I P F W防火墙的总体架构...................................... 657
20.6.2 S I P F W防火墙的用户命令解析................................. 660
20.6.3 S I P F W用户空间与内核空间的交互............................. 663
20.6.4 S I P F W防火墙内核链h 的规则处理............................. 666
20.6.5 S I P F W防火墙的P R O C 虑拟文件系统........................... 668
20.6.6 S I P F W防火墙的配置文件和口志文件处理....................... 669
20.6.7 S I P F W防火墙的过滤模块设计................................. 671
20.7 S I P F W防火墙各功能模块的实现......................................673
20.7.〗 S I P F W防火墙的命令解析代码................................. 674
20.7.2 S I P F W防火墙的过滤规则解析模块代码......................... 678
20.7.3 S I P F W防火墙的网络数据拦截模块代码......................... 680
20.7.4 S I P F W防火墙的P R O C 虚拟文件系统........................... 681
20.7.5 S I P F W防火墙对配置文件的解析............................... 683
20.7.6 S I P F W防火墙内核模块初始化和退出........................... 684
2 0 . 7 . 7用户空间处理主函数.......................................... 685
20.8 编译、调试和测试.......................... ....................... 686
2 0 . 8 . 1用户程序和内核程序的Makefile................................ 686
20.8.2 编译及运行.................................................. 687
2 0 . 8 . 3下发过滤规则,测试过滤结果.................................. 688
20.9 小结.............................................................. 690
2016-03-11
Raspberry Pi
CHAPTER 1: INTRODUCTION TO RASPBERRY PI
THE EVOLUTION OF RASPBERRY PI 2
THE UNIQUE FEATURES:
MODEL A
MODEL A+
MODEL B
MODEL B+
SHOULD YOU BUY THE LATEST RASPBERRY PI 2, IF YOU HAVE PREVIOUS MODELS?
GETTING STARTED BOOTING AND CONNECTIONS
A FEW THINGS YOU NEED TO KNOW
STARTING THE DEVICE
CHAPTER 2: SOME OF THE COMMON PI 2 PROJECTS
MEDIA CENTER WITH XBMC AND RASPBERRY PI 2
MINIATURE BALLOON
MINECRAFT SERVER RUNNING ON RASPBERRY PI 2
CHAPTER 3: USING THE RASPBERRY PI 2FOR YOUR PROJECT
DIFFERENCES BETWEEN THE ARDUINO BOARD AND RASPBERRY PI
THINGS THAT WILL HELP YOUR PROJECT TO BE SUCCESSFUL
MODEL OF YOUR RASPBERRY
MEMORY CARD
POWER SOURCE AND MICRO USB CABLE
USE A CASE
VERSATILE AND FLEXIBLE
CONCLUSION
DID YOU ENJOY THIS BOOK
2015-08-16
Flexible Web Design Creating Liquid and Elastic Layouts with CSS.pdf
網頁設計 網頁布局
Introduction
Take the book you’re holding in your hands right now and resize it so that
it’s easier to read
Don’t feel bad I’ve given you an impossible exercise but I promise the
book will be filled with practical instead of ridiculous exercises from here on
out That’s because we’re going to be talking about web design where we’re
not constrained by the physical limitations of print on paper
Though both web and print offer opportunities for beautiful and effective
design each has its own strengths and limitations To create successful web
designs you need to design to the medium’s strengths instead of fighting
against them One of these strengths is flexibility Here I’m using flexible
in the broadest sense built to adapt to an infinite number of viewing
scenarios Users are ultimately in control of their experience of web sites
to a degree beyond what’s possible with any other medium They get to
choose whether or not they do so consciously and willingly the type of
device they view web pages on how big their screens and windows are their
text sizes and fonts whether to view still images or Flash animations Really
savvy users can even set up their own style sheets to slightly or dramatically
change the visual appearance of the sites they view Some users don’t even
“view” web sites they may hear or feel them instead
The web medium is also flexible in the narrower sense of the word web
pages and content are not fixed at one particular size By default web pages
can change in width and height to accommodate the differing text sizes and
window widths of the users This is true of both web pages built with divs
and CSS and those built with tables
Fixed width web pages pages that are set at a certain number of pixels
decided by the designer override some of the web’s natural flexibility
There are certainly good reasons to build fixed width designs as you’ll learn
in Chapter 1 But the alternatives to fixed width design can offer a lot of benefit
and may work for more types of sites than you may think
Liquid or fluid sites which resize based on the user’s window size are
one alternative Elastic sites which resize based on the user’s text size are
another Both types of designs take advantage of the web’s natural flexibility
and when done well can greatly improve the user’s experience on your
site all">網頁設計 網頁布局
Introduction
Take the book you’re holding in your hands right now and resize it so that
it’s easier to read
Don’t feel bad I’ve given you an impossible exercise but I promise the
book will be filled with practical instead of ridiculous exercises from here on
[更多]
2014-01-02
python pdf 電子書
python
Part I. Getting Started
1. A Python Q&A Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Why Do People Use Python? 3
Software Quality 4
Developer Productivity 5
Is Python a “Scripting Language”? 5
OK, but What’s the Downside? 7
Who Uses Python Today? 7
What Can I Do with Python? 9
Systems Programming 9
GUIs 9
Internet Scripting 10
Component Integration 10
Database Programming 11
Rapid Prototyping 11
Numeric and Scientific Programming 11
Gaming, Images, Serial Ports, XML, Robots, and More 12
How Is Python Supported? 12
What Are Python’s Technical Strengths? 13
It’s Object-Oriented 13
It’s Free 13
It’s Portable 14
It’s Powerful 15
It’s Mixable 16
It’s Easy to Use 16
It’s Easy to Learn 17
It’s Named After Monty Python 17
How Does Python Stack Up to Language X?
2013-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人