第1章 程序设计概述 1
1.1 基本概念 1
1.1.1 程序 1
1.1.2 计算机程序 1
1.1.3 程序设计 2
1.1.4 软件 3
1.2 程序设计语言 3
1.3 问题求解与算法设计 5
1.3.1 计算机求解问题的步骤 5
1.3.2 算法定义 6
1.3.3 伪代码 7
1.3.4 流程图 8
1.3.5 N-S图 9
1.3.6 UML 9
1.4 C语言概述 10
1.4.1 C语言的发展过程和特点 10
1.4.2 C程序设计的基本结构 11
1.4.3 C语言程序的运行 14
1.5 C程序集成开发环境——Visual C++6.0 15
1.5.1 启动vC++ 15
1.5.2 新建/打开C语言程序文件 15
1.5.3 保存程序 16
1.5.4 执行程序 16
1.5.5 关闭程序工作区 18
习题1 18
第2章 数据类型、运算符与表达式 20
2.1 C语言的数据类型 20
2.2 常量与变量 21
2.2.1 关键字 21
2.2.2 标识符 22
2.2.3 常量与符号常量 22
2.2.4 变量 24
2.3 整型数据 24
2.3.1 整型常量 24
2.3.2 整型变量 25
2.4 实型数据 27
2.4.1 实型常量 27
2.4.2 实型变量 27
2.5 字符型数据 29
2.5.1 字符常量 29
2.5.2 转义字符 29
2.5.3 字符串常量 31
2.5.4 字符变量 31
2.6 变量赋初值 33
2.7 算术运算符和算术表达式 34
2.7.1 C语言运算符简介 34
2.7.2 算术运算符和算术表达式 34
2.8 赋值运算符和赋值表达式 38
2.8.1 赋值运算符 38
2.8.2 赋值表达式 40
2.9 逗号运算符和逗号表达式 41
2.10 本章小结及常见错误列举 41
习题2 43
第3章 程序结构 45
3.1 顺序结构程序设计 45
3.1.1 C语言中的语句 45
3.1.2 格式化输入/输出函数 46
3.1.3 字符输入/输出函数 54
3.1.4 顺序结构程序举例 55
3.2 选择结构程序设计 57
3.2.1 关系运算符及关系表达式 57
3.2.2 逻辑运算符和逻辑表达式 58
3.2.3 选择结构 59
3.2.4 条件运算符 65
3.2.5 switch语句 66
3.2.6 选择结构程序举例 68
3.3 循环结构程序设计 72
3.3.1 goto语句 72
3.3.2 while语句构成的循环结构 73
3.3.3 do-while语句构成的循环结构 75
3.3.4 for循环 77
3.3.5 循环的嵌套 80
3.3.6 break语句和continue语句 81
3.3.7 应用综合举例 82
3.4 本章小结及常见错误列举 87
习题3 90
第4章 数组 92
4.1 一维数组 92
4.1.1 一维数组的定义 92
4.1.2 一维数组的初始化 93
4.1.3 一维数组元素的引用 93
4.1.4 一维数组程序举例 94
4.2 二维数组 99
4.2.1 二维数组的定义 99
4.2.2 二维数组的初始化 100
4.2.3 二维数组元素的引用 101
4.2.4 二维数组程序举例 102
4.3 字符串 104
4.3.1 C语言对字符串的约定 104
4.3.2 字符串的存储 104
4.3.3 字符串的输入/输出 105
4.3.4 字符串处理函数 106
4.3.5 字符串程序举例 109
4.4 本章小结及常见错误列举 111
习题4 112
第5章 指针 114
5.1 指针变量的定义与应用 114
5.1.1 变量的地址和指针的概念 114
5.1.2 指针变量的定义 115
5.1.3 指针变量的赋值 116
5.1.4 对指针变量的操作 118
5.2 指针和一维数组 121
5.2.1 数组元素的指针 121
5.2.2 通过指针引用数组元素 122
5.3 指针和二维数组 126
5.3.1 二维数组与一维数组的关系 126
5.3.2 二维数组元素地址的表示方法 127
5.3.3 指向二维数组元素的指针变量 128
5.3.4 指向二维数组行的指针变量 128
5.3.5 指针数组 129
5.4 指针与字符串 131
5.4.1 使用指针指向字符串 131
5.4.2 指向指针的指针变量 133
5.5 本章小结及常见错误列举 135
习题5 137
第6章 其他数据类型 139
6.1 结构体 139
6.1.1 结构体类型的定义 139
6.1.2 结构体变量 140
6.1.3 结构体数组 145
6.2 结构体与指针 147
6.2.1 指向结构体变量的指针 147
6.2.2 指向结构体数组的指针 148
6.2.3 用指针处理静态链表简介 149
6.3 共用体 151
6.4 枚举类型 154
6.5 用typedef定义数据类型 155
6.6 位运算 157
6.6.1 位运算符和位运算 157
6.6.2 位运算举例 160
6.7 本章小结及常见错误列举 161
习题6 165
第7章 函数 167
7.1 概述 167
7.2 函数的定义 168
7.3 函数的一般调用 170
7.3.1 函数调用方式 170
7.3.2 函数声明 170
7.4 函数参数的传递方式 172
7.4.1 形参和实参 173
7.4.2 数组元素作为实参 174
7.4.3 数组名作函数参数 175
7.4.4 二维数组名作函数参数 177
7.5 函数的嵌套与递归调用 178
7.5.1 函数的嵌套调用 178
7.5.2 函数的递归调用 181
7.6 函数与指针 186
7.6.1 指针作函数参数 186
7.6.2 返回指针值的函数 193
7.6.3 函数指针和指向函数的指针变量 195
7.6.4 主函数main 的参数 197
7.7 函数与结构体 199
7.7.1 用结构体变量作参数 199
7.7.2 用指向结构体变量的指针作参数 200
7.8 变量的作用域 204
7.8.1 局部变量 205
7.8.2 全局变量 206
7.8.3 自动变量 210
7.8.4 寄存器变量 210
7.8.5 静态变量 211
7.9 内部函数与外部函数 212
7.9.1 内部函数 212
7.9.2 外部函数 213
7.10 预处理命令 213
7.10.1 宏定义 213
7.10.2 文件包含 220
7.10.3 条件编译 222
7.11 模块结构程序设计 225
7.11.1 结构化程序设计方法 225
7.11.2 模块化程序设计 226
7.11.3 结构化程序编写 226
7.11.4 学生成绩统计程序 227
7.12 模块结构程序的工程创建与调试 230
7.13 本章小结及常见错误列举 233
习题7 238
第8章 文件 242
8.1 C文件概述 242
8.2 文件类型指针 243
8.3 文件的打开与关闭 244
8.3.1 文件的打开 244
8.3.2 文件的关闭 245
8.4 文件的读写 245
8.4.1 fputc(putc)函数和fgetc(getc)函数 245
8.4.2 fgets函数和fputs函数 248
8.4.3 ffead函数和fwrite函数 249
8.4.4 fprintf函数和fscanf函数 252
8.5 文件的定位 253
8.5.1 rewind函数 253
8.5.2 fseek函数 254
8.5.3 ftell函数 255
8.6 文件检测函数 255
8.7 本章小结及常见错误列举 256
习题8 257
第9章 综合应用 258
9.1 动态链表 258
9.2 系统功能与分析 263
9.3 数据结构 263
9.4 模块设计 264
9.5 参考程序 265
附录 281
附录Ⅰ C语言关键字 281
附录Ⅱ C语言运算符的优先级与结合性 281
附录Ⅲ ASCⅡ字符编码表 282
附录Ⅳ C语言常用库函数浏览 282
参考文献 288