0导言 1
0.1 程序无所不在 1
0.2 人人都要理解编程 2
0.3 解剖一个程序 4
0.4 编程的主要内容 5
0.5 如何学好程序设计 7
0.6 如何教好程序设计 9
小结 10
1程序设计概述 11
1.1 程序的概念 11
1.2 程序设计语言 11
1.2.1 问题描述与程序设计 12
1.2.2 汇编语言和机器语言 13
1.2.3 高级语言及其翻译 14
1.3 初识C程序 15
1.3.1 C语言概述 15
1.3.2 数值计算的C程序 16
1.3.3 简单游戏的C程序 17
1.3.4 C程序的实现过程 18
1.4 C程序的基本语法 20
1.4.1 C程序的基本结构 20
1.4.2 C程序的基本元素 21
1.4.3 C程序编程风格 22
1.5 C程序设计方法 23
1.5.1 问题分析 23
1.5.2 算法设计 24
1.5.3 程序编写 26
1.5.4 运行调试 26
1.6 常见C程序的错误 27
1.6.1 语法错误——编译错误 27
1.6.2 语法错误——连接错误 28
1.6.3 逻辑错误——结果不正确 29
1.6.4 逻辑错误——运行时错误 30
小结 30
习题1 31
2输入输出 33
2.1 计算机与外界的交互 33
2.1.1 输入输出设备 33
2.1.2 程序的输入输出 34
2.2 信息的显示与录入 35
2.2.1 显示固定内容的信息 35
2.2.2 信息录入 37
2.3 输入输出设计 40
2.3.1 输出设计 40
2.3.2 输出的多样化 41
2.3.3 输入设计 45
2.3.4 输入的多样化 45
2.4 输入输出格式控制 48
2.4.1 显示内容格式控制 48
2.4.2 数据输入格式控制 50
2.5 综合案例 52
小结 54
习题2 55
3顺序结构程序设计 57
3.1 顺序结构 57
3.1.1 设计顺序结构程序 58
3.1.2 语句的分类 59
3.2 表达式语句 60
3.2.1 表达式 60
3.2.2 算术运算符 61
3.2.3 赋值语句 63
3.3 数据与数据类型 64
3.3.1 常量与变量 64
3.3.2 整型变量与整型常量 65
3.3.3 浮点型变量与浮点型常量 67
3.3.4 字符变量与字符常量 69
3.3.5 变量类型的转换 72
3.4 变量的存储 75
3.4.1 变量与内存的关系 75
3.4.2 变量在内存中的表示形式 76
3.5 指针变量 77
3.6 综合案例 80
小结 82
习题3 82
4选择结构程序设计 85
4.1 门票价格问题 85
4.2 条件的表示 86
4.2.1 关系运算 87
4.2.2 逻辑运算 88
4.2.3 短路求值 90
4.3 单分支结构 91
4.3.1 if语句 91
4.3.2 复合语句 91
4.4 双分支结构 93
4.4.1 if-else语句 93
4.4.2 条件运算 95
4.4.3 if-else嵌套 95
4.4.4 if-else配对 96
4.5 多分支结构 99
4.5.1 if语句级联 99
4.5.2 switch语句 102
4.6 综合案例 104
小结 115
习题4 115
5循环结构程序设计 119
5.1 自动售货机问题 119
5.2 三种循环结构 122
5.2.1 while语句 122
5.2.2 do-while语句 127
5.2.3 for语句 131
5.2.4 三种循环语句的比较 134
5.3 循环的嵌套 136
5.4 辅助控制语句 139
5.4.1 break语句 140
5.4.2 continue语句 142
5.5 应用举例 144
5.5.1 穷举法 144
5.5.2 迭代法 146
5.5.3 累加累乘法 148
5.5.4 打印有规律的图形 149
5.5.5 其他应用 150
5.6 综合案例 151
小结 153
习题5 153
6数组 157
6.1 成绩统计问题 157
6.2 数组的概念 159
6.2.1 数组的定义及访问 159
6.2.2 数组的初始化 160
6.3 一维数组常见操作 162
6.3.1 排序问题 162
6.3.2 插入与删除问题 167
6.3.3 查找问题 170
6.4 二维数组 172
6.4.1 二维数组的定义及存储 172
6.4.2 二维数组应用 174
6.5 字符数组及字符串处理 177
6.5.1 文本数据处理 178
6.5.2 字符数组处理字符串的方法 178
6.5.3 字符串的常见处理 180
6.5.4 常用字符串处理函数 183
6.6 指针与数组关系初步 184
6.6.1 指针的算术运算 185
6.6.2 数组元素的指针表示法 185
6.7 综合案例 188
小结 191
习题6 192
7函数 195
7.1 福利彩票问题 195
7.2 函数的概念 196
7.2.1 两类函数 196
7.2.2 函数的定义 197
7.2.3 函数的声明 199
7.3 函数的调用和返回语句 200
7.3.1 函数的调用 200
7.3.2 函数的返回值 201
7.4 函数的参数传递 203
7.4.1 值传递 204
7.4.2 地址传递 205
7.4.3 数组作为函数参数 206
7.5 函数的嵌套与递归 209
7.5.1 函数的嵌套调用 209
7.5.2 函数的递归调用 211
7.6 变量和函数的作用域 214
7.6.1 全局变量和局部变量 214
7.6.2 变量的存储类别 219
7.6.3 内部函数和外部函数 223
7.7 模块化程序设计 226
7.8 综合案例 231
小结 236
习题7 236
8结构体 241
8.1 平均绩点计算问题 241
8.2 构建用户自己需要的数据类型 243
8.2.1 定义结构体及结构体变量 243
8.2.2 引用结构体类型变量 245
8.2.3 结构体变量的初始化 247
8.2.4 结构体数组 248
8.2.5 应用举例 250
8.3 结构体指针的应用——单链表 257
8.3.1 指向结构体的指针 257
8.3.2 动态内存分配 259
8.3.3 单链表 261
8.4 共用体 271
8.4.1 共用体的概念 271
8.4.2 共用体变量的引用方式 272
8.4.3 共用体类型数据的特点 273
8.5 枚举类型 274
8.5.1 枚举类型的声明 274
8.5.2 枚举类型变量的声明及引用 274
8.6 用typedef定义类型 277
8.7 综合案例 278
小结 285
习题8 285
9指针 289
9.1 指针解决的问题 289
9.2 变量的内存地址 290
9.3 指针基础知识汇总 291
9.4 特殊指针 300
9.4.1 指针数组 300
9.4.2 二级指针 302
9.4.3 指向一维数组的指针 304
9.4.4 函数指针 305
9.5 综合案例 307
小结 308
习题9 309
参考文献 312