第1章 程序设计基础 1
1-1 计算机内的数据表示 1
1-1-1 数制及其转换 1
1-1-2 原码、反码及补码 3
1-2 算法及其表示 5
1-2-1 算法 5
1-2-2 算法的特性和目标 5
1-2-3 算法的表示 6
1-3 程序设计语言 9
1-3-1 程序与程序设计语言 9
1-3-2 C语言简介 10
1-4 结构化程序设计 14
1-4-1 结构化程序设计方法 14
1-4-2 程序设计的步骤 14
1-4-3 程序设计的风格 15
习题1 16
第2章 简单的数据类型、运算符及表达式 17
2-1 常量和变量 17
2-1-1 标识符 17
2-1-2 常量 18
2-1-3 变量 20
2-2 基本数据类型 21
2-2-1 整型 21
2-2-2 实型 23
2-2-3 字符型 23
2-3 运算符及表达式 24
2-3-1 算术运算 25
2-3-2 赋值运算 27
2-3-3 自增/自减运算 29
2-3-4 逗号运算 32
2-4 类型转换 33
2-4-1 自动类型转换 33
2-4-2 强制类型转换 34
习题2 35
第3章 输入/输出及顺序结构程序设计 39
3-1 C语句的概述 39
3-1-1 表达式语句 39
3-1-2 控制语句 40
3-1-3 函数调用语句 41
3-1-4 空语句 41
3-1-5 复合语句 41
3-2 常用输出与输入函数 41
3-2-1 格式输出函数 42
3-2-2 格式输入函数 46
3-2-3 字符输出函数 48
3-2-4 字符输入函数 49
3-3 顺序结构程序设计 50
3-3-1 顺序结构程序设计思想 50
3-3-2 顺序结构程序设计举例 51
习题3 52
第4章 选择结构程序设计 56
4-1 关系运算、逻辑运算与条件运算 56
4-1-1 C语言中的逻辑值 56
4-1-2 关系运算符与关系表达式 56
4-1-3 逻辑运算符与逻辑表达式 58
4-1-4 条件运算符与条件表达式 61
4-2 if语句 63
4-2-1 单分支选择结构 63
4-2-2 双分支选择结构 64
4-2-3 嵌套的if语句 65
4-3 switch语句 67
4-4 选择结构程序设计举例 69
习题4 73
第5章 循环结构程序设计 77
5-1 while循环 77
5-2 do-while循环 79
5-3 for循环 80
5-4 循环结构的嵌套 82
5-5 转向语句 85
5-5-1 break语句 85
5-5-2 continue语句 86
5-5-3 goto语句 87
5-6 循环结构程序设计举例 88
5-6-1 计数型循环 88
5-6-2 条件型循环 90
习题5 92
第6章 编译预处理 98
6-1 宏定义 98
6-1-1 不带参数的宏定义 98
6-1-2 带参数的宏定义 99
6-1-3 终止宏定义 100
6-2 文件包含 101
6-3 条件编译 103
习题6 103
第7章 函数和变量存储结构 106
7-1 函数的定义 106
7-1-1 函数的基本概念 106
7-1-2 函数的定义 107
7-1-3 return语句 108
7-2 函数调用 109
7-2-1 函数的声明 109
7-2-2 函数的调用 110
7-2-3 函数调用的数据传递方式 113
7-2-4 函数的嵌套调用 113
7-3 函数的递归调用 115
7-4 变量的作用域 117
7-5 变量的存储类别 119
7-5-1 内部变量的存储类别 120
7-5-2 外部变量的存储类别 121
7-6 内部函数和外部函数 123
7-6-1 外部函数 123
7-6-2 内部函数 123
习题7 124
第8章 指针类型 129
8-1 概述 129
8-1-1 地址 129
8-1-2 指针 129
8-2 指针变量 130
8-2-1 指针变量的定义 130
8-2-2 指针变量的使用 131
8-3 指针和函数 134
8-3-1 指针变量作函数参数 134
8-3-2 函数返回地址值 136
8-4 指向函数的指针变量 137
8-4-1 指向函数的指针变量的定义 137
8-4-2 用指向函数的指针变量调用函数 137
习题8 140
第9章 数组类型 144
9-1 一维数组 144
9-1-1 一维数组的定义 144
9-1-2 一维数组的引用 144
9-1-3 一维数组的初始化 145
9-1-4 一维数组应用举例 146
9-1-5 一维数组和指针 149
9-2 二维数组 151
9-2-1 二维数组的定义 151
9-2-2 二维数组的引用 151
9-2-3 二维数组的初始化 152
9-2-4 二维数组应用举例 152
9-2-5 二维数组和指针 154
9-3 数组和函数 158
9-3-1 数组元素作函数实参 158
9-3-2 数组名作函数参数 158
9-4 字符数组 161
9-4-1 字符数组的定义和引用 161
9-4-2 字符串和字符数组 162
9-4-3 常用字符串处理函数 164
9-4-4 字符数组和函数 166
9-4-5 字符指针 167
9-5 指针数组 168
9-5-1 指针数组的应用 168
9-5-2 main函数的参数 171
习题9 172
第10章 结构体、共用体和枚举类型 176
10-1 结构体类型 176
10-1-1 结构体类型的定义 176
10-1-2 结构体变量的定义 177
10-1-3 结构体变量的初始化和引用 177
10-1-4 结构体数组 179
10-2 结构体和函数 181
10-2-1 结构体变量的成员作为函数参数 181
10-2-2 结构体指针变量作为函数参数 182
10-2-3 结构体数组作函数参数 183
10-3 动态数据结构——链表 184
10-3-1 内存空间的动态分配和释放 184
10-3-2 链表 186
10-3-3 链表的基本操作 187
10-4 枚举类型 194
10-4-1 枚举类型的定义 194
10-4-2 枚举类型变量的定义和引用 195
10-5 共用体类型 196
10-5-1 共用体类型的定义 196
10-5-2 共用体变量的定义和引用 197
10-6 用户自定义类型 199
10-6-1 用typedef声明基本类型 199
10-6-2 用typedef声明构造类型 199
10-6-3 用户自定义类型的用途 201
习题10 202
第11章 位运算 206
11-1 位运算符 206
11-1-1 “按位与”运算(&) 206
11-1-2 “按位或”运算(|) 208
11-1-3 “按位异或”运算(^) 209
11-1-4 “按位取反”运算(~) 210
11-1-5 “左移”运算(<<) 211
11-1-6 “右移”运算(>>) 211
11-1-7 位复合赋值运算符 212
11-2 位段 212
11-2-1 位段结构类型 213
11-2-2 位段结构类型变量的定义与引用 214
11-3 应用举例 216
习题11 218
第12章 文件 221
12-1 C文件的概念 221
12-1-1 C文件的类型 221
12-1-2 文件类型指针 222
12-2 文件操作函数 222
12-2-1 文件打开函数 222
12-2-2 文件关闭函数 224
12-2-3 读写字符函数 224
12-2-4 读写字符串函数 225
12-2-5 读写数据块函数 225
12-2-6 格式化读写函数(fprintf函数和fscanf函数) 226
12-2-7 文件的定位 226
12-2-8 判断文件结束的feof函数 227
12-3 应用举例 228
习题12 231
参考文献 235