第1章 程序逻辑与程序设计语言 1
1.1 程序与程序逻辑 1
1.1.1 程序 1
1.1.2 算法 1
1.1.3 程序设计方法 8
1.2 程序设计语言 9
1.3 C语言概述 10
1.3.1 C语言的发展过程 11
1.3.2 C语言的特点 12
1.4 C语言程序的上机实现 13
1.5 实训 17
1.6 习题 18
第2章 数据类型、运算符与表达式 20
2.1 C语言的数据类型 20
2.2 常量与变量 20
2.2.1 常量和符号常量 21
2.2.2 变量 21
2.3 基本数据类型 23
2.3.1 整型数据 23
2.3.2 实型数据 24
2.3.3 字符型数据 25
2.4 不同类型数据间的转换 28
2.5 运算符与表达式 29
2.5.1 算术运算符与算术表达式 30
2.5.2 关系运算符与关系表达式 31
2.5.3 逻辑运算符与逻辑表达式 31
2.5.4 赋值运算符与赋值表达式 32
2.5.5 逗号运算符与逗号表达式 33
2.6 实训 34
2.7 习题 35
第3章 C语言程序设计的三种基本结构 38
3.1 顺序结构程序设计 38
3.1.1 C语言基本语句 38
3.1.2 字符数据的输入与输出 40
3.1.3 格式输入与输出 42
3.1.4 顺序结构程序设计应用举例 46
3.2 选择结构程序设计 48
3.2.1 if语句的三种形式 48
3.2.2 条件运算 50
3.2.3 if语句的嵌套 51
3.2.4 switch语句 52
3.2.5 选择结构程序设计举例 54
3.3 循环结构程序设计 56
3.3.1 while语句 56
3.3.2 do-while语句 57
3.3.3 for语句 58
3.3.4 循环的嵌套 58
3.3.5 break语句和continue语句 60
3.3.6 循环结构程序设计举例 61
3.4 实训 65
3.5 习题 69
第4章 数组 78
4.1 一维数组 78
4.1.1 一维数组的定义 78
4.1.2 一维数组元素的引用 79
4.1.3 一维数组的初始化 80
4.1.4 一维数组应用举例 81
4.2 二维数组 82
4.2.1 二维数组的定义 83
4.2.2 二维数组元素的引用 83
4.2.3 二维数组的初始化 84
4.2.4 二维数组应用举例 85
4.3 字符数组与字符串 87
4.3.1 字符数组的定义、引用及初始化 88
4.3.2 字符串 89
4.3.3 常用的字符串处理函数 90
4.3.4 字符数组应用举例 95
4.4 实训 97
4.5 习题 99
第5章 函数 104
5.1 函数概述 104
5.2 函数的定义 105
5.3 函数的调用与返回值 108
5.3.1 函数的调用 108
5.3.2 被调用函数的声明 109
5.3.3 函数的参数 111
5.3.4 函数的返回值 112
5.4 函数的嵌套调用 113
5.5 函数的递归调用 114
5.6 数组作为函数参数 116
5.6.1 数组元素作为函数参数 116
5.6.2 数组名作为函数的参数 117
5.7 变量的作用域和生存期 118
5.7.1 变量的作用域 118
5.7.2 变量的生存期 121
5.8 函数应用举例 124
5.9 实训 126
5.10 习题 129
第6章 指针 134
6.1 指针的概念 134
6.2 指针变量的定义和引用 135
6.2.1 指针变量的定义 135
6.2.2 指针变量的引用 136
6.2.3 指针变量应用举例 138
6.3 指针与数组 140
6.3.1 指向一维数组的指针变量 140
6.3.2 指向多维数组的指针变量 142
6.3.3 指针与数组应用举例 144
6.4 指针与字符串 146
6.5 指针数组 149
6.6 指针与函数 150
6.6.1 指针变量作为函数的参数 150
6.6.2 返回指针值的函数 152
6.6.3 指向函数的指针变量 153
6.6.4 指针与函数应用举例 155
6.7 实训 157
6.8 习题 160
第7章 结构体与共用体 165
7.1 结构体类型的概述及定义 165
7.2 结构体类型变量 166
7.2.1 结构体类型变量的定义 166
7.2.2 结构体类型变量的引用 168
7.2.3 结构体类型变量的初始化 169
7.2.4 结构体类型变量应用举例 170
7.3 结构体数组 171
7.3.1 结构体数组的定义 171
7.3.2 结构体数组的初始化 172
7.3.3 结构体数组应用举例 172
7.4 指向结构体类型数据的指针 174
7.4.1 指向结构体变量的指针 174
7.4.2 指向结构体数组的指针 175
7.4.3 用结构体变量和指向结构体的指针变量作函数参数 176
7.5 动态存储分配 177
7.6 链表 179
7.6.1 链表概述 179
7.6.2 建立动态链表 180
7.6.3 对链表的基本操作 182
7.7 共用体 186
7.7.1 共用体类型的定义 186
7.7.2 共用体变量的定义和引用 186
7.8 枚举类型 189
7.9 用typedef定义类型 192
7.10 实训 192
7.11 习题 194
第8章 编译预处理 199
8.1 宏定义 199
8.2 文件包含 202
8.3 条件编译 203
8.4 实训 205
8.5 习题 206
第9章 位运算 208
9.1 位运算符和位运算 208
9.2 位运算举例 211
9.3 位段 212
9.4 实训 214
9.5 习题 215
第10章 文件 218
10.1 C文件概述 218
10.2 文件类型指针 219
10.3 文件的打开与关闭 220
10.3.1 文件的打开 220
10.3.2 文件的关闭 221
10.4 文件的读写 222
10.4.1 字符读写函数 222
10.4.2 字符串读写函数 224
10.4.3 数据块读写函数 226
10.4.4 格式读写函数 227
10.5 文件的定位 228
10.5.1 rewind函数 228
10.5.2 fseek函数 228
10.6 文件检测函数 229
10.7 实训 229
10.8 习题 231
第11章 综合实例 233
11.1 实例题目:设计“电子时钟” 233
11.2 实例要求 233
11.3 程序代码 233
附录 241
附录A 常用字符与ASCII代码对照表 241
附录B C语言中的运算符和结合性 242
附录C C语言的关键字 243
附录D C语言常用库函数 243
附录E C语言常见错误 245