第1章 概述 1
1.1 计算机程序设计语言的发展 1
1.2 算法 2
1.2.1 算法的主要特征 2
1.2.2 算法的描述方法 2
1.3 C语言简介 3
1.3.1 C语言发展历程 3
1.3.2 C语言的特点 4
1.3.3 C语言程序示例 4
1.3.4 C语言程序书写约定 5
1.4 C语言程序开发步骤 6
1.4.1 C语言程序开发过程 6
1.4.2 VC++6.0环境中C语言程序运行步骤 6
1.4.3 VC++6.0环境中其他关键功能 10
1.5 C语言程序的错误类型及调试方法 11
1.5.1 编译错误及调试方法 11
1.5.2 链接错误及调试方法 12
1.5.3 运行错误及调试方法 14
1.5.4 逻辑错误及调试方法 14
1.6 综合案例 16
习题 18
第2章 数据类型和表达式 20
2.1 C语言字符集与词法规则 20
2.1.1 C语言字符集 20
2.1.2 C语言词汇及其组成规则 21
2.2 数据类型 22
2.2.1 基本类型 22
2.2.2 其他数据类型 23
2.3 常量 23
2.3.1 整型常量 24
2.3.2 实型常量 24
2.3.3 字符型常量 25
2.3.4 字符串常量 26
2.3.5 符号常量 26
2.4 变量 26
2.4.1 变量的定义 27
2.4.2 变量赋初值 27
2.4.3 常变量 27
2.5 运算符和表达式 27
2.5.1 运算符的优先级与结合性 28
2.5.2 算术运算符和算术表达式 29
2.5.3 赋值运算符与赋值表达式 31
2.5.4 关系运算符和关系表达式 31
2.5.5 逻辑运算符和逻辑表达式 31
2.5.6 其他运算符与表达式 32
2.5.7 数据的类型转换 33
2.6 典型例题 35
2.7 综合案例 35
习题 36
第3章 顺序结构程序设计及常用函数 38
3.1 C语句分类 38
3.2 常用数据输出函数 39
3.2.1 单字符输出函数putchar 40
3.2.2 格式输出函数printf 40
3.3 常用数据输入函数 44
3.3.1 单字符输入函数getchar 44
3.3.2 格式输入函数scanf 44
3.4 其他常用函数 49
3.4.1 常用数学函数 49
3.4.2 常用字符函数 49
3.4.3 其他常用工具函数 49
3.5 典型例题 51
3.6 综合案例 52
习题 53
第4章 选择结构程序设计 55
4.1 if条件语句 55
4.2 条件表达式 61
4.3 switch语句 63
4.4 典型例题 66
4.5 综合案例 70
习题 72
第5章 循环结构程序设计 75
5.1 while语句 75
5.2 do-while语句 78
5.3 for语句 79
5.4 循环语句的嵌套 82
5.5 break语句和continue语句 84
5.5.1 break语句 84
5.5.2 continue语句 85
5.6 典型例题 86
5.7 综合案例 88
习题 90
第6章 数组 94
6.1 一维数组 95
6.1.1 一维数组的定义 95
6.1.2 一维数组的使用 97
6.1.3 一维数组的初始化 98
6.2 二维数组 100
6.2.1 二维数组的定义 101
6.2.2 二维数组的使用 104
6.2.3 二维数组的初始化 105
6.3 字符串 107
6.3.1 字符串常量 107
6.3.2 字符串与字符数组 108
6.3.3 字符串的输入输出 111
6.3.4 字符串处理函数 113
6.4 典型例题 117
6.5 综合案例 120
习题 121
第7章 函数与变量 126
7.1 函数定义 126
7.2 函数的调用 128
7.2.1 函数的调用形式 128
7.2.2 函数的调用过程 128
7.2.3 函数的嵌套调用 130
7.3 函数原型声明 131
7.4 函数的参数传递 132
7.4.1 传值方式 132
7.4.2 传址方式 133
7.5 递归函数 138
7.6 变量的作用域 140
7.6.1 局部变量 141
7.6.2 全局变量 142
7.7 变量的存储类型 142
7.7.1 自动变量 143
7.7.2 静态变量 144
7.7.3 寄存器变量 144
7.7.4 外部变量 145
7.7.5 变量汇总 146
7.8 典型例题 146
7.9 综合案例 149
习题 151
第8章 指针 157
8.1 指针与指针变量 157
8.1.1 指针变量的基本概念 157
8.1.2 指针变量的定义与初始化 159
8.1.3 指针变量的使用 160
8.1.4 二级指针 162
8.2 指针与数组 163
8.2.1 一维数组和指针 164
8.2.2 二维数组和指针 167
8.2.3 指向字符串的指针 172
8.3 指针与函数 174
8.3.1 指针变量作为函数参数 174
8.3.2 指向函数的指针 178
8.3.3 返回值为指针的函数 180
8.3.4 main 函数的参数 181
8.4 典型例题 182
8.5 综合案例 188
习题 189
第9章 结构体与共用体 195
9.1 结构体类型 195
9.1.1 定义结构体类型 195
9.1.2 结构体变量的定义 196
9.1.3 结构体变量的使用 198
9.1.4 结构体变量的初始化 199
9.1.5 结构体变量的赋值 200
9.2 结构体数组 201
9.2.1 结构体数组的定义 201
9.2.2 结构体数组的初始化 201
9.2.3 结构体数组的使用 202
9.3 结构体类型指针 203
9.3.1 指向结构体变量的指针 203
9.3.2 指向结构体数组的指针 205
9.4 结构体与函数 206
9.4.1 结构体变量作函数参数 206
9.4.2 指向结构体变量(或数组)的指针作函数参数 207
9.4.3 函数的返回值为结构体类型 208
9.5 链表 209
9.5.1 链表概述 209
9.5.2 动态存储分配函数 210
9.5.3 链表的基本操作 210
9.6 共用体 216
9.6.1 共用体类型的定义 216
9.6.2 共用体类型变量的定义 217
9.6.3 共用体变量的使用 217
9.7 枚举类型 218
9.8 typedef类型定义 220
9.9 典型例题 222
9.10 综合案例 224
习题 225
第10章 编译预处理 233
10.1 宏定义 233
10.1.1 不带参数的宏定义 233
10.1.2 带参数的宏定义 235
10.2 文件包含 236
10.3 条件编译 236
10.4 典型例题 238
10.5 综合案例 239
习题 239
第11章 位运算 242
11.1 位运算符 242
11.2 位运算的应用 243
11.3 位段及其应用 249
11.4 典型例题 251
习题 252
第12章 文件 255
12.1 文件概述 255
12.2 文件指针 257
12.3 文件的打开与关闭 258
12.4 文件的定位与检测 261
12.5 文件的读写操作 263
12.5.1 按字符方式文件读写函数fgetc和fputc 263
12.5.2 按字符串方式文件读写函数fgets和fputs 265
12.5.3 按格式化方式文件读写函数fscanf和fprintf 266
12.5.4 按数据块方式文件读写函数fread和fwrite 268
12.5.5 文件的随机读写 270
12.6 典型例题 271
12.7 综合案例 273
习题 273
附录A C语言常用库函数 278
附录B 常用字符与ASCII代码对照表 284
附录C 综合案例参考源代码 285
参考文献 295