编辑推荐
大多数人都承认C不是一门很容易学习的语言。C语言编程初学者指南 中清晰的讲解、完备的示例和图片,使得学习C语言变得容易而有趣。编程是需要通过实践才能够掌握的技能。C语言编程初学者指南 中的每一章都包含了本章小结和编程挑战,而且给出了一个完整的程序,从而使得读者应用一章中所学的基本概念构建一个容易编写的应用。C语言编程初学者指南 是专门为初学者编写的。C语言编程初学者指南 适合想要通过C开始学习编程的读者以及想要自学C编程的爱好者阅读参考。通过阅读本书,你将能够● 创建算法和伪代码,以帮助思考和设计程序;● 将设计和规划转换为有用的C程序;● 编写、编译、测试和调试代码;● 使用数据类型、数组、指针、字符串、文件操作以及其他更多技术来编写健壮的程序。
内容简介
C语言编程初学者指南 是专门为C语言编程的初学者编写的入门读物。全书共12章,通过清晰的讲解和详细的示例,介绍了C编程基础知识,包括基本数据类型、条件、循环结构、结构化程序设计、数组、指针、字符串、数据结构、动态内存分配、文件输入和输出与C预处理器指令等话题。C语言编程初学者指南 中的每一章都包含了本章小结和编程挑战,而且给出了一个完整的程序,从而使得读者应用一章中所学的基本概念构建一个容易编写的应用。C语言编程初学者指南 适合于想要通过C开始学习编程的读者、已经具备其他高级语言的编程经验,想要继续学习C的爱好者和对C编程感兴趣的初学爱好者阅读参考。
作者简介
Keith Davenport是这个行业里的多面手,从事出版、媒体和技术工作长达20年时间。在这个产业之外,他还是一位电影编剧和制片人,并且充当人们所需要的各种社会工作者。Michael Vine是一位zi深的IT专业人士,专门从事数据仓储和商务智能工作。他还在大学和学院教授计算机科学课程,并且他还是很多软件编程图书的作者。
目录
- 第1章 C编程入门 1
- 1.1 安装和配置Cygwin环境 2
- 1.2 认识main()函数 4
- 1.3 使用注释 7
- 1.4 理解关键字 8
- 1.5 使用程序语句 9
- 1.5.1 转义序列\ 11
- 1.5.2 转义序列\ 12
- 1.5.3 转义序列\\r 12
- 1.5.4 转义序列\\\\ 13
- 1.5.5 转义序列" 13
- 1.5.6 转义序列\\' 13
- 1.6 使用指令 14
- 1.7 创建并运行第一个C程序 15
- 1.8 调试C程序 16
- 1.8.1 常见错误之1:漏掉程序语句块标识符 19
- 1.8.2 常见错误之2:漏掉语句终结符 20
- 1.8.3 常见错误之3:无效的预处理器指令 20
- 1.8.4 常见错误之4:无效的转义序列 21
- 1.8.5 常见错误之5:无效的注释语句块 21
- 1.9 本章小结 22
- 1.10 编程挑战 23
- 第2章 基本数据类型 24
- 2.1 内存概念简介 24
- 2.2 理解数据类型 25
- 2.2.1 使用整数 26
- 2.2.2 使用浮点数 26
- 2.2.3 使用字符 27
- 2.3 初始化变量和赋值运算符 27
- 2.4 打印变量的内容 28
- 2.5 使用转换修饰符 29
- 2.5.1 用printf()显示整数数据类型 30
- 2.5.2 用printf()显示浮点数据类型 30
- 2.5.3 用printf()显示字符数据类型 31
- 2.6 理解常量 32
- 2.7 使用编程惯例和风格 33
- 2.7.1 使用空白 33
- 2.7.2 变量命名惯例 34
- 2.7.3 用前缀表示数据类型 35
- 2.7.4 正确地使用大写字母和小写字母 35
- 2.7.5 给变量一个有意义的名称 36
- 2.7.6 使用scanf()函数 36
- 2.8 用C做算术运算 38
- 2.9 理解运算符优先级 40
- 2.10 本章程序:Shop Profit 40
- 2.11 本章小结 41
- 2.12 编程挑战 42
- 第3章 条件 43
- 3.1 用于条件的算法 43
- 3.1.1 表达式和条件运算符 44
- 3.1.2 伪代码 45
- 3.1.3 流程图 46
- 3.2 简单的if结构 49
- 3.3 嵌套的if结构 51
- 3.4 布尔代数简介 53
- 3.4.1 and运算符 54
- 3.4.2 or运算符 54
- 3.4.3 not运算符 55
- 3.4.4 运算优先级 55
- 3.4.5 用布尔运算符构建复合条件 56
- 3.5 复合if结构和输入验证 57
- 3.5.1 &&运算符 57
- 3.5.2 ||运算符 58
- 3.5.3 检查大写字母和小写字母 58
- 3.5.4 检查值的范围 59
- 3.5.5 isdigit()函数 60
- 3.6 switch结构 61
- 3.7 随机数 64
- 3.8 本章程序:Fortune Cookie 66
- 3.9 本章小结 67
- 3.10 编程挑战 68
- 第4章 循环结构 69
- 4.1 循环的伪代码 69
- 4.2 循环的流程图 71
- 4.3 其他运算符 75
- 4.3.1 运算符 75
- 4.3.2 --运算符 78
- 4.3.3 =运算符 79
- 4.3.4 =运算符 81
- 4.4 while循环 81
- 4.5 do while循环 84
- 4.6 for循环 85
- 4.7 break和continue语句 87
- 4.8 系统调用 89
- 4.9 本章程序:Concentration 90
- 4.10 本章小结 92
- 4.11 编程挑战 92
- 第5章 结构化程序设计 94
- 5.1 结构化程序设计简介 94
- 5.1.1 自顶向下的设计 95
- 5.1.2 代码可复用性 97
- 5.1.3 信息隐藏 98
- 5.2 函数原型 99
- 5.3 函数定义 101
- 5.4 函数调用 103
- 5.5 变量作用域 105
- 5.5.1 局部作用域 106
- 5.5.2 全局作用域 107
- 5.6 本章程序:Trivia 108
- 5.7 本章小结 111
- 5.8 编程挑战 112
- 第6章 数组 113
- 6.1 数组简介 113
- 6.2 一维数组 114
- 6.2.1 创建一维数组 115
- 6.2.2 初始化一维数组 115
- 6.2.3 搜索一维数组 119
- 6.3 二维数组 121
- 6.3.1 初始化二维数组 122
- 6.3.2 搜索二维数组 123
- 6.4 本章程序:Tic-Tac-Toe 125
- 6.5 本章小结 129
- 6.6 编程挑战 129
- 第7章 指针 131
- 7.1 指针基础 131
- 7.1.1 声明和初始化指针变量 132
- 7.1.2 打印指针变量的内容 134
- 7.2 函数和指针 136
- 7.3 给函数传递数组 139
- 7.4 const限定符 143
- 7.5 本章程序:Cryptogram 145
- 7.5.1 加密简介 145
- 7.5.2 编写Cryptogram程序 147
- 7.6 本章小结 149
- 7.7 编程挑战 149
- 第8章 字符串 151
- 8.1 字符串简介 151
- 8.2 读取和打印字符串 154
- 8.3 字符串数组 155
- 8.4 将字符串转换为数字 157
- 8.5 操作字符串 159
- 8.5.1 strlen()函数 159
- 8.5.2 tolower()和toupper()函数 160
- 8.5.3 strcpy()函数 161
- 8.5.4 strcat()函数 162
- 8.6 分析字符串 163
- 8.6.1 strcmp()函数 163
- 8.6.2 strstr()函数 165
- 8.7 本章程序:Word Find 166
- 8.8 本章小结 168
- 8.9 编程挑战 168
- 第9章 数据结构简介 170
- 9.1 结构 170
- 9.1.1 struct关键字 171
- 9.1.2 typedef关键字 172
- 9.1.3 结构的数组 174
- 9.2 结构和函数 175
- 9.2.1 按值传递结构 176
- 9.2.2 按引用传递结构 177
- 9.2.3 传递结构的数组 179
- 9.3 联合体 180
- 9.4 强制类型转换 182
- 9.5 本章程序:Card Shuffle 183
- 9.6 本章小结 186
- 9.7 挑战 187
- 第10章 动态内存分配 188
- 10.1 动态内存概念 188
- 栈和堆 189
- 10.2 sizeof运算符 189
- 10.3 malloc()函数 191
- 10.3.1 使用malloc()管理字符串 193
- 10.3.2 释放内存 194
- 10.3.3 操作内存段 194
- 10.4 calloc()和realloc()函数 195
- 10.5 本章程序:Math Quiz 198
- 10.6 本章小结 200
- 10.7 编程挑战 201
- 第11章 文件输入和输出 203
- 11.1 数据文件简介 203
- 11.2 位和字节 204
- 字段、记录和文件 204
- 11.3 文件流 205
- 11.3.1 打开和关闭文件 206
- 11.3.2 读取数据 208
- 11.3.3 写数据 211
- 11.3.4 添加数据 213
- 11.4 goto语句和错误处理 215
- 11.5 本章程序:Character Roster 217
- 11.6 本章小结 219
- 11.7 编程挑战 220
- 第12章 C预处理器 221
- 12.1 理解C预处理器 221
- 12.1.1 符号常量 222
- 12.1.2 创建和使用宏 224
- 12.2 编译较大的程序 226
- 12.2.1 头文件 227
- 12.2.2 函数定义文件 227
- 12.2.3 main()函数 228
- 12.3 本章程序:Function Wizard 229
- 12.3.1 ch12_calculate.h 230
- 12.3.2 ch12_calculate.c 230
- 12.3.3 ch12_main.c 231
- 12.4 本章小结 232
- 12.5 编程挑战 232
- 12.6 如何继续学习 233
- 附录A 常用UNIX命令 234
- 附录B Vim快速参考 236
- 附录C nano快速指南 238
- 附录D TCC快速参考 241
- D.1 在Windows下安装和配置TCC 241
- D.1.1 下载TCC 241
- D.1.2 安装TCC 242
- D.1.3 配置TCC 243
- D.2 编写、编译并执行代码 244
- D.2.1 编写和编辑源代码 244
- D.2.2 编译和执行源代码 245
- 附录E ASCII字符代码 247
- 附录F 常用C库函数 251