第1章 程序设计基础 1
1.1 程序和程序设计语言 1
1.1.1 程序设计和程序设计语言介绍 2
1.1.2 语言处理程序 2
1.1.3 程序设计的基本原则 3
1.2 算法 3
1.2.1 算法的概念 3
1.2.2 算法的表示方法 4
1.3 结构化程序设计 8
1.3.1 结构化程序基本控制结构 8
1.3.2 结构化程序设计方法 9
第2章 C语言程序设计基础 12
2.1 C语言介绍 12
2.1.1 认识C程序 12
2.1.2 C程序的基本结构 14
2.1.3 C语言的运行 14
2.2 C语言的特点 15
2.2.1 C语言的产生与发展 15
2.2.2 C语言的特点 16
第3章 数据类型、运算符与表达式 20
3.1 C语言的字符集和标识符 21
3.1.1 字符集 21
3.1.2 标识符 21
3.1.3 标识符的分类 21
3.2 C语言的数据类型 22
3.3 常 量 23
3.3.1 数值常量 23
3.3.2 字符型常量 26
3.4 变量 30
3.4.1 变量的概念 30
3.4.2 变量的基本数据类型 31
3.4.3 变量的类型定义和使用 32
3.4.4 变量的初始化 36
3.5 库函数和头文件 37
3.5.1 库函数的使用方法 38
3.5.2 常用数学函数 39
3.5.3 字符输入输出函数(getchar和putchar) 41
3.5.4 格式输入输出函数(scanf和printf) 43
3.6 运算符和表达式 49
3.6.1 C语言的运算符 49
3.6.2 运算符的优先级和结合性 49
3.6.3 C语言的表达式 52
第4章 结构控制语句 72
4.1 引例 72
4.2 C语言的执行语句 73
4.2.1 表达式语句 74
4.2.2 空语句 75
4.2.3 复合语句 75
4.2.4 控制语句 76
4.3 顺序结构 76
4.4 选择结构 77
4.4.1 用if语句实现选择结构 77
4.4.2 if语句的嵌套 79
4.4.3 用switch语句实现多分支选择结构 81
4.5 循环结构 84
4.5.1 goto型循环语句 84
4.5.2 用while语句实现循环 85
4.5.3 用do…while语句实现循环 87
4.5.4 用for语句实现循环 90
4.5.5 continue语句和break语句 93
4.5.6 循环的嵌套 95
4.6 程序举例 97
第5章 数组 108
5.1 引例 108
5.2 一维数组 110
5.2.1 一维数组的定义 110
5.2.2 一维数组的初始化 111
5.2.3 一维数组元素的使用 112
5.3 二维数组 113
5.3.1 二维数组的定义 114
5.3.2 二维数组的初始化 114
5.3.3 二维数组的使用 116
5.4 数组与循环计算举例 117
第6章 函数 131
6.1 函数的作用 132
6.2 函数定义和函数调用 134
6.2.1 函数定义 135
6.2.2 函数调用 137
6.3 函数调用中的参数传递 145
6.3.1 简单变量作函数参数 145
6.3.2 数组作函数参数 146
6.4 函数的嵌套调用和递归调用 151
6.4.1 函数的嵌套调用 151
6.4.2 函数的递归调用 152
6.5 变量的作用域和存储类别 155
6.5.1 局部变量及其存储类型 156
6.5.2 全局变量及其存储类型 160
第7章 指针 172
7.1 引例 173
7.2 指针和指针变量 174
7.2.1 指针的概念 174
7.2.2 指针变量的定义及初始化 175
7.2.3 指针及指针变量的运算 176
7.3 数组和指针 181
7.3.1 指向一维数组的指针 181
7.3.2 指向二维数组的指针 183
7.4 字符串和指针 186
7.4.1 字符串概念 186
7.4.2 字符数组 186
7.4.3 指向字符串的指针 189
7.4.4 字符数组与字符指针变量的对比 190
7.4.5 字符串输入输出函数 191
7.4.6 字符串处理函数 194
7.4.7 字符串应用举例 197
7.5 指针数组 199
7.6 指向指针的指针变量 201
7.7 函数和指针 203
7.7.1 指针变量作为函数参数 203
7.7.2 函数指针变量与指针型函数 209
7.7.3 main函数的参数 211
7.8 指针实例 213
第8章 编译预处理 226
8.1 预处理引例 226
8.2 宏定义 227
8.2.1 无参宏定义和宏替换 227
8.2.2 带参数的宏定义 230
8.3 文件包含 232
8.4 条件编译 233
第9章 自定义数据类型 240
9.1 结构体 240
9.1.1 结构体类型的定义 240
9.1.2 结构体变量的定义及初始化 241
9.1.3 结构体成员的引用 242
9.2 结构体数组 244
9.2.1 结构体数组的定义 244
9.2.2 结构体数组的初始化 244
9.2.3 结构体数组的应用 245
9.3 结构体和指针 246
9.3.1 指向结构体的指针 246
9.3.2 指向结构体数组的指针 249
9.3.3 结构体变量作为函数参数 250
9.4 链表 252
9.4.1 链表的定义 252
9.4.2 链表结点的基本操作 254
9.4.3 创建动态链表 255
9.4.4 链表的输出 257
9.4.5 链表中结点的插入和删除操作 257
9.4.6 链表的综合应用 260
9.5 共用体 261
9.5.1 共用体类型的定义 261
9.5.2 共用体变量的定义 262
9.5.3 共用体成员的引用 262
9.6 枚举 265
9.6.1 枚举类型的定义 265
9.6.2 枚举变量的定义和使用 266
9.7 用typedef定义类型别名 268
9.8 结构体、共用体综合实例 270
第10章 文件 279
10.1 文件和文件类型指针 279
10.1.1 流和文件的概念 280
10.1.2 文件类型指针 281
10.2 文件的打开和关闭 282
10.2.1 文件的打开(fopen函数) 282
10.2.2 文件的关闭(fclose函数) 284
10.3 文件的读写 285
10.3.1 单字符的读写函数 285
10.3.2 数据块的读写函数 288
10.3.3 对文件进行格式化读写函数 291
10.4 文件的定位 292
10.5 文件的出错检测 294
10.6 文件实例 295
附录 301
附录A 常用字符与ASCII码对照表 301
附录B C库函数 302
参考文献 308