第1章 用C语言编写程序 1
1.1 编写简单的C语言程序 1
1.2 C语言的基本输入输出函数 3
1.3 运行C语言程序 5
1.4 C语言程序的基本结构 6
习题 7
第2章 基本数据类型和表达式 8
2.1 常量和变量 8
2.1.1 常量 8
2.1.2 变量 10
2.1.3 标识符 11
2.2 整数类型 12
2.2.1 整型常量(整数) 12
2.2.2 整型变量 13
2.2.3 整型数据的输入和输出 13
2.3 实数类型 14
2.3.1 实型常量(实数) 14
2.3.2 实型变量 15
2.3.3 实型数据的输入和输出 15
2.4 字符类型 17
2.4.1 字符常量 17
2.4.2 字符变量 18
2.4.3 字符型数据的输入和输出 19
2.4.4 转义字符 21
2.5 表达式 22
2.5.1 算术表达式 22
2.5.2 赋值表达式 26
2.5.3 逗号表达式 28
2.6 数据的存储和类型转换 28
2.6.1 数据的存储 28
2.6.2 整数类型的扩展 30
2.6.3 数据类型转换 32
习题 34
第3章 算法与C语言程序 36
3.1 计算机求解问题的步骤 36
3.2 算法的描述 37
3.3 算法与程序 40
3.3.1 算法特征 40
3.3.2 算法的C语言实现 41
3.3.3 算法与程序结构 42
3.4 C语句分类 46
习题 48
第4章 分支结构程序设计 49
4.1 关系表达式和逻辑表达式 49
4.1.1 关系表达式 49
4.1.2 逻辑表达式 50
4.2 if语句 53
4.2.1 基本的if语句 53
4.2.2 嵌套的if语句 57
4.2.3 条件表达式 61
4.3 switch语句 62
习题 65
第5章 循环结构程序设计 68
5.1 C语言的循环语句 68
5.1.1 for 语句 68
5.1.2 while 语句 71
5.1.3 do-while 语句 71
5.1.4 三种循环语句的使用 73
5.1.5 for语句的形式变化 76
5.2 break语句和continue 语句 78
5.2.1 break语句 78
5.2.2 continue 语句 79
5.3 循环嵌套 81
5.4 循环程序设计 84
习题 88
第6章 函数 93
6.1 函数定义 93
6.1.1 函数概念 93
6.1.2 函数定义 94
6.1.3 函数的参数 95
6.2 函数调用 97
6.2.1 函数调用过程 97
6.2.2 函数调用形式 98
6.2.3 参数传递 100
6.2.4 函数结果返回 101
6.2.5 函数的嵌套调用 102
6.2.6 函数的声明 104
6.3 递归函数 105
6.3.1 递归函数基本概念 105
6.3.2 递归程序设计 108
6.4 变量与函数 112
6.4.1 局部变量和全局变量 112
6.4.2 变量生命周期和静态局部变量 116
6.4.3 寄存器变量和外部变量 118
6.5 程序模块结构 119
6.5.1 文件包含 119
6.5.2 全局变量与程序文件模块 121
6.5.3 函数与程序文件模块 124
6.5.4 变量、函数与程序文件模块关系 124
6.6 宏定义 126
6.6.1 宏基本定义 126
6.6.2 带参数的宏定义 128
6.7 编译预处理 130
习题 132
第7章 数组 138
7.1 一维数组 139
7.1.1 一维数组的定义和引用 139
7.1.2 一维数组的初始化 144
7.2 二维数组 145
7.2.1 二维数组的定义和引用 145
7.2.2 二维数组的初始化 149
7.3 字符串 150
7.3.1 一维字符数组 151
7.3.2 字符串 151
习题 154
第8章 指针 157
8.1 指针 157
8.1.1 指针变量的定义 158
8.1.2 指针的基本运算 158
8.1.3 指针变量的初始化 161
8.1.4 指针作为函数的参数 162
8.2 指针和数组 166
8.2.1 指针、数组和地址间的关系 166
8.2.2 数组名作为函数的参数 168
8.3 指针和字符串 173
8.3.1 常用的字符串处理函数 173
8.3.2 字符串的指针表示 176
8.3.3 字符数组和字符指针 178
8.4 指针数组和指向指针的指针 180
8.4.1 指针数组 180
8.4.2 指向指针的指针 183
8.4.3 指针数组、二维字符数组和字符串 186
8.4.4 命令行参数 192
8.5 指针和函数 195
8.5.1 指针作为函数的返回值 195
8.5.2 指向函数的指针 196
习题 199
第9章 结构 202
9.1 结构的概念 202
9.1.1 结构的定义 202
9.1.2 结构变量的定义和引用 203
9.1.3 结构的嵌套定义 206
9.2 结构数组 207
9.2.1 结构数组的定义和引用 207
9.2.2 结构数组的初始化 208
9.3 结构指针 209
9.3.1 结构指针的概念和使用 209
9.3.2 结构指针作为函数的参数 211
9.4 单向链表 213
9.4.1 单向链表的定义 213
9.4.2 单向链表的常用操作 213
9.5 联合 222
9.5.1 联合的定义 222
9.5.2 联合变量的定义和引用 222
9.6 枚举 227
9.6.1 枚举类型的定义 227
9.6.2 枚举变量的定义和引用 228
9.7 自定义类型 229
9.8 位运算与位段 231
9.8.1 位运算和位运算符 231
9.8.2 位段 233
习题 237
第10章 文件 243
10.1 文件的基本概念 243
10.1.1 文本文件和二进制文件 243
10.1.2 缓冲文件系统 244
10.1.3 缓冲文件与文件类型指针 245
10.2 文件的打开与关闭 246
10.2.1 打开文件 246
10.2.2 关闭文件 248
10.3 文件的读写 248
10.3.1 字符文件读写 249
10.3.2 数值文件读写 253
10.3.3 二进制文件读写 254
10.4 文件程序设计 254
10.5 标准文件的输入/输出 258
10.5.1 字符的输入/输出 258
10.5.2 格式化输入/输出 259
10.6 文件的数据块读写 262
10.7 文件定位 265
10.8 同时对文件读和写 266
习题 268
第11章 C语言程序设计方法 271
11.1 结构化程序设计方法 271
11.1.1 自顶向下分析设计问题 271
11.1.2 模块化程序设计 272
11.1.3 结构化程序编写 273
11.2 程序设计风格 276
11.2.1 源程序文档化 276
11.2.2 语句结构 276
11.2.3 良好的交互特性 277
11.3 C语言程序设计中要注意的问题 277
11.3.1 正确使用运算符 277
11.3.2 正确的数据类型操作 279
11.3.3 正确的语句运用 284
附录A C语言上机操作指导 286
附录B ASCII码集 302
附录C C语言中的关键字 305
附录D 运算符优先级 306
附录E C语言常用库函数 308