第1章 C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 1
1.2 C语言的标识符与关键字 2
1.2.1 字符集 2
1.2.2 标识符 2
1.2.3 关键字 3
1.3 C语言程序概述 3
1.3.1 C语言程序的基本组成 3
1.3.2 C语言程序的书写风格 5
1.4 C语言程序上机调试 6
1.4.1 Microsoft Visual C++6.0集成开发环境 6
1.4.2 C语言程序的上机调试步骤 6
习题 9
第2章 数据类型、运算符与表达式 10
2.1 数据类型 10
2.2 常量 11
2.2.1 整型常量 11
2.2.2 实型常量 12
2.2.3 字符常量 12
2.2.4 字符串常量 14
2.2.5 符号常量 14
2.3 变量 15
2.3.1 变量的定义和初始化 15
2.3.2 整型变量 17
2.3.3 实型变量 17
2.3.4 字符变量 18
2.4 基本输入/输出函数 19
2.4.1 字符输出函数——putchar() 19
2.4.2 字符输入函数——getchar() 20
2.4.3 格式输出函数——printf() 21
2.4.4 格式输入函数——scanf() 25
2.5 运算符和表达式 29
2.5.1 算术运算符和算术表达式 30
2.5.2 强制类型转换运算符 32
2.5.3 赋值运算符和赋值表达式 33
2.5.4 自加、自减运算符及其表达式 35
2.5.5 关系运算符和关系表达式 36
2.5.6 逻辑运算符和逻辑表达式 37
2.5.7 条件运算符和条件表达式 39
2.5.8 逗号运算符和逗号表达式 41
2.5.9 求字节数运算符 41
2.5.10 位运算符和位运算 42
习题 44
第3章 顺序结构程序设计 48
3.1 程序设计基础 48
3.2 C语言的基本语句 50
3.3 顺序结构程序设计举例 52
习题 53
第4章 选择结构程序设计 54
4.1 if语句 54
4.2 switch语句 62
4.3 选择结构程序设计举例 64
习题 67
第5章 循环结构程序设计 72
5.1 while语句 72
5.2 do…while语句 75
5.3 for语句 78
5.4 转向语句 83
5.4.1 break语句 83
5.4.2 continue语句 85
5.4.3 goto语句 86
5.5 多重循环 87
5.6 循环结构程序设计举例 89
习题 92
第6章 数组 99
6.1 一维数组 99
6.1.1 一维数组的定义 99
6.1.2 一维数组元素的引用 100
6.1.3 一维数组的初始化 101
6.1.4 一维数组程序应用举例 102
6.2 二维数组 107
6.2.1 二维数组的定义 107
6.2.2 二维数组元素的引用 108
6.2.3 二维数组的初始化 108
6.2.4 二维数组程序应用举例 109
6.3 字符数组 113
6.3.1 字符数组的定义 113
6.3.2 字符数组元素的引用 113
6.3.3 字符数组的初始化 113
6.3.4 字符数组的输入/输出 114
6.3.5 常用的字符串处理函数 116
习题 120
第7章 函数 123
7.1 函数概述 123
7.1.1 函数的分类 123
7.1.2 函数的定义 124
7.2 函数的调用和声明 125
7.2.1 函数的调用 125
7.2.2 函数的声明 126
7.3 函数的参数传递方式和返回值 127
7.3.1 函数的参数传递方式 127
7.3.2 函数的返回值 130
7.4 函数的嵌套调用和递归调用 132
7.4.1 函数的嵌套调用 132
7.4.2 函数的递归调用 133
7.5 变量的作用域与存储 135
7.5.1 变量的作用域 135
7.5.2 变量的存储方式 138
7.5.3 变量的存储类别 139
7.6 内部函数和外部函数 142
7.6.1 内部函数 142
7.6.2 外部函数 143
习题 143
第8章 编译预处理 146
8.1 文件包含 146
8.2 宏定义 148
8.2.1 不带参数的宏定义 148
8.2.2 带参数的宏定义 151
8.3 条件编译 152
习题 154
第9章 指针 158
9.1 指针的概念 158
9.1.1 地址及指针 158
9.1.2 变量的指针 158
9.2 指针变量 159
9.2.1 指针变量的定义及初始化 159
9.2.2 指针变量的引用 162
9.3 指针与一维数组 164
9.3.1 数组的指针和指针变量 164
9.3.2 指针运算 165
9.3.3 通过指针引用数组的元素 166
9.4 字符指针与字符串 170
9.4.1 字符指针变量 170
9.4.2 字符指针与字符数组的区别 171
9.5 指针与二维数组 171
9.5.1 二维数组的指针 171
9.5.2 二维数组元素的表示方法 172
9.5.3 行指针变量 174
9.6 指针数组 175
9.7 指针作为函数的参数 179
9.8 多级指针 181
习题 183
第10章 结构体与共用体 188
10.1 结构体类型与结构体类型变量 188
10.1.1 结构体类型的定义 188
10.1.2 结构体类型变量 189
10.1.3 结构体类型变量的引用 192
10.2 结构体类型数组 194
10.2.1 结构体类型数组的定义及初始化 194
10.2.2 结构体类型数组元素的引用 195
10.3 指向结构体类型数据的指针变量 197
10.3.1 指向结构体类型变量的指针变量 197
10.3.2 指向结构体类型数组的指针变量 199
10.4 单向链表 200
10.4.1 单向链表的数据结构 201
10.4.2 动态分配和释放空间函数 201
10.4.3 单向链表的基本操作 202
10.5 共用体类型 213
10.5.1 共用体类型的定义 213
10.5.2 共用体类型变量的定义 213
10.5.3 共用体类型变量的引用 214
10.5.4 共用体类型变量的赋值 215
10.6 枚举类型 217
10.7 为已有类型定义起别名 219
习题 220
第11章 文件 221
11.1 文件概述 221
11.1.1 文件系统概述 221
11.1.2 文件类型指针 222
11.2 文件的打开与关闭 222
11.2.1 文件的打开 223
11.2.2 文件的关闭 224
11.3 文件的读/写函数 225
11.3.1 字符读/写函数 225
11.3.2 字符串读/写函数 228
11.3.3 格式化读/写函数 229
11.3.4 数据块读/写函数 232
11.4 文件的定位 233
11.5 文件的出错检验 234
习题 235
附录 239
附录1 常用字符与ASCII码对照表 239
附录2 C语言常用库函数 241
习题参考答案 246
参考文献 258