第1章 C语言概述 1
1.1 C语言简介 1
1.2 C语言特点 1
1.3 C语言程序结构和书写风格 2
1.3.1 简单的C语言程序 2
1.3.2 C语言程序结构 4
1.3.3 C程序的书写风格 4
1.4 C语言程序的编译和执行 4
习题 5
第2章 数据类型、运算符及表达式 8
2.1 C语言的数据类型 8
2.1.1 数据类型的概念 8
2.1.2 C语言的数据类型 8
2.2 常量 9
2.2.1 整型常量 9
2.2.2 实型常量 9
2.2.3 字符常量 10
2.2.4 字符串常量 11
2.2.5 符号常量 11
2.3 变量及其类型定义 12
2.3.1 变量 12
2.3.2 变量类型定义 13
2.3.3 变量的初始化 15
2.4 数据类型之间的转换与运算 15
2.4.1 自动类型转换 16
2.4.2 强制类型转换 17
2.5 运算符和表达式 18
2.5.1 算术运算符和算术表达式 18
2.5.2 赋值运算符和赋值表达式 19
2.5.3 关系运算符和关系表达式 20
2.5.4 逻辑运算符和逻辑表达式 21
2.5.5 逗号运算符和逗号表达式 22
2.5.6 条件运算符和条件表达式 23
2.5.7 求字节运算符 24
2.6 运算符的优先级及其结合性 24
2.7 应用举例 25
习题 26
第3章 语句 29
3.1 C语言语句概述 29
3.2 if条件分支语句 30
3.2.1 if语句的简单形式 30
3.2.2 if语句的嵌套形式 30
3.2.3 if…else条件分支语句 31
3.2.4 if…else语句的嵌套 31
3.2.5 应用举例 33
3.3 break、goto等跳转语句 34
3.3.1 break语句 34
3.3.2 continue语句 35
3.3.3 return语句 35
3.3.4 goto语句 36
3.4 switch开关分支语句 36
3.5 while循环语句 39
3.6 do…while循环语句 41
3.7 for循环语句 42
3.8 数据的基本输入和输出 43
3.8.1 字符输入函数getchar 43
3.8.2 格式输入函数scanf 44
3.8.3 字符输出函数putchar 45
3.8.4 格式输出函数printf 45
习题 47
第4章 数组及其应用 50
4.1 一维数组 50
4.1.1 一维数组的定义 50
4.1.2 一维数组元素的引用 51
4.1.3 一维数组的初始化 52
4.2 二维数组 54
4.2.1 二维数组的定义和引用 54
4.2.2 二维数组元素的初始化 55
4.3 字符数组与字符串 58
4.3.1 字符数组的概念 58
4.3.2 字符数组的初始化 58
4.3.3 字符数组的引用 59
4.3.4 字符数组的输入和输出 60
4.3.5 常用的字符串处理函数 61
4.4 应用举例 64
习题 67
第5章 函数和变量作用域 69
5.1 函数的概念 69
5.2 函数的定义和调用 70
5.2.1 函数的定义 70
5.2.2 函数的调用 71
5.3 函数的返回值及其类型 71
5.4 函数的参数及其传递方式 74
5.4.1 非数组作为函数参数的传值方式 75
5.4.2 数组名作为函数参数的传址方式 75
5.5 函数的嵌套调用和递归调用 77
5.5.1 函数的嵌套调用 77
5.5.2 函数的递归调用 79
5.6 变量的作用域及其存储类型 81
5.6.1 局部变量及其存储类型 81
5.6.2 全局变量及其存储类型 84
5.7 内部函数和外部函数 86
5.7.1 内部函数 86
5.7.2 外部函数 86
5.8 应用举例 87
习题 89
第6章 指针 92
6.1 指针的基本概念 92
6.2 指针变量的定义和引用 93
6.2.1 指针变量的定义 93
6.2.2 指针变量的初始化 94
6.2.3 指针变量的引用 95
6.2.4 指针的运算 97
6.3 指针与数组 99
6.3.1 用指针访问数组元素 100
6.3.2 用指针访问字符串 101
6.3.3 指针数组 103
6.4 指针与函数 103
6.4.1 指针作为函数的参数 104
6.4.2 数组名作为函数参数 106
6.4.3 函数的返回值为指针 108
6.4.4 指向函数的指针 109
6.4.5 命令行参数 114
6.5 多级指针 115
6.6 应用举例 116
习题 118
第7章 结构、联合与枚举 122
7.1 结构类型及其变量的定义 122
7.2 结构类型变量的引用 124
7.3 结构变量的初始化 125
7.4 结构作为函数参数 126
7.5 结构与数组 128
7.6 结构与指针 130
7.6.1 指针指向结构对象 130
7.6.2 指针作为结构的成员 131
7.6.3 链表 132
7.7 结构的嵌套 136
7.8 联合 138
7.9 枚举 140
7.10 应用举例 142
习题 148
第8章 位运算 150
8.1 二进制位运算 150
8.1.1 “按位与”运算符& 150
8.1.2 “按位或”运算符| 152
8.1.3 “按位异或”运算符^ 153
8.1.4 “按位取反”运算符~ 154
8.1.5 左移运算符<< 154
8.1.6 右移运算符>> 155
8.2 位复合赋值运算符 156
8.3 位段 156
8.4 应用举例 158
习题 161
第9章 编译预处理 163
9.1 宏定义 163
9.1.1 符号常量定义 163
9.1.2 带参数的宏定义 165
9.2 文件包括 166
9.3 条件编译 167
9.4 应用举例 171
习题 172
第10章 文件 175
10.1 文件概述 175
10.2 缓冲文件系统 176
10.2.1 文件打开函数fopen 176
10.2.2 文件关闭函数fclose 177
lO.2.3 文件读函数fgetc,fread,fscanf 178
10.2.4 文件写函数fputc,fwrite,fprintf 179
10.2.5 文件定位函数rewind,fseek,ftell 181
10.3 非缓冲文件系统 182
10.3.1 文件打开函数open和文件创建函数creat 182
lO.3.2 文件关闭函数close 183
lO.3.3 文件读函数read 183
lO.3.4 文件写函数write 183
10.3.5 文件定位函数lseek,tell 184
10.4 应用举例 184
习题 189
附录1 标准ASCII字符集 193
附录2 各章习题参考答案 196