第1章 C语言程序基础 1
1.1 C语言程序的基本结构 1
1.1.1 认识C语言程序 1
1.1.2 基本结构 3
1.1.3 程序举例 4
1.2 C语言基本语法成分 6
1.3 C语言数据类型 8
1.3.1 基本数据类型 9
1.3.2 指针类型 11
1.3.3 构造数据类型 12
1.4 C语言的表达式和语句 12
1.5 C语言程序运行过程 13
1.5.1 源程序、目标程序和可执行程序的概念 13
1.5.2 C语言程序的开发步骤 14
1.6 编写简单的C语言程序 15
1.7 数据的输入与输出 16
1.7.1 printf函数 17
1.7.2 scanf函数 18
1.8 C语言中的宏定义 20
1.8.1 不带参数的宏定义 20
1.8.2 带参数的宏定义 21
1.9 算法 23
1.9.1 算法的概念及特性 23
1.9.2 算法的表示方法 24
1.10 C语言的产生、发展及特点 26
1.10.1 C语言的产生及发展 26
1.10.2 C语言的特点 27
习题 28
第2章 程序基本结构 33
2.1 分支结构 33
2.1.1 单分支结构 33
2.1.2 双分支结构 34
2.1.3 多分支结构 35
2.1.4 if语句的嵌套 36
2.1.5 条件运算符 38
2.1.6 switch语句 39
2.2 关系运算和逻辑运算 40
2.2.1 关系运算符和关系表达式 41
2.2.2 逻辑运算符和逻辑表达式 41
2.3 循环结构 42
2.3.1 概述 42
2.3.2 当型循环while 43
2.3.3 直到型循环do-while 45
2.3.4 当型循环for 46
2.3.5 几种循环的比较 48
2.3.6 循环嵌套 49
2.4 break语句和continue语句 50
2.4.1 break语句 50
2.4.2 continue语句 51
2.5 goto语句 52
2.6 指针程序设计 53
2.6.1 指针 53
2.6.2 指针变量的使用 54
2.7 典型例题 56
习题 61
第3章 模块化程序设计 67
3.1 模块化程序设计思想 67
3.2 函数定义 69
3.3 函数调用 70
3.3.1 函数调用的形式 70
3.3.2 函数间的参数传递 71
3.3.3 函数的返回值 73
3.4 函数的原型与声明 73
3.5 函数的嵌套与递归 75
3.5.1 函数的嵌套调用 75
3.5.2 函数的递归调用 76
3.6 库函数 77
3.7 变量的作用域与存储类型 78
3.7.1 变量的作用域 78
3.7.2 变量的存储类型 81
3.8 指针与函数 84
3.8.1 指针作为函数参数 84
3.8.2 返回指针值的函数 87
3.8.3 指向函数的指针变量 88
3.9 典型例题 89
习题 93
第4章 简单构造数据类型 98
4.1 一维数组 98
4.1.1 一维数组的引出 98
4.1.2 一维数组的定义和引用 99
4.1.3 一维数组程序举例 100
4.2 二维数组 102
4.2.1 二维数组的引出 102
4.2.2 二维数组的定义和引用 103
4.2.3 二维数组程序举例 104
4.3 字符数组与字符串 106
4.3.1 字符数组的引出 106
4.3.2 字符数组的定义和引用 107
4.3.3 字符串的使用 108
4.3.4 字符数组程序举例 112
4.4 数组与指针 114
4.4.1 一维数组与指针 114
4.4.2 多维数组与指针 116
4.4.3 数组作为函数参数 117
4.5 字符串与指针 121
4.5.1 用字符指针访问字符串 121
4.5.2 字符指针和字符数组的区别 122
4.5.3 字符串作为函数参数 124
4.6 典型例题 125
习题 132
第5章 复杂构造数据类型 139
5.1 结构体 139
5.1.1 结构体的引出及使用 139
5.1.2 结构体数组 143
5.1.3 结构体程序举例 145
5.1.4 结构体与指针 146
5.2 共用体 149
5.2.1 共用体的定义和引用 149
5.2.2 共用体类型的特点 150
5.2.3 共用体应用举例 151
5.3 枚举类型 152
5.3.1 枚举类型的定义和引用 152
5.3.2 枚举类型应用举例 153
5.4 链表 154
5.4.1 概述 154
5.4.2 简单链表 155
5.4.3 动态链表 155
5.4.4 链表的实现及应用 156
习题 159
第6章 磁盘数据存储 163
6.1 将数据写入文件 163
6.1.1 打开文件函数 164
6.1.2 关闭文件函数 164
6.2 文件读写分类函数 165
6.2.1 单字符写入函数 166
6.2.2 单字符读取函数 166
6.2.3 字符串读取函数 167
6.2.4 字符串写入函数 168
6.2.5 格式化读写函数 168
6.2.6 数据块读写函数 170
6.3 文件定位函数 172
6.3.1 位置指针复位函数 172
6.3.2 位置指针的随机移动函数 174
6.3.3 文件指针当前位置函数 175
6.4 其他文件函数 176
6.4.1 文件结束检测函数 176
6.4.2 出错检测函数 177
习题 177
第7章 实用程序设计技巧 181
7.1 程序的模块化结构 181
7.1.1 软件工程的思想 181
7.1.2 模块设计 181
7.1.3 模块化的优点 182
7.2 模块的组装 183
7.2.1 文件包含与头文件的使用 183
7.2.2 模块间的连接 185
7.2.3 标识符的一致性 188
7.2.4 条件编译 188
7.3 模块设计风格简述 190
7.3.1 数据风格 190
7.3.2 标识符风格 190
7.3.3 算法风格 191
7.3.4 输入/输出风格 191
7.3.5 书写风格 192
7.4 应用程序设计实例 193
习题 200
附录 203
附录A 常用C语言库函数 203
A.1 数学函数 203
A.2 输入/输出函数 203
A.3 字符函数 206
A.4 字符串函数 207
A.5 动态存储分配函数 207
A.6 时间函数 208
A.7 其他函数 209
附录B ASCII码表 210
附录C C语言运算符的优先级与结合性 212
参考文献 214