第1章 C语言概述 1
1.1 程序及程序设计的基础知识 1
1.1.1 语言的发展 1
1.1.2 数制的基本概念 2
1.2 C语言概述 4
1.2.1 C语言的特点 4
1.2.2 C语言标识符与关键字 5
1.2.3 C程序的基本结构 6
1.2.4 C语言的语句 7
1.3 C程序的开发过程 8
1.4 应用 9
1.5 习题 10
第2章 数据类型、运算符、表达式与基本输入输出 12
2.1 C语言的数据类型 12
2.2 常量与变量 12
2.2.1 基本常量和符号常量 12
2.2.2 变量 13
2.3 整型数据 14
2.3.1 整型常量 14
2.3.2 整型变量 15
2.4 实型数据 16
2.4.1 实型常量 16
2.4.2 实型变量 17
2.5 字符型数据 18
2.5.1 字符型常量 18
2.5.2 字符型变量 19
2.5.3 字符串常量 20
2.6 基本输入输出函数 21
2.6.1 格式输出函数printf 21
2.6.2 格式输入函数scanf 23
2.6.3 字符输出函数putchar 26
2.6.4 字符输入函数getchar 27
2.7 运算符和表达式 27
2.7.1 算术运算符和算术表达式 28
2.7.2 赋值运算符和赋值表达式 30
2.7.3 不同类型数据间的混合运算 32
2.7.4 关系运算符和关系表达式 33
2.7.5 逻辑运算符和逻辑表达式 34
2.7.6 逗号运算符和逗号表达式 36
2.7.7 求字节数运算符 36
2.7.8 位运算符和位运算 37
2.8 指针的概念与运算 39
2.8.1 地址及指针 39
2.8.2 指针变量的定义、赋值和应用 40
2.9 习题 43
第3章 顺序程序设计 47
3.1 算法 47
3.2 结构化程序设计方法 51
3.3 顺序结构程序设计应用 52
3.4 习题 53
第4章 分支结构程序设计 58
4.1 if语句 58
4.1.1 if语句的形式 58
4.1.2 if语句的嵌套 62
4.2 条件运算符和条件表达式 63
4.3 switch语句 65
4.3.1 在switch中不使用break语句 65
4.3.2 在switch语句的每个语句段中都使用break语句 67
4.3.3 在switch的某些语句段中使用break语句 67
4.4 分支(选择)结构程序应用 68
4.5 习题 72
第5章 循环结构程序设计 76
5.1 while语句 76
5.2 do...while语句 78
5.3 for语句 80
5.4 几种循环语句的比较 82
5.5 continue语句和break语句 84
5.5.1 continue语句 84
5.5.2 break语句 84
5.6 循环语句的嵌套 86
5.7 循环结构程序应用 88
5.8 习题 91
第6章 数组与指针 95
6.1 一维数组的定义和引用 95
6.1.1 一维数组的定义 95
6.1.2 一维数组元素的引用 96
6.1.3 一维数组的初始化 97
6.1.4 一维数组的应用 98
6.2 一维字符数组及指针 101
6.2.1 一维数组的指针和指向一维数组的指针变量 101
6.2.2 指针运算 103
6.2.3 通过指针引用数组元素 104
6.2.4 一维字符数组及字符指针变量的定义 106
6.2.5 一维字符数组及字符指针的初始化 106
6.2.6 字符数组的输入和输出 107
6.2.7 常用字符串处理函数 109
6.2.8 字符数组应用 111
6.3 二维数组 112
6.3.1 二维数组的定义 112
6.3.2 二维数组元素的引用 112
6.3.3 二维数组的初始化 112
6.3.4 二维数组的应用 114
6.3.5 多维数组的指针 116
6.4 指针数组和指向数组的指针 117
6.5 指向指针的指针变量 120
6.6 习题 121
第7章 函数与变量 127
7.1 函数 127
7.1.1 函数的定义 128
7.1.2 函数的引用 129
7.1.3 函数调用 131
7.1.4 返回值 133
7.2 函数的嵌套调用 133
7.3 函数的递归调用 136
7.4 指针作为函数的参数 138
7.4.1 指针变量作为函数参数 138
7.4.2 数组元素作为函数参数 140
7.4.3 数组名作为函数参数 141
7.5 变量的存储类型及分类 143
7.6 内部函数和外部函数 146
7.6.1 内部函数 146
7.6.2 外部函数 146
7.7 函数的指针和指向函数的指针变量 147
7.8 返回指针值的函数 150
7.9 局部变量和全局变量 152
7.9.1 局部变量 152
7.9.2 局部变量的存储类型 153
7.9.3 全局变量 154
7.9.4 全局变量的存储类型 155
7.10 函数的应用 156
7.11 习题 161
第8章 编译与预处理 167
8.1 宏定义 167
8.1.1 无参宏定义 167
8.1.2 带参宏定义 170
8.2 文件包含 172
8.3 条件编译 173
8.4 枚举类型 175
8.5 用typedef定义类型 178
8.6 习题 179
第9章 结构体与其他数据类型 184
9.1 结构体变量 184
9.1.1 结构体类型的声明 184
9.1.2 结构体类型变量的定义和初始化 185
9.1.3 结构体变量的引用 188
9.2 结构体数组 190
9.3 指向结构体类型数据的指针 193
9.4 共用体 196
9.4.1 共用体类型的定义 196
9.4.2 共用体类型变量的定义及初始化 196
9.4.3 共用体变量的引用 197
9.5 链表 198
9.5.1 单向链表的数据结构 199
9.5.2 内存空间的动态分配和释放 199
9.5.3 单向链表的基本操作 201
9.6 习题 205
第10章 文件 209
10.1 C文件概述 209
10.2 文件的打开与关闭 210
10.2.1 文件指针 210
10.2.2 文件的打开 210
10.2.3 文件的关闭 211
10.3 常用的文件读写函数 212
10.3.1 字符读写函数fgetc和fputc 212
10.3.2 字符串读写函数fgets和fputs 214
10.3.3 数据块读写函数fread和fwrite 216
10.3.4 格式化读写函数fscanf和fprintf 218
10.4 文件的定位 219
10.4.1 文件定位 219
10.4.2 文件的随机读写 220
10.5 错误检验 221
10.6 习题 221
附录 226
附录1 常见字符的ASCII码 226
附录2 常用的标准库函数 226
附录3 常见出错信息 229
参考文献 233