第1章 C程序设计语言概述 1
1.1 程序设计语言的发展概况 1
1.2 简单的C语言程序 2
1.2.1 简单C语言程序实例 2
1.2.2 C语言程序的组成结构 4
1.2.3 C语言的特点 4
1.3 运行C程序的步骤与方法 5
1.3.1 运行C语言程序的步骤 5
1.3.2 在Visual C++ 6.0下运行C程序 6
习题1 9
第2章 数据类型、表达式 10
2.1 基本数据类型 10
2.1.1 标识符与关键字 10
2.1.2 基本的数据类型 12
2.2 常量与变量 12
2.2.1 常量与符号常量 12
2.2.2 变量的定义与使用 16
2.3 常用运算符及表达式 17
2.3.1 常用的运算符 17
2.3.2 算术运算符与算术表达式 18
2.3.3 赋值运算符与赋值表达式 19
2.3.4 逗号运算符与逗号表达式 20
2.4 数据类型转换 20
2.4.1 自动类型转换 20
2.4.2 赋值类型转换 21
2.4.3 强制类型转换 21
2.5 深入探讨 22
2.5.1 赋值类型转换 22
2.5.2 各种数据类型在内存中的存储格式 22
2.5.3 数据的溢出 23
2.5.4 位运算符和位运算 24
习题2 26
第3章 顺序结构程序设计 29
3.1 顺序结构的基本语句 29
3.2 数据的输入输出 31
3.2.1 基本的格式输出函数printf 31
3.2.2 格式化输入函数scanf 32
3.3 字符数据的输入输出 35
3.3.1 字符输出函数putchar 35
3.3.2 字符输入函数getchar 35
3.4 较复杂的输入输出问题 36
3.4.1 格式输出函数printf的注意问题 36
3.4.2 格式输入函数scanf的注意问题 37
习题3 38
第4章 选择结构程序设计 40
4.1 算法及其描述方法 40
4.1.1 算法的基本概念 40
4.1.2 算法的表示方法 41
4.2 关系运算与逻辑运算 44
4.2.1 关系运算 44
4.2.2 逻辑运算 45
4.2.3 深入探讨 47
4.3 if语句 47
4.3.1 简单if语句 47
4.3.2 多分支if语句 51
4.4 条件运算符与条件表达式 52
4.5 switch语句 53
4.6 选择结构程序举例 57
4.7 if语句嵌套 61
习题4 63
第5章 循环 67
5.1 问题的提出与程序示例 67
5.2 while语句 68
5.3 do-while语句 69
5.4 for语句 71
5.4.1 for语句的一般形式 71
5.4.2 for语句与while语句比较 72
5.5 break、continue和goto语句 73
5.5.1 break语句 73
5.5.2 continue语句 74
5.5.3 goto语句 76
5.6 循环的嵌套 76
5.7 循环结构程序举例 78
5.8 深入探讨 81
5.8.1 while语句和do-while语句的比较 81
5.8.2 for语句的几种特殊形式 82
习题5 84
第6章 函数 89
6.1 问题的提出与程序示例 89
6.2 函数的定义与调用 90
6.2.1 函数的定义 90
6.2.2 函数的调用 91
6.3 函数的参数传递和返回值 92
6.3.1 函数的参数传递 92
6.3.2 函数的返回值 94
6.4 变量的作用域与存储类型 95
6.4.1 变量的作用域 95
6.4.2 变量的存储类型 97
6.5 编译预处理 100
6.5.1 宏定义 100
6.5.2 文件包含 102
6.5.3 条件编译 103
6.6 函数应用举例 104
6.7 函数的嵌套与递归调用 105
6.7.1 函数的嵌套调用 106
6.7.2 递归函数的调用 107
习题6 108
第7章 数组 115
7.1 问题的提出与程序示例 115
7.2 一维数组的定义与引用 117
7.2.1 一维数组的定义 117
7.2.2 一维数组的引用 118
7.2.3 一维数组的初始化 119
7.3 一维数组的程序举例 120
7.4 二维数组 122
7.4.1 程序示例 122
7.4.2 二维数组的定义 123
7.4.3 二维数组的引用 124
7.4.4 二维数组的初始化 124
7.4.5 程序举例 125
7.5 字符数组与字符串 128
7.5.1 字符串与字符数组的关系 128
7.5.2 字符数组 128
7.5.3 字符串的输入与输出 130
7.5.4 字符串处理函数 132
7.6 数组作为函数的参数 133
7.6.1 数组名作为函数参数 133
7.6.2 字符与字符串程序举例 134
7.7 数组与字符串综合应用举例 136
7.7.1 数据颠倒存放问题 136
7.7.2 排序问题 137
7.7.3 查找问题 138
7.7.4 在有序数列中数据的插入与删除问题 140
7.7.5 字符(串)处理问题 141
习题7 143
第8章 指针 147
8.1 问题的提出与程序示例 147
8.2 指针与指针变量 148
8.2.1 指针的基本概念 148
8.2.2 指针变量的定义 149
8.3 指针运算 151
8.4 指针与数组 154
8.4.1 指针与一维数组的关系 154
8.4.2 指针与二维数组的关系 157
8.4.3 指针与字符串的关系 159
8.5 指针与函数 161
8.5.1 指针作为函数参数 161
8.5.2 返回指针值的函数 165
8.5.3 指向函数的指针 166
8.6 指针综合运用举例 169
8.7 指针数组和多重指针 172
8.7.1 指针数组 172
8.7.2 指向指针的指针 173
8.8 带参数的main函数 175
习题8 176
第9章 结构体与共用体 179
9.1 问题的提出与示例 179
9.2 结构体类型说明与变量定义 182
9.2.1 结构体类型说明 182
9.2.2 结构体变量定义 183
9.2.3 结构体变量使用 185
9.3 结构体指针变量 187
9.4 结构体数组 189
9.4.1 结构体数组的定义 189
9.4.2 结构体数组的初始化 190
9.4.3 结构体数组元素与指针 190
9.4.4 结构体数组应用实例 190
9.5 结构体与函数 192
9.6 链表与动态内存管理 195
9.6.1 链表概念的引入与程序示例 195
9.6.2 动态内存管理函数 196
9.6.3 链表的建立 197
9.6.4 链表的访问 199
9.6.5 链表的删除 200
9.6.6 链表的插入 202
9.7 结构体综合应用举例 203
9.8 共用体与枚举类型 206
9.8.1 共用体数据类型 206
9.8.2 枚举类型 209
习题9 210
第10章 文件 213
10.1 问题的提出与程序示例 213
10.2 文件概述 214
10.3 文件的打开与关闭 215
10.3.1 文件类型指针 215
10.3.2 文件的打开 216
10.3.3 文件的关闭 217
10.4 文件的读写操作 217
10.4.1 文件读写概念 217
10.4.2 字符读写函数 218
10.4.3 字符串读写函数 221
10.4.4 格式化读写函数 222
10.4.5 文件的随机读写 222
10.5 文件的定位 224
10.6 文件操作综合应用举例 226
习题10 227
附录A 常用字符与ASCII代码对照表 228
附录B 运算符的优先级和结合性 229
附录C 常用库函数 230
参考文献 234