第1章 C语言概述 1
1.1 C语言简介 1
1.1.1 C语言的历史 1
1.1.2 C语言的特点 2
1.2 简单的C语言程序介绍 2
1.3 C语言程序的运行步骤和开发环境 4
1.3.1 C语言程序的运行步骤 4
1.3.2 C-Free 3.5简介 5
1.3.3 Visual C++ 6.0简介 9
习题 13
第2章 C语言程序设计基础 14
2.1 数据类型 14
2.1.1 数据的分类 14
2.1.2 整型数据 15
2.1.3 实型数据 15
2.1.4 字符型数据 16
2.2 常量与变量 16
2.2.1 常量和符号常量 16
2.2.2 变量和变量的定义 18
2.3 运算符与表达式 19
2.3.1 运算符的分类 19
2.3.2 算术运算符和算术表达式 20
2.3.3 赋值运算符和赋值表达式 21
2.3.4 条件运算符和条件表达式 22
2.3.5 逗号运算符和逗号表达式 23
2.3.6 关系运算符和关系表达式 23
2.3.7 逻辑运算符和逻辑表达式 24
2.4 数据运算 25
2.4.1 自动类型转换 25
2.4.2 赋值类型转换 25
2.4.3 强制类型转换 26
2.5 输入/输出语句 26
2.5.1 字符输出函数(putchar函数) 27
2.5.2 字符输入函数(getchar函数) 27
2.5.3 格式输出函数(printf函数) 28
2.5.4 格式输入函数(scanf函数) 30
习题 32
第3章 C语言程序控制结构 35
3.1 算法及程序 35
3.1.1 算法 35
3.1.2 程序及编写要求 38
3.2 顺序结构 40
3.3 分支结构 41
3.3.1 简单的if语句 41
3.3.2 if语句的嵌套 44
3.3.3 switch语句 46
3.3.4 程序举例 48
3.4 循环结构 49
3.4.1 while语句 49
3.4.2 do-while语句 51
3.4.3 for语句 52
3.4.4 break和continue语句 54
3.4.5 循环的嵌套 56
3.5 综合程序设计举例 59
3.5.1 数值计算问题 59
3.5.2 找最大最小问题 61
3.5.3 数据位数的统计与拆分 62
3.5.4 格式输出及字符处理问题 62
习题 63
第4章 数组 68
4.1 数组概述 68
4.2 一维数组 69
4.2.1 一维数组的定义 69
4.2.2 一维数组的引用 70
4.2.3 一维数组的初始化 71
4.2.4 一维数组程序举例 72
4.3 二维数组 73
4.3.1 二维数组的定义 73
4.3.2 二维数组的引用 74
4.3.3 二维数组的初始化 75
4.3.4 二维数组程序举例 76
4.4 字符数组 77
4.4.1 字符数组、字符串和字符串结束标志 77
4.4.2 字符数组的定义和初始化 78
4.4.3 字符数组的输入输出 79
4.4.4 常用字符串处理函数 81
4.4.5 字符数组程序举例 83
4.5 数组综合应用举例 85
4.5.1 查找 85
4.5.2 排序 87
4.5.3 求极值 90
4.5.4 其他问题 91
习题 93
第5章 函数 95
5.1 函数概述 95
5.1.1 模块化程序设计 95
5.1.2 使用函数的好处 96
5.1.3 函数的基本用法 96
5.2 函数的一般形式 98
5.2.1 函数的定义 98
5.2.2 函数原型的声明 101
5.3 函数的参数传递方式 102
5.3.1 形参与实参 102
5.3.2 多个参数的传递 103
5.3.3 值传递方式 104
5.4 函数的调用 105
5.4.1 函数调用的一般形式 105
5.4.2 函数的调用过程 106
5.4.3 函数的调用方式 107
5.5 函数的嵌套与递归 108
5.5.1 函数的嵌套调用 108
5.5.2 函数的递归调用 110
5.6 变量的作用域与存储类别 114
5.6.1 变量的作用域 114
5.6.2 变量的存储类别 117
5.7 函数应用举例 119
习题 122
第6章 指针 124
6.1 指针的概念 124
6.2 指针变量与变量 125
6.2.1 指针变量的定义 125
6.2.2 指针变量的引用和运算 126
6.2.3 指针变量作为函数参数 130
6.3 指针与数组 131
6.3.1 指向数组的指针 132
6.3.2 通过指针变量访问数组元素 132
6.3.3 数组作为函数参数 135
6.3.4 指向多维数组的指针 142
6.4 指针与字符串 145
6.4.1 指针与字符串 145
6.4.2 字符串指针作为函数参数 146
6.4.3 使用字符串指针变量与字符数组的区别 148
6.5 指针数组和指向指针的指针 149
6.5.1 指针数组 149
6.5.2 指向指针的指针 150
6.5.3 指针的其他用法 151
习题 153
第7章 编译预处理 155
7.1 宏定义 155
7.1.1 无参数的宏定义 155
7.1.2 带参数的宏定义 159
7.2 文件包含 162
7.2.1 “文件包含”命令的一般形式 162
7.2.2 “文件包含”命令的应用 163
7.3 条件编译 164
习题 166
第8章 结构体与共用体 168
8.1 结构体类型与结构体变量定义 168
8.1.1 结构体类型的定义 168
8.1.2 结构体变量的定义 169
8.2 结构体变量初始化与引用 170
8.2.1 结构体变量的初始化 171
8.2.2 结构体变量的引用 171
8.3 结构体数组 172
8.3.1 结构体数组的定义 173
8.3.2 结构体数组的初始化 173
8.3.3 结构体数组的使用 173
8.4 结构体指针变量 175
8.4.1 指向结构体变量的指针 175
8.4.2 指向结构体数组的指针 176
8.5 结构体与函数 177
8.5.1 结构体变量的成员作函数参数 177
8.5.2 结构体变量作函数参数 178
8.5.3 指向结构体变量的指针作函数参数 179
8.6 链表 180
8.6.1 静态链表 181
8.6.2 动态内存函数 182
8.6.3 链表的基本操作 183
8.7 共用体 187
8.7.1 共用体的概念 188
8.7.2 共用体变量的引用 188
8.7.3 共用体类型数据的说明 189
8.8 枚举类型 190
8.9 用户自定义类型 192
习题 193
第9章 位运算 194
9.1 位运算概述 194
9.1.1 计算机中数据的表示 194
9.1.2 补码的求法 195
9.2 位运算符和位运算 195
9.2.1 位运算操作 196
9.2.2 位运算操作举例 202
9.3 位段 204
习题 205
第10章 文件 206
10.1 C文件概述 206
10.1.1 数据文件的存储形式 206
10.1.2 缓冲文件系统与非缓冲文件系统 207
10.2 文件指针 207
10.3 文件的打开与关闭 208
10.3.1 文件的打开 208
10.3.2 文件的关闭 209
10.4 文件的读写 210
10.4.1 字符读写函数 210
10.4.2 字符串读写函数 212
10.4.3 数据块读写函数 214
10.4.4 格式化读写函数 217
10.4.5 整数读写函数 219
10.5 文件的定位 220
10.6 文件检测函数 222
习题 223
第11章 C语言程序设计综合应用 224
11.1 综合应用程序开发的一般步骤 224
11.2 综合应用程序设计实例 225
习题 232
附录A 教材各章习题参考答案 233
附录B 常用字符与ASCⅡ代码对照表 271
附录C 运算符的优先级别和结合性 273
附录D C语言常用库函数 275
附录E C语言常用语法提要 280
参考文献 284