第1章 C语言基础知识 1
1.1 C语言概述 1
1.1.1 C语言简介 1
1.1.2 C语言的特点 2
1.2 程序设计基础知识 2
1.2.1 程序设计简介 2
1.2.2 算法简介 3
1.2.3 程序基本结构及其流程图表示 5
1.3 C语言程序的基本构成 8
1.3.1 一个简单的C语言程序 8
1.3.2 C语言程序的构成 9
1.3.3 关键字 10
1.3.4 标识符 10
1.3.5 语句 10
1.3.6 标准库函数 11
1.4 C语言程序的运行 11
习题一 13
第2章 数据类型与运算规则 16
2.1 概述 16
2.2 常量与变量 17
2.2.1 常量 17
2.2.2 变量 20
2.3 算术运算与赋值运算 24
2.3.1 C语言中的运算规则 24
2.3.2 算术运算符与算术表达式 25
2.3.3 自增、自减运算 26
2.3.4 赋值运算符与赋值表达式 26
2.3.5 组合赋值运算符与组合赋值表达式 27
2.4 关系运算与逻辑运算 28
2.4.1 关系运算符与关系表达式 28
2.4.2 逻辑运算符与逻辑表达式 29
2.4.3 条件运算符与条件表达式 29
2.5 位运算 30
2.5.1 位运算符 30
2.5.2 按位逻辑运算 30
2.5.3 移位运算 31
2.5.4 位运算组合赋值运算符 32
2.6 其他运算 32
2.6.1 逗号运算符 32
2.6.2 “.”和“->”运算符 32
2.6.3 “()”和“[]”运算符 33
2.6.4 “*”和“&”运算符 33
2.6.5 (类型)运算符 33
2.6.6 sizeof运算符 33
2.7 混合运算及数据类型转换 34
习题二 36
第3章 顺序结构的程序设计 39
3.1 C语句概述 39
3.1.1 流程控制语句 39
3.1.2 表达式语句 40
3.1.3 函数调用语句 40
3.1.4 复合语句 40
3.1.5 空语句 40
3.2 赋值语句 40
3.3 数据输出 41
3.3.1 字符输出函数putchar() 41
3.3.2 格式化输出函数printf() 42
3.3.3 格式字符串 43
3.4 数据输入 45
3.4.1 字符输入函数getchar() 45
3.4.2 格式化输入函数scanf() 45
3.4.3 格式字符串 45
3.5 应用举例 48
习题三 51
第4章 选择结构的程序设计 55
4.1 概述 55
4.2 if语句 55
4.2.1 简单的if语句 55
4.2.2 分支if语句——if-else语句 57
4.2.3 多分支if语句——if-else-if语句 60
4.3 switch语句 66
4.4 goto语句 69
4.5 应用举例 70
习题四 75
第5章 循环结构的程序设计 84
5.1 概述 84
5.2 while语句 84
5.3 do-while语句 88
5.4 for语句 90
5.5 break语句与continue语句 95
5.5.1 break语句 95
5.5.2 continue语句 96
5.6 3种循环语句的比较 97
5.7 循环的嵌套 98
5.8 应用举例 101
习题五 107
第6章 数组 114
6.1 数组的基本概念 114
6.2 一维数组 115
6.2.1 一维数组的定义 115
6.2.2 一维数组的引用 115
6.2.3 一维数组的初始化 116
6.2.4 一维数组的应用 116
6.3 二维数组 129
6.3.1 二维数组的定义 129
6.3.2 二维数组的引用 130
6.3.3 二维数组的初始化 130
6.3.4 二维数组的应用 131
习题六 137
第7章 字符串处理 142
7.1 概述 142
7.2 一维字符数组 142
7.2.1 一维字符数组的定义 142
7.2.2 一维字符数组的初始化 143
7.2.3 一维字符数组的引用 144
7.2.4 字符串的输入与输出函数 145
7.3 字符串处理函数 148
7.3.1 求字符串长度 148
7.3.2 字符串复制 149
7.3.3 字符串连接 150
7.3.4 字符串比较 151
7.3.5 大写字母转换为小写字母 152
7.3.6 小写字母转换为大写字母 152
7.4 二维字符数组 153
7.4.1 二维字符数组的定义 153
7.4.2 二维字符数组的初始化 153
7.4.3 二维字符数组的引用 154
习题七 155
第8章 函数 159
8.1 概述 159
8.2 函数的语法 161
8.2.1 函数定义的一般格式 161
8.2.2 自定义函数的声明 166
8.2.3 函数参数和函数的值 167
8.2.4 函数的调用 169
8.3 数组作为函数参数 170
8.4 函数的嵌套调用 173
8.5 函数的递归调用 175
8.5.1 递归的概念 175
8.5.2 递归程序设计应用举例 175
8.6 局部变量和全局变量 178
8.6.1 局部变量 178
8.6.2 全局变量 178
8.7 变量的存储类别 179
8.7.1 动态存储方式与静态存储方式 179
8.7.2 auto变量 180
8.7.3 用static声明的局部变量 180
8.7.4 register变量 181
8.7.5 用extern声明的外部变量 182
8.8 工程文件 184
8.9 编译预处理 184
8.9.1 宏定义 185
8.9.2 文件包含 187
8.9.3 条件编译 188
习题八 190
第9章 指针 196
9.1 指针的基本概念 196
9.1.1 指针变量的定义 196
9.1.2 指针变量的初始化 197
9.1.3 使用指针引用变量 198
9.2 指针与函数 198
9.2.1 指针作函数的参数 198
9.2.2 函数返回指针 202
9.3 指针与数组 203
9.3.1 通过指针引用一维数组 203
9.3.2 指针基本运算 206
9.3.3 通过指针引用二维数组元素 210
9.4 指针与字符串 216
9.4.1 字符数组与字符指针 216
9.4.2 应用举例 217
9.5 指针数组 218
9.6 指向指针的指针 220
习题九 222
第10章 结构体与共用体 226
10.1 概述 226
10.2 结构类型声明 227
10.3 结构变量 228
10.3.1 结构变量的定义 228
10.3.2 结构变量的初始化 230
10.3.3 结构变量的引用 231
10.4 结构数组 233
10.4.1 结构数组的定义 233
10.4.2 结构数组的初始化 234
10.4.3 结构数组应用举例 235
10.5 结构指针 236
10.5.1 指向结构变量的指针 236
10.5.2 指向结构数组的指针 237
10.5.3 结构与函数 238
10.6 链表处理——结构指针的应用 239
10.6.1 链表概述 239
10.6.2 链表的基本运算 240
10.7 共用体 244
10.7.1 共用体 245
10.7.2 共用体与结构体的区别 245
10.7.3 共用体应用举例 247
10.8 类型定义——typedef 248
习题十 248
第11章 文件 252
11.1 C语言文件概述 252
11.1.1 文件的分类 252
11.1.2 文件的处理 253
11.1.3 文件指针 253
11.2 文件的打开与关闭 254
11.3 文件的检测 256
11.3.1 文件结束检测函数feof() 256
11.3.2 文件读写出错检测函数ferror() 256
11.3.3 exit()函数 257
11.4 文件的顺序读写 257
11.4.1 单字符读写函数fgetc()和 fputc() 257
11.4.2 字符串的读写函数fgets()和fputs() 260
11.4.3 数据块读写函数fread()和fwrite() 262
11.4.4 格式化读写函数fscanf()和fprintf() 264
11.5 文件的随机读写 265
11.5.1 rewind()函数 265
11.5.2 fseek()函数 266
11.5.3 ftell()函数 266
习题十一 267
附录A 运算符 270
附录B C语言常用库函数 272
附录C ASCII码表 279
附录D 关于C语言程序的书写格式 281
参考文献 286