第1章 C语言概述 1
1.1 C程序设计语言发展 1
1.2 C语言特点 2
1.3 简单的C程序开发 4
1.4 C语言的运行环境 6
1.5 算法 15
本章小结 18
习题1 18
第2章 数据类型、运算符、表达式 20
2.1 C语言的数据类型及作用 20
2.1.1 整型数据 21
2.1.2 字符类型 23
2.1.3 浮点类型 24
2.2 常量、变量和标识符 25
2.2.1 常量 25
2.2.2 变量 26
2.2.3 标识符 27
2.3 运算符与表达式 28
2.3.1 算术运算符 28
2.3.2 关系和逻辑运算符 30
2.3.3 赋值运算符 31
2.3.4 逗号运算符 33
2.3.5 条件运算符 34
2.3.6 sizeof运算符 34
2.3.7 地址运算符 36
2.3.8 运算符的优先级及结合性 37
2.4 表达式 37
2.5 数据类型的转换 40
2.6 综合举例 42
本章小结 43
习题2 44
第3章 顺序结构程序设计 46
3.1 程序基本结构 46
3.2 输入/输出语句 47
3.2.1 scanf()函数 48
3.2.2 printf()函数 49
3.2.3 getchar()函数与putchar()函数 52
3.3 综合举例 53
本章小结 54
习题3 55
第4章 选择结构程序设计 58
4.1 if语句 58
4.1.1 if选择结构 58
4.1.2 if...else选择结构 59
4.1.3 if...else...if选择结构 59
4.1.4 if语句的嵌套 61
4.2 switch语句 62
4.3 综合举例 65
本章小结 68
习题4 69
第5章 循环结构程序设计 72
5.1 while循环语句 72
5.2 do...while循环语句 73
5.3 for循环语句 75
5.4 三种循环语句的比较 76
5.5 综合举例 77
5.5.1 单重循环应用举例 77
5.5.2 嵌套循环及其应用举例 78
5.5.3 break语句和continue语句 79
5.6 程序排错 82
5.6.1 程序中常见的出错原因 82
5.6.2 程序调试与排错基本方法 83
本章小结 84
习题5 84
第6章 数组 88
6.1 一维数组 88
6.1.1 一维数组的定义 88
6.1.2 一维数组元素的引用 89
6.1.3 一维数组的初始化 89
6.1.4 一维数组应用举例 90
6.2 二维数组 92
6.2.1 二维数组的定义 92
6.2.2 二维数组元素的引用 92
6.2.3 二维数组的初始化 94
6.3 字符数组与字符串 95
6.3.1 字符数组的定义 95
6.3.2 字符数组的初始化 95
6.3.3 字符数组的引用 96
6.3.4 字符串和字符串结束标志 6
6.3.5 字符数组的输入/输出 97
6.3.6 字符串处理函数 97
6.4 综合举例 100
本章小结 102
习题6 102
第7章 函数 105
7.1 函数概述 105
7.2 函数的定义 107
7.2.1 无参函数的定义 107
7.2.2 有参函数的定义 107
7.3 函数调用 108
7.3.1 形式参数和实际参数 108
7.3.2 函数的返回值 109
7.3.3 函数的调用 109
7.4 函数的嵌套和递归 112
7.4.1 函数的嵌套 112
7.4.2 函数的递归调用 113
7.5 变量的作用域及存储类型 117
7.5.1 静态、动态 117
7.5.2 变量的作用域 118
7.6 外部、内部函数 119
7.7 综合举例 120
本章小结 124
习题7 124
第8章 预处理 127
8.1 宏定义 127
8.1.1 不带参数的宏定义 127
8.1.2 带参数的宏定义 129
8.2 文件包含 131
8.3 条件编译 132
本章小结 134
习题8 134
第9章 指针 137
9.1 指针概述 137
9.1.1 指针的概念 137
9.1.2 指针变量的定义和使用 138
9.2 指针运算符与指针表达式 140
9.2.1 指针运算符与指针表达式概述 140
9.2.2 指针变量作函数的参数 142
9.3 指针与数组 143
9.3.1 指针与一维数组 143
9.3.2 指针与二维数组 146
9.3.3 数组指针作函数的参数 149
9.3.4 指针与字符数组 153
9.3.5 指针数组 155
9.4 指针与函数 157
9.4.1 指向函数的指针变量的定义及使用 157
9.4.2 用指针类型数据作函数参数 158
9.4.3 带参的主函数 160
9.4.4 返回指针的函数 161
9.5 指向指针的指针 162
9.6 综合举例 164
本章小结 167
习题9 167
第10章 结构体、联合体与枚举类型 170
10.1 结构体类型变量的定义和引用 170
10.1.1 结构体类型变量的定义 171
10.1.2 结构体类型变量的引用 171
10.1.3 结构体类型变量的初始化 172
10.2 结构体数组的定义和引用 173
10.3 结构体指针的定义和引用 178
10.3.1 指向结构体类型变量的使用 178
10.3.2 指向结构体类型数组的指针的使用 180
10.4 链表 181
10.4.1 链表的概述 182
10.4.2 链表操作 182
10.5 联合体 187
10.5.1 联合体的定义 187
10.5.2 联合体变量的引用 189
10.6 枚举类型 191
10.6.1 枚举类型的定义和枚举变量的说明 191
10.6.2 枚举类型变量的赋值和使用 192
10.7 综合举例 193
本章小结 197
习题10 197
第11章 运算符 200
11.1 位运算概述 200
11.2 位运算符和位运算 201
11.3 综合举例 204
本章小结 207
习题11 207
第12章 文件 209
12.1 C文件概述 209
12.2 文件的打开与关闭 210
12.2.1 文件类型指针 210
12.2.2 文件的打开函数 210
12.2.3 文件的关闭函数 212
12.3 文件的读写 212
12.4 文件定位 216
12.4.1 文件定位函数 216
12.4.2 出错检测函数 218
12.5 综合举例 218
本章小结 222
习题12 222
第13章 综合实例程序设计 224
13.1 程序设计的基本过程 224
13.2 综合程序设计实例 225
13.2.1 题目的内容要求 225
13.2.2 程序的功能设计 226
13.2.3 程序的数据设计 228
13.2.4 程序的函数设计 228
13.2.5 函数编程及调试 230
13.2.6 整体调试 247
13.2.7 程序维护 247
本章小结 247
习题13 247
第14章 上机实验指导 248
实验一 C语言程序设计运行环境 248
实验二 数据类型、运算符和表达式 256
实验三 顺序结构程序设计 258
实验四 选择结构程序设计 260
实验五 循环控制 261
实验六 数组 262
实验七 函数 263
实验八 编译预处理 264
实验九 指针 265
实验十 结构体和联合体 267
实验十一 位运算 269
实验十二 文件 270
附录A 常用ASCII码字符对照表 272
附录B 编译错误信息 274
参考文献 287