第1章 C语言程序设计基础知识 1
1.1 计算机基础知识 2
1.1.1 计数制概念 2
1.1.2 数值与非数值的表示 4
1.1.3 计算机运算基础 7
1.1.4 程序与程序设计语言 8
1.1.5 程序执行 9
1.2 C语言程序基本知识 9
1.2.1 简单C语言程序示例 9
1.2.2 C语言程序的结构 11
1.2.3 C语言的特点与良好的编程风格 12
1.3 使C语言程序在计算机上执行 14
1.3.1 实现C程序在机器上的执行过程 14
1.3.2 在Microsoft Visual C++环境下开发C语言程序 15
本章小结 16
习题 17
第2章 基本数据类型与常用库函数 20
2.1 字符集与标识符 21
2.2 基本数据类型 22
2.2.1 整型数据 22
2.2.2 实型数据 23
2.2.3 字符型数据 23
2.3 常量与变量 23
2.3.1 常量 23
2.3.2 变量 26
2.4 输入/输出函数 27
2.4.1 格式化输入/输出函数 27
2.4.2 单个字符的输入/输出函数 34
2.5 常用函数 36
2.5.1 常用数学函数 37
2.5.2 常用字符函数 37
2.5.3 其他常用函数 38
本章小结 39
习题 39
第3章 表达式 42
3.1 算术表达式 43
3.1.1 算术表达式 43
3.1.2 自增、自减运算 44
3.2 赋值表达式 45
3.3 关系表达式 46
3.4 逻辑表达式 47
3.5 条件表达式 50
3.6 逗号表达式 51
3.7 多种类型混合运算 51
3.7.1 运算符优先级 51
3.7.2 运算符结合方向 52
3.7.3 混合运算的类型转换 53
本章小结 54
习题 54
第4章 控制结构与语句 59
4.1 结构化程序设计 60
4.1.1 程序的三种基本结构 60
4.1.2 程序设计过程 61
4.2 顺序结构 63
4.2.1 顺序结构 63
4.2.2 复合语句与空语句 64
4.3 选择结构 65
4.3.1 if语句 65
4.3.2 switch语句 71
4.3.3 用选择语句编程序 73
4.4 循环结构 75
4.4.1 while语句 76
4.4.2 do-while语句 78
4.4.3 for语句 79
4.4.4 用循环编程序 82
4.5 转向语句 85
4.5.1 break语句与continue语句 85
4.5.2 goto语句 89
本章小结 89
习题 89
第5章 函数 96
5.1 函数定义 97
5.1.1 函数概述 97
5.1.2 函数定义 98
5.2 函数调用 99
5.2.1 函数调用 99
5.2.2 传值调用的特点 101
5.2.3 函数调用的方式 103
5.2.4 用函数编程序 103
5.3 函数与C程序结构 104
5.3.1 C程序结构 104
5.3.2 函数的嵌套调用 107
5.3.3 函数递归调用 108
5.3.4 参数求值顺序 113
5.4 函数与变量 114
5.4.1 全局变量和局部变量 114
5.4.2 变量的生命期与变量的存储类别 117
本章小结 119
习题 120
第6章 数组 127
6.1 一维数组 128
6.1.1 一维数组定义 128
6.1.2 一维数组引用 129
6.1.3 用一维数组编写程序 130
6.1.4 查找与排序 132
6.2 二维数组 137
6.2.1 二维数组定义 138
6.2.2 二维数组引用 139
6.2.3 用二维数组编写程序 141
6.3 字符串 144
6.3.1 字符串的存储 144
6.3.2 字符串的输入/输出 145
6.3.3 字符串应用 147
6.3.4 多字符串处理 149
6.4 数组与函数 151
6.4.1 数组元素作为函数参数 151
6.4.2 数组作为函数参数 152
6.4.3 字符串作为函数参数 155
本章小结 156
习题 157
第7章 编译预处理 167
7.1 宏定义 168
7.1.1 不带参数的宏定义 168
7.1.2 带参数的宏定义 170
7.1.3 带参数的宏与函数的区别 170
7.2 文件包含 171
7.3 条件编译 174
本章小结 177
习题 177
第8章 指针 179
8.1 指针的基本知识 180
8.1.1 内存单元、内存地址及指针 180
8.1.2 指针变量定义 181
8.1.3 指针基本操作 181
8.1.4 指针作函数的参数 183
8.2 指针与数组 186
8.2.1 指针与一维数组 186
8.2.2 一维数组作函数的参数 187
8.2.3 指针在数组上的运算 189
8.2.4 指针与二维数组 190
8.2.5 行指针作函数参数 191
8.3 指针与字符串 194
8.3.1 字符串指针 194
8.3.2 字符串指针作函数参数 197
8.3.3 常用字符串函数 198
8.4 指针数组与多级指针 201
8.4.1 指针数组与多字符串 201
8.4.2 指向指针的指针 204
8.4.3 main函数的参数 207
8.5 指针与函数 208
8.5.1 指针作为函数的返回值 208
8.5.2 指向函数的指针 210
本章小结 213
习题 213
第9章 结构体 220
9.1 结构体概念 221
9.1.1 结构体类型定义 221
9.1.2 结构体变量定义 222
9.1.3 结构体变量引用 224
9.1.4 结构体变量作函数参数 226
9.1.5 结构体数据作为函数返回值 227
9.2 结构体数组 228
9.2.1 结构体数组定义 229
9.2.2 结构体数组引用 230
9.3 结构体指针 231
9.3.1 结构体指针概念 231
9.3.2 结构体指针应用 232
9.3.3 结构体指针作函数参数 233
9.4 单向链表 235
9.4.1 链表的概念 235
9.4.2 单向链表的定义 236
9.4.3 动态存储分配库函数 236
9.4.4 单向链表的基本操作 237
本章小结 245
习题 246
第10章 共用体、枚举和位运算 251
10.1 共用体 252
10.2 枚举 255
10.3 位运算与位段 257
10.3.1 位运算符 258
10.3.2 位运算符的优先级 263
10.3.3 位段 264
本章小结 265
习题 265
第11章 文件 268
11.1 文件概述 269
11.1.1 文本文件和二进制文件 270
11.1.2 文件类型指针 271
11.2 打开文件与关闭文件 272
11.2.1 打开文件 272
11.2.2 关闭文件 273
11.3 文本文件读写 273
11.3.1 单个字符读/写 274
11.3.2 格式化的数据读/写 278
11.3.3 用文件编程序 279
11.4 二进制文件的块数据读/写 282
11.5 文件定位函数 283
11.6 文件操作的出错检测 285
本章小结 286
习题 287
第12章 综合性实验 290
实验1 判断某日是一年中的第几天 291
实验2 万年历 291
实验3 猜数字 291
实验4 计算器 292
实验5 影碟信息管理系统 292
实验6 酒店信息管理系统 293
实验7 图书信息管理系统 293
实验8 销售信息管理系统 294
实验9 练习打字程序 294
实验10 进制转换程序 295
附录 296
附录1 C语言中的关键字 296
附录2 字符与ASCII码对照表 296
附录3 运算符的优先级与结合性 298
附录4 常用库函数 299
主要参考文献 302