目录
第1章软件基础知识1
1.1程序设计基础1
1.1.1程序的相关概念1
1.1.2程序设计风格5
1.1.3结构化程序设计7
1.1.4面向对象程序设计9
1.2算法基础11
1.2.1算法的概念11
1.2.2算法的特征13
1.2.3算法的描述13
1.2.4算法的评价15
1.2.5算法设计示例18
1.3C语言概述20
1.3.1C语言的发展和标准化21
1.3.2C语言开发环境23
1.3.3C语言的特点26
1.3.4C语言程序结构26
1.3.5C程序执行机制29
1.3.6C语言编码规范31
1.4本章小结31
1.5习题31
第2章C语言数据表示33
2.1C语言符号系统33
2.1.1字符集33
2.1.2标识符与关键字34
2.2C语言的数据类型35
2.2.1基本数据类型: 整型36
2.2.2基本数据类型: 浮点型37
2.2.3基本数据类型: 字符型39
2.2.4基本数据类型: 布尔类型40
2.2.5可移植类型40
2.2.6空类型42
2.3数据的表现形式43
2.3.1字面常量: 整型、浮点型、字符型、字符串、布尔型43
2.3.2符号常量/宏常量45
2.3.3变量46
2.3.4const变量47
2.4其他数据类型概述48
2.5本章小结49
2.6习题50
第3章数据的简单处理51
3.1使用运算符和表达式进行处理51
3.1.1运算符和表达式概述51
3.1.2算术运算符52
3.1.3赋值运算符55
3.1.4关系运算符55
3.1.5逻辑运算符56
3.1.6位运算符58
3.1.7条件运算符60
3.1.8其他运算符62
3.1.9小结64
3.2混合类型计算与类型转换65
3.2.1自动类型转换65
3.2.2强制类型转换67
3.3C语言语句类型68
3.3.1声明语句68
3.3.2表达式语句69
3.3.3控制语句69
3.3.4复合语句69
3.4数据的输入输出70
3.4.1字符输出函数71
3.4.2字符输入函数72
3.4.3格式输出函数73
3.4.4格式输入函数81
3.4.5其他输入输出函数简介87
3.5本章小结87
3.6习题87
第4章数据的复杂处理90
4.1IPO模型和结构化程序设计90
4.1.1IPO模型90
4.1.2结构化程序设计91
4.2顺序结构92
4.2.1顺序结构执行流程92
4.2.2顺序结构程序设计示例93
4.3分支结构97
4.3.1if语句97
4.3.2if语句的嵌套106
4.3.3switch语句110
4.3.4分支结构程序设计示例115
4.4循环结构121
4.4.1while语句121
4.4.2dowhile语句124
4.4.3for语句127
4.4.4循环嵌套131
4.4.5循环跳转135
4.5控制结构的综合应用示例141
4.6本章小结152
4.7习题152
第5章构造数据类型——数组155
5.1数组概述155
5.2一维数组155
5.2.1一维数组定义与存储155
5.2.2一维数组的初始化159
5.2.3可变长数组160
5.2.4处理一维数组元素161
5.2.5工程应用示例: 振动信号处理172
5.3多维数组176
5.3.1二维数组的定义与存储176
5.3.2二维数组的初始化177
5.3.3处理二维数组元素178
5.3.4高维数组182
5.3.5工程应用示例: 金相组织图像滤波183
5.4字符数组与字符串187
5.4.1一维字符数组187
5.4.2字符串处理标准库函数194
5.4.3二维字符数组200
5.4.4工程应用示例: 基因序列分析203
5.5数组综合应用示例206
5.6本章小结212
5.7习题212
第6章功能封装与模块化设计——函数218
6.1引入函数218
6.1.1程序功能划分220
6.1.2代码复用221
6.1.3标准库函数222
6.2定义函数222
6.2.1函数的定义222
6.2.2函数原型声明224
6.3调用函数225
6.3.1C程序的执行过程225
6.3.2函数调用及参数传递225
6.3.3结果的返回值233
6.3.4函数的嵌套调用233
6.3.5函数设计综合示例: 割线法求根235
6.4变量的作用域237
6.4.1局部变量237
6.4.2全局变量238
6.4.3使用原则239
6.5变量的生存期和存储类别240
6.5.1C程序的内存管理240
6.5.2变量的存储类别240
6.5.3应用示例: 尼姆游戏程序246
6.6编译预处理249
6.6.1文件包含249
6.6.2宏定义与宏替换250
6.6.3条件编译命令252
6.6.4多文件程序的组织253
6.7综合应用示例: 增强版尼姆游戏程序256
6.8本章小结261
6.9习题261
第7章指针271
7.1指针基本概念271
7.2指针变量272
7.2.1指针变量的声明272
7.2.2指针变量的初始化272
7.2.3指针的间接存取运算273
7.2.4使用指针处理基本数据275
7.2.5指针作为函数参数276
7.3指针与数组279
7.3.1指针的算术运算和关系运算279
7.3.2使用指针处理一维数组元素281
7.3.3使用指针处理二维数组元素285
7.3.4使用字符指针处理字符串290
7.3.5指针数组295
7.3.6多级指针298
7.3.7带参数的主函数299
7.4指针和函数300
7.4.1函数指针301
7.4.2使用函数指针间接调用函数301
7.4.3指针型函数306
7.5动态存储分配308
7.5.1C程序内存分配308
7.5.2动态内存分配库函数309
7.5.3void 指针310
7.5.4动态存储分配应用311
7.6工程应用示例315
7.6.1HTTP请求解析315
7.6.2候选人排序318
7.7本章小结320
7.8习题321
第8章自定义数据类型324
8.1结构体324
8.1.1结构体类型的声明324
8.1.2结构体类型变量的定义326
8.1.3结构体变量的初始化327
8.1.4结构体变量的运算329
8.1.5结构体指针与指向运算332
8.1.6函数间结构体数据的传递336
8.1.7结构体的应用: 单向链表340
8.2共用体351
8.2.1共用体类型的定义351
8.2.2共用体变量的定义与初始化352
8.2.3访问共用体成员353
8.2.4共用体的应用: 嵌入式设备状态监控系统353
8.3枚举355
8.3.1枚举类型的定义355
8.3.2枚举变量的定义与初始化356
8.3.3枚举的应用: 图像处理之RGB颜色空间356
8.4类型重命名358
8.5工程应用示例: 学生成绩管理系统359
8.5.1需求分析359
8.5.2结构体类型设计: 抽象学生实体360
8.5.3核心功能开发360
8.6本章小结365
8.7习题365
第9章文件操作371
9.1文件概述371
9.1.1文件的概念371
9.1.2文件的分类371
9.1.3标准文件373
9.2输入输出流373
9.2.1流的概念373
9.2.2文件缓冲区373
9.3文件类型与文件指针375
9.4文件的打开与关闭375
9.4.1打开文件375
9.4.2关闭文件378
9.5顺序访问文件378
9.5.1读写文本文件378
9.5.2读写二进制文件387
9.6随机访问文件392
9.6.1使用fseek()函数实现定位392
9.6.2使用ftell()函数获取当前位置393
9.6.3使用rewind()函数实现复位394
9.6.4使用feof()函数测试文件尾部394
9.6.5关于fgetpos()和fsetpos()函数395
9.6.6随机访问文件应用示例: 数据库操作395
9.7文件的删除与重命名398
9.7.1使用remove()函数删除文件398
9.7.2使用rename()函数重命名文件399
9.8文件操作的错误处理399
9.8.1使用ferror()函数检测文件操作中是否出错400
9.8.2使用errno显示错误代码400
9.8.3使用perror()函数输出错误信息401
9.8.4使用clearerr()函数清除文件错误标志401
9.8.5文件错误处理应用示例: 基于结构体的文件操作状态管理402
9.9文件操作工程应用示例: 工业磨粒图像的边缘检测406
9.10本章小结417
9.11习题417
附录420
附录AASCII编码表420
附录B运算符的优先级和结合性421
附录C常用标准库函数421
附录DC程序开发中的常见错误422
