标题：跟我学C程序设计
基本信息
* 知识全面 囊括了C语言绝大多数函数和功能 * 实例经典 用实例演示了各个函数的用法，这些例子可以直接应用到项目中 * 图文并茂 对每个实例都给出执行效果，方便学习 * 案例提高 最后给出了两个应用案例，告诉读者如何综合使用各种技术 
内容简介
  C语言自从诞生开始，就成为了广泛使用的程序设计语言，是结构化程序设计语言的代表。C语言在软件工业领域一直具有独有的地位，并且自身在不断完善，必将作为特定软件开发的基础，在软件开发中发挥重要的作用，也可作为初学者学习程序设计语言的入门语言。
本书循序渐进地讲述了C语言的基础知识、C程序的组成及其开发过程、C程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、函数、文件、算法、错误和异常处理、宏和预编译、高级操作等内容。在本书的最后两章，讲解了两个典型的综合案例：成绩管理系统和个人通讯录管理系统。
为了方便读者学习，本书光盘中提供了丰富的内容，包括全书的多媒体视频演示、全书的电子教案、数百页的电子资料以及书中讲解的源代码等内容。对于每章后面的习题，笔者都给了相应的解答，读者可以到http://www .tupwk .com .cn/develop下载。
本书涉及面广，从基本知识到高级内容和核心概念，再到综合案例，几乎涉及C语言开发的所有重要知识。本书适合所有想全面学习C语言开发技术的人员阅读，也适合各种使用C语言进行开发的工程技术人员使用。对于经常使用C语言做开发的人员，更是一本不可多得的案头必备参考书。
出版信息
ISBN：9787302234371
定价：58元
印次：1-1
装帧：平装
印刷日期：2010-8-23
图书目录
第1章  C语言概述 1
1.1  引言 2
1.1.1  C语言的出现 2
1.1.2  C语言的特点 3
1.1.3  C语言的发展 4
1.2  C语言程序的基本组成 5
1.3  C程序的开发步骤 7
1.3.1  C编译器简介 7
1.3.2  代码编辑 9
1.3.3  编译 10
1.3.4  链接 11
1.3.5  运行 13
1.3.6  保存 13
1.4  第一个C程序 14
1.5  本章习题 17
第2章  基本数据类型 19
2.1  C的基本数据类型 20
2.2  常量和变量 20
2.2.1  常量 20
2.2.2  变量 22
2.3  整型数据类型 23
2.3.1  整型常量 24
2.3.2  整型变量 25
2.3.3  应用示例 26
2.4  浮点型数据类型 27
2.4.1  浮点型常量 27
2.4.2  浮点型变量 27
2.4.3  应用示例 28
2.5  字符型数据类型 29
2.5.1  字符常量 29
2.5.2  字符串常量 30
2.5.3  转义字符 31
2.5.4  字符变量 32
2.6  数据类型的相互转换 34
2.7  本章习题 36
第3章  运算符和表达式 39
3.1  常用运算符和表达式 40
3.1.1  常用运算符 40
3.1.2  表达式 40
3.2  算术运算 41
3.2.1  算术运算符 41
3.2.2  自增自减运算符 42
3.2.3  算术表达式 43
3.2.4  应用示例 44
3.3  赋值运算 45
3.3.1  简单赋值运算符和赋值表达式 45
3.3.2  复合赋值运算符 47
3.4  关系运算 48
3.4.1  关系运算符 48
3.4.2  关系表达式 49
3.5  逻辑运算 50
3.5.1  逻辑运算符 50
3.5.2  逻辑表达式 51
3.6  位运算 53
3.7  逗号运算符 55
3.8  条件运算符 56
3.9  运算符的优先级 59
3.10  本章习题 60
第4章  顺序结构 63
4.1  C语句概述 64
4.2  赋值语句 66
4.3  格式输入输出 67
4.3.1  printf函数——格式输出 67
4.3.2  scanf函数——格式输入 70
4.3.3  应用示例 74
4.4  字符数据的输入输出 75
4.4.1  putchar函数——字符输出 75
4.4.2  getchar函数——字符输入 77
4.4.3  应用示例 78
4.5  综合应用 79
4.6  本章习题 80
第5章  选择结构 83
5.1  选择结构概述 84
5.1.1  条件的构成 84
5.1.2  关系运算的优先级 85
5.1.3  逻辑运算的优先级 86
5.2  if语句 87
5.2.1  if语句 87
5.2.2  if…else语句 89
5.2.3  if...else if…else语句 92
5.2.4  if语句的注意事项 94
5.2.5  应用示例 95
5.3  switch语句 97
5.3.1  switch语句的形式 97
5.3.2  应用示例 101
5.4  选择结构的嵌套 102
5.5  条件表达式 105
5.6  综合应用 106
5.7  本章习题 110
第6章  循环结构 113
6.1  循环结构概述 114
6.2  goto语句及其构成的循环 114
6.3  while语句 117
6.3.1  while语句的形式 117
6.3.2  while语句的注意事项 119
6.4  do…while语句 121
6.4.1  do…while语句的形式 121
6.4.2  应用示例 123
6.5  for语句 125
6.5.1  for语句的形式 125
6.5.2  for语句的注意事项 127
6.6  循环嵌套 128
6.7  辅助控制语句 131
6.7.1  break语句 131
6.7.2  continue语句 132
6.8  循环结构的综合应用 133
6.9  本章习题 135
第7章  数组 137
7.1  数组概述 138
7.1.1  基本概念 138
7.1.2  声明数组 139
7.2  一维数组 140
7.2.1  一维数组的存储形式 140
7.2.2  一维数组的声明 140
7.2.3  一维数组的引用 141
7.2.4  应用示例 143
7.3  二维数组 144
7.3.1  二维数组的存储形式 144
7.3.2  二维数组的声明 144
7.3.3  二维数组的引用 145
7.3.4  应用示例 147
7.4  字符数组 148
7.4.1  字符数组的声明及引用 148
7.4.2  字符串 149
7.4.3  常用字符串函数 152
7.4.4  应用示例 157
7.5  初始化数组 159
7.5.1  初始化一维数组 159
7.5.2  初始化二维数组 161
7.5.3  初始化字符数组 162
7.6  综合应用 163
7.7  本章习题 165
第8章  函数 167
8.1  函数 168
8.1.1  函数的分类 168
8.1.2  函数的作用 169
8.2  定义函数 170
8.2.1  定义无参函数 170
8.2.2  定义带参函数 171
8.2.3  定义空函数 172
8.2.4  应用示例 173
8.3  函数的参数及原型 174
8.3.1  形式参数和实际参数 174
8.3.2  函数的返回值 174
8.3.3  函数原型及声明 175
8.3.4  应用示例 176
8.4  调用函数 177
8.4.1  调用函数的一般形式 177
8.4.2  传值调用 178
8.4.3  传地址调用 180
8.5  嵌套调用和递归调用 182
8.5.1  嵌套调用 182
8.5.2  递归调用 184
8.6  数组作为函数参数 186
8.7  带参数的main函数 189
8.8  变量的作用域 191
8.8.1  局部变量 191
8.8.2  全局变量 194
8.8.3  变量的存储方式 196
8.9  综合应用 197
8.10  本章习题 198
第9章  指针 201
9.1  指针的基本概念 202
9.2  变量与指针 203
9.2.1  定义指针变量 203
9.2.2  指针变量的初始化 204
9.2.3  应用示例 206
9.3  指针的运算 207
9.3.1  取地址和取值运算 207
9.3.2  赋值运算 209
9.3.3  算术运算 209
9.3.4  关系运算 212
9.4  数组与指针 213
9.4.1  指向一维数组的指针 214
9.4.2  指向多维数组的指针 216
9.4.3  数组指针 217
9.5  字符串与指针 218
9.5.1  定义字符指针 219
9.5.2  应用示例 220
9.6  指针的综合应用 221
9.7  本章习题 223
第10章  指针的高级应用 225
10.1  指针与函数 226
10.1.1  指针作为函数参数 226
10.1.2  字符指针作为函数参数 227
10.1.3  指针函数 228
10.2  函数指针 230
10.2.1  函数指针 230
10.2.2  函数指针数组 232
10.2.3  函数指针作为函数参数 233
10.3  指针数组 235
10.3.1  指针数组的使用 235
10.3.2  main函数中的指针数组 236
10.4  void指针 238
10.5  指向指针的指针 240
10.6  内存操作 242
10.6.1  内存分配方式 242
10.6.2  内存操作函数 242
10.6.3  应用示例 245
10.6.4  注意事项 246
10.7  综合应用 247
10.8  本章习题 248
第11章  编译预处理 251
11.1  预处理概述 252
11.2  宏 252
11.2.1  宏概述 252
11.2.2  无参宏定义 253
11.2.3  带参宏定义 255
11.2.4  实参为表达式的宏调用 256
11.2.5  形参带括号的宏定义 258
11.3  宏与函数的区别 260
11.4  条件包含 262
11.4.1  #include预处理命令 262
11.4.2  应用示例 263
11.5  条件编译 265
11.5.1  #ifdef预处理命令 265
11.5.2  #ifndef预编译命令 267
11.5.3  #if预编译命令 268
11.6  应用示例 270
11.7  本章习题 272
第12章  扩展数据类型 275
12.1  结构体 276
12.1.1  结构体概念 276
12.1.2  构造结构体 277
12.1.3  声明结构体类型变量 278
12.1.4  引用结构体变量成员 280
12.1.5  初始化结构体变量 281
12.1.6  结构体变量的赋值 283
12.1.7  应用示例 284
12.2  结构体数组 287
12.2.1  定义和引用结构体数组 287
12.2.2  应用示例 288
12.3  结构体指针 289
12.3.1  指向结构体变量的指针 290
12.3.2  指向结构体数组的指针 291
12.4  结构体作为函数参数 292
12.4.1  结构体指针作为参数 293
12.4.2  应用示例 294
12.5  共用体 296
12.5.1  共用体概述 296
12.5.2  构造共用体 297
12.5.3  声明共用体类型变量 298
12.5.4  共用体变量的使用和赋值 299
12.5.5  应用示例 301
12.6  枚举 303
12.6.1  定义枚举类型 303
12.6.2  枚举类型变量的声明
和引用 305
12.7  用户自定义数据类型 306
12.8  综合示例 309
12.9  本章习题 311
第13章  文件 313
13.1  文件概述 314
13.1.1  文件的作用 314
13.1.2  文件的分类 314
13.2  文件的打开与关闭 316
13.2.1  打开文件 316
13.2.2  关闭文件 318
13.3  文件的读写 320
13.3.1  字符读写函数fgetc和fputc 320
13.3.2  字符串读写函数fgets和
fputs 323
13.3.3  数据块读写函数fread和
fwrite 326
13.3.4  格式化读写函数fscanf和
fprintf 328
13.4  文件的定位 330
13.4.1  rewind函数 330
13.4.2  fseek函数 332
13.5  综合应用 333
13.6  本章习题 336
第14章  算法 339
14.1  算法概述 340
14.1.1  算法的特征 340
14.1.2  算法示例 340
14.2  算法的表示 342
14.2.1  问题的引入 342
14.2.2  流程图描述 343
14.2.3  N-S图描述 345
14.2.4  PAD图描述 346
14.3  算法的实现 347
14.4  算法分析 350
14.4.1  时间复杂度 350
14.4.2  空间复杂度 351
14.5  算法的优化 353
14.6  综合示例 356
14.7  本章习题 358
第15章  C高级操作 361
15.1  链表的操作 362
15.1.1  链表概述 362
15.1.2  构造单链表 363
15.1.3  建立单链表 364
15.1.4  输出单链表 365
15.1.5  链表的插入 370
15.1.6  链表的删除 372
15.1.7  链表的查找 375
15.2  查找 377
15.2.1  顺序查找 377
15.2.2  折半查找 380
15.3  排序 383
15.3.1  冒泡排序 383
15.3.2  快速排序 386
15.4  综合示例 388
15.5  本章习题 389
第16章  程序调试 391
16.1  常见错误 392
16.1.1  语法错误 392
16.1.2  逻辑错误 394
16.1.3  运行错误 397
16.1.4  常见错误 398
16.2  程序调试 401
16.2.1  调试步骤 401
16.2.2  debug 403
16.2.3  watch 403
16.2.4  调试快捷键及注意事项 404
16.3  调试示例 405
16.4  本章习题 407
第17章  成绩管理系统 409
17.1  需求分析 410
17.2  总体设计 411
17.3  详细设计 411
17.3.1  数据结构设计 412
17.3.2  成绩录入模块 412
17.3.3  成绩查询模块 416
17.3.4  成绩更新模块 418
17.3.5  成绩删除模块 422
17.3.6  成绩排序模块 424
17.3.7  成绩导出模块 428
17.3.8  成绩导入模块 431
17.4  系统集成 434
17.4.1  设计菜单函数 434
17.4.2  设计主函数 437
17.5  测试运行 437
第18章  个人通讯录管理系统 441
18.1  需求分析 442
18.2  总体设计 442
18.3  详细设计 443
18.3.1  数据结构设计 443
18.3.2  设计主界面 444
18.4  模块设计 445
18.4.1  信息录入模块 445
18.4.2  信息查询模块 448
18.4.3  信息更新模块 450
18.4.4  信息删除模块 452
18.4.5  信息导出模块 455
18.4.6  信息导入模块 457
18.5  系统集成 458
18.6  测试运行 460
创作背景
本书共分为3部分，共18章，从C语言的基本概念讲起，循序渐进地讲解了C语言的相关知识、概念的使用方法以及各种技巧等。其中每个部分的主要内容如下所示。
第1部分  C语言基础(第1~9章)
主要内容包括：C语言的基础知识、C程序的组成及其开发过程、C程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针等。通过本部分的学习，读者可以掌握C语言开发的基本流程和C编程的核心语法知识。
第2部分  C高级应用(第10~16章)
主要内容包括：指针的高级应用、预编译处理、扩展数据类型、文件、算法、C高级操作、程序调试等内容。通过本部分的学习，读者可以掌握C程序设计的高级应用。
第3部分  综合案例(第17~18章)
主要内容包括：成绩管理系统和个人通讯录管理系统。通过本部分的学习，读者可以全面应用前面章节所学的开发技术进行软件项目开发，达到可以独立开发项目的水平。