标题：C语言从入门到精通
基本信息
系列名：软件开发视频大讲堂
出版社：清华大学出版社  
书号：9787302228387
作者：韩旭  王娣  　　定价：￥49.80
出版日期：2010年7月1日
字数：736千字     页码：428
装帧：平装
图书简介
本书从初学者的角度出发，以通俗易懂的语言，丰富多彩的实例，详细介绍了使用C语言进行程序开发应该掌握的各方面知识。全书共分17章，包括C语言概述，算法，数据类型，运算符与表达式，常用的数据输入、输出函数，选择结构程序设计，循环控制，数组，函数，指针，结构体和共用体，位运算，预处理，文件，存储管理，网络套接字编程和学生成绩管理系统等。所有知识都结合具体实例进行介绍，涉及的程序代码给出了详细的注释，可以使读者轻松领会C语言程序开发的精髓，快速提高开发技能。
本书列举了大量的小型实例、综合实例和部分项目案例；所附DVD光盘内容有同步视频讲解、实例源程序、“实践与练习”答案等；本书的服务网站提供了模块库、案例库、题库、素材库、答疑服务。
本书内容详尽，实例丰富，非常适合作为编程初学者的学习用书，也适合作为开发人员的查阅、参考资料。
图书目录
第1篇 基础知识
第1章 C语言概述 3
视频讲解：29分钟
1.1 C语言发展史 4
1.1.1 程序语言简述 4
1.1.2 C 语言历史 4
1.2 C语言的特点 5
1.3 一个简单的C程序 6
1.4 一个完整的C程序 8
1.5 C语言程序的格式 12
1.6 开发环境 13
1.6.1 Turbo C 2.0 13
1.6.2 Visual C++ 6.0 18
1.7 小结 24
第2章 算法 25
视频讲解：22分钟
2.1 算法的基本概念 26
2.1.1 算法的特性 26
2.1.2 算法的优劣 27
2.2 算法的描述 27
2.2.1 自然语言 28
2.2.2 流程图 28
2.2.3 N-S流程图 32
2.3 小结 36
第3章 数据类型 37
视频讲解：39分钟
3.1 编程规范 38
3.2 关键字 39
3.3 标识符 39
3.4 数据类型 41
3.5 常量 42
3.5.1 整型常量 42
3.5.2 实型常量 45
3.5.3 字符型常量 46
3.5.4 转义字符 49
3.5.5 符号常量 49
3.6 变量 50
3.6.1 整型变量 50
3.6.2 实型变量 53
3.6.3 字符型变量 55
3.7 变量的存储类别 57
3.7.1 动态存储与静态存储 57
3.7.2 auto变量 57
3.7.3 static 变量 58
3.7.4 register变量 59
3.7.5 extern变量 60
3.8 混合运算 61
3.9 小结 62
3.10 实践与练习 62
第4章 运算符与表达式 63
视频讲解：29分钟
4.1 表达式 64
4.2 赋值运算符与赋值表达式 66
4.2.1 变量赋初值 66
4.2.2 自动类型转换 68
4.2.3 强制类型转换 68
4.3 算术运算符与表达式 69
4.3.1 算术运算符 70
4.3.2 算术表达式 70
4.3.3 优先级与结合性 71
4.3.4 自增自减运算符 73
4.4 关系运算符与表达式 75
4.4.1 关系运算符 75
4.4.2 关系表达式 76
4.4.3 优先级与结合性 77
4.5 逻辑运算符与表达式 78
4.5.1 逻辑运算符 79
4.5.2 逻辑表达式 79
4.5.3 优先级与结合性 79
4.6 位逻辑运算符与表达式 81
4.6.1 位逻辑运算符 81
4.6.2 位逻辑表达式 81
4.7 逗号运算符与表达式 82
4.8 复合赋值运算符 83
4.9 小结 84
4.10 实践与练习 85
第5章 常用的数据输入、输出函数 87
视频讲解：40分钟
5.1 语句 88
5.2 字符数据输入输出 88
5.2.1 字符数据输出 88
5.2.2 字符数据输入 89
5.3 字符串输入输出 91
5.3.1 字符串输出函数 91
5.3.2 字符串输入函数 93
5.4 格式输出函数 94
5.5 格式输入函数 97
5.6 顺序程序设计应用 100
5.7 小结 102
5.8 实践与练习 103
第6章 选择结构程序设计 105
视频讲解：44分钟
6.1 if语句 106
6.2 if语句的基本形式 106
6.2.1 if语句形式 106
6.2.2 if…else语句形式 109
6.2.3 else if语句形式 113
6.3 if的嵌套形式 117
6.4 条件运算符 119
6.5 switch 语句 121
6.5.1 switch语句的基本形式 121
6.5.2 多路开关模式的switch语句 125
6.6 if else 语句和switch语句的区别 127
6.7 选择结构程序应用 129
6.8 小结 131
6.9 实践与练习 131
第 7章 循环控制 133
视频讲解：41分钟
7.1 循环语句 134
7.2 while语句 134
7.3 do- while语句 137
7.4 for语句 139
7.4.1 for语句使用 139
7.4.2 for循环的变体 143
7.4.3 for语句中的逗号应用 145
7.5 3种循环语句的比较 146
7.6 循环嵌套 147
7.6.1 循环嵌套的结构 147
7.6.2 循环嵌套实例 148
7.7 转移语句 150
7.7.1 goto语句 150
7.7.2 break 语句 151
7.7.3 continue语句 153
7.8 小结 154
7.9 实践与练习 154
第2篇 核心技术
第8章 数组 157
视频讲解：1小时7分钟
8.1 一维数组 158
8.1.1 一维数组的定义和引用 158
8.1.2 一维数组初始化 160
8.1.3 一维数组应用 162
8.2 二维数组 163
8.2.1 二维数组的定义和引用 163
8.2.2 二维数组初始化 165
8.2.3 二维数组应用 168
8.3 字符数组 169
8.3.1 字符数组定义和引用 169
8.3.2 字符数组初始化 170
8.3.3 字符数组的结束标志 172
8.3.4 字符数组的输入和输出 172
8.3.5 字符数组应用 174
8.4 多维数组 175
8.5 数组的排序算法 175
8.5.1 选择法排序 175
8.5.2 冒泡法排序 177
8.5.3 交换法排序 179
8.5.4 插入法排序 181
8.5.5 折半法排序 184
8.5.6 排序算法的比较 186
8.6 字符串处理函数 187
8.6.1 字符串复制 187
8.6.2 字符串连接 188
8.6.3 字符串比较 190
8.6.4 字符串大小写转换 192
8.6.5 获得字符串长度 193
8.7 数组应用 194
8.7.1 反转输出字符串 194
8.7.2 输出系统日期和时间 196
8.7.3 字符串的加密和解密 198
8.8 小结 199
8.9 实践与练习 200
第9章 函数 201
视频讲解：55分钟
9.1 函数概述 202
9.2 函数的定义 204
9.2.1 函数定义的形式 205
9.2.2 定义与声明 206
9.3 返回语句 208
9.3.1 从函数返回 208
9.3.2 返回值 209
9.4 函数参数 211
9.4.1 形式参数与实际参数 211
9.4.2 数组作函数参数 213
9.4.3 main 的参数 220
9.5 函数的调用 220
9.5.1 函数调用方式 221
9.5.2 嵌套调用 223
9.5.3 递归调用 226
9.6 内部函数和外部函数 228
9.6.1 内部函数 228
9.6.2 外部函数 230
9.7 局部变量和全局变量 231
9.7.1 局部变量 231
9.7.2 全局变量 234
9.8 函数应用 236
9.9 小结 242
9.10 实践与练习 243
第10章 指针 245
视频讲解：1小时2分钟
10.1 指针相关概念 246
10.1.1 地址与指针 246
10.1.2 变量与指针 247
10.1.3 指针变量 247
10.1.4 指针自加自减运算 251
10.2 数组与指针 253
10.2.1 一维数组与指针 253
10.2.2 二维数组与指针 257
10.2.3 字符串与指针 261
10.2.4 字符串数组 263
10.3 指向指针的指针 264
10.4 指针变量做函数参数 268
10.5 返回指针值的函数 277
10.6 指针数组做main函数的参数 279
10.7 小结 280
10.8 实践与练习 281
第3篇 高级应用
第11章 结构体和共用体 285
视频讲解：40分钟
11.1 结构体 286
11.1.1 结构体类型的概念 286
11.1.2 结构体变量的定义 287
11.1.3 结构体变量的引用 289
11.1.4 结构体类型的初始化 292
11.2 结构体数组 293
11.2.1 定义结构体数组 293
11.2.2 初始化结构体数组 295
11.3 结构体指针 297
11.3.1 指向结构体变量的指针 297
11.3.2 指向结构体数组的指针 300
11.3.3 结构体作为函数参数 302
11.4 包含结构的结构 305
11.5 链表 307
11.5.1 链表概述 307
11.5.2 创建动态链表 308
11.5.3 输出链表 310
11.6 链表相关操作 313
11.6.1 链表的插入操作 313
11.6.2 链表的删除操作 315
11.7 共用体 319
11.7.1 共用体的概念 319
11.7.2 共用体变量的引用 320
11.7.3 共用体变量的初始化 321
11.7.4 共用体类型的数据特点 322
11.8 枚举类型 322
11.9 小结 324
11.10 实践与练习 324
第12章 位运算 325
视频讲解：35分钟
12.1 位与字节 326
12.2 位运算操作符 326
12.2.1 “与”运算符 326
12.2.2 “或”运算符 328
12.2.3 “取反”运算符 329
12.2.4 “异或”运算符 330
12.2.5 “左移”运算符 332
12.2.6 “右移”运算符 334
12.3 循环移位 335
12.4 位段 338
12.4.1 位段的概念与定义 338
12.4.2 位段相关说明 339
12.5 小结 341
12.6 实践与练习 341
第13章 预处理 343
视频讲解：39分钟
13.1 宏定义 344
13.1.1 不带参数的宏定义 344
13.1.2 带参数的宏定义 346
13.2 #include指令 347
13.3 条件编译 349
13.3.1 #if命令 349
13.3.2 #ifdef及#ifndef命令 352
13.3.3 #undef命令 354
13.3.4 #line命令 354
13.3.5 #pragma命令 355
13.4 小结 356
13.5 实践与练习 356
第14章 文件 357
视频讲解：55分钟
14.1 文件概述 358
14.2 文件基本操作 358
14.2.1 文件指针 358
14.2.2 文件的打开 359
14.2.3 文件的关闭 360
14.3 文件的读写 360
14.3.1 fputc函数 361
14.3.2 fgetc函数 361
14.3.3 fputs函数 362
14.3.4 fgets函数 363
14.3.5 fprintf函数 364
14.3.6 fscanf函数 366
14.3.7 fread函数和fwrite函数 367
14.4 文件的定位 369
14.4.1 fseek函数 369
14.4.2 rewind函数 371
14.4.3 ftell函数 372
14.5 小结 375
14.6 实践与练习 375
第15章 存储管理 377
视频讲解：22分钟
15.1 内存组织方式 378
15.1.1 内存组织方式 378
15.1.2 堆与栈 378
15.2 动态管理 381
15.2.1 malloc 函数 381
15.2.2 calloc函数 382
15.2.3 realloc函数 383
15.2.4 free函数 384
15.3 内存丢失 385
15.4 小结 386
15.5 实践与练习 386
第16章 网络套接字编程 387
视频讲解：39分钟
16.1 计算机网络基础 388
16.1.1 IP地址 388
16.1.2 OSI 七层参考模型 389
16.1.3 地址解析 389
16.1.4 域名系统 390
16.1.5 TCP/IP协议 391
16.1.6 端口 392
16.1.7 套接字的引入 393
16.1.8 网络字节顺序 393
16.2 套接字概述 393
16.2.1 套接字概述 393
16.2.2 TCP的套接字的socket编程 394
16.2.3 UDP 的套接字的socket编程 395
16.3 套接字函数 395
16.3.1 套接字函数介绍 395
16.3.2 基于TCP的网络聊天程序 402
16.4 小结 407
16.5 实践与练习 408
第4篇 项目实战 
第17 章 学生成绩管理系统 411
视频讲解：40分钟
17.1 需求分析 412
17.2 系统设计 412
17.3 功能设计 413
17.3.1 功能选择界面 413
17.3.2 录入学生成绩信息 415
17.3.3 查询学生成绩信息 417
17.3.4 删除学生成绩信息 418
17.3.5 修改学生成绩信息 420
17.3.6 插入学生成绩信息 421
17.3.7 统计学生人数 423
17.4 小结 424
附 录 425