第1章 程序语言概述 1
1.1 问题求解与算法 2
1.1.1 问题求解 2
1.1.2 算法及其特性 2
1.1.3 算法的描述方法 3
1.2 程序设计与程序设计语言 5
1.2.1 程序与程序设计 5
1.2.2 程序设计语言 5
1.2.3 程序设计的一般过程 7
1.3 C语言程序的基本构成 8
1.3.1 基本字符集 8
1.3.2 词法单位 9
1.3.3 语法单位 10
1.3.4 程序 12
1.4 C语言程序的上机过程 16
1.4.1 Turbo C环境 16
1.4.2 Visual C++环境 18
1.5 C语言程序的注释 24
小结 25
习题 25
第2章 基本程序设计语句 26
2.1 数的表示 27
2.1.1 整型数的二进制表示 27
2.1.2 浮点数的二进制表示 28
2.2 基本数据类型及取值范围 28
2.3 标识符、变量和常量 29
2.3.1 标识符 29
2.3.2 变量 30
2.3.3 常量 32
2.4 基本运算符、表达式及运算的优先级 34
2.4.1 算术运算符及算术表达式 34
2.4.2 关系运算符及关系表达式 35
2.4.3 赋值运算符及赋值运算表达式 36
2.4.4 逻辑运算符及逻辑表达式 37
2.4.5 位运算符 38
2.4.6 条件运算符及条件表达式 40
2.4.7 逗号运算符及逗号表达式 41
2.4.8 数据类型的转换 42
2.5 标准输入/输出函数简介 42
2.5.1 格式化输出函数printf() 42
2.5.2 格式化输入函数scanf() 44
本章任务解答 47
小结 47
习题 47
第3章 选择结构程序设计 49
3.1 if语句 49
3.1.1 单分支if语句 49
3.1.2 双分支if语句 50
3.1.3 多分支if语句 52
3.1.4 if语句的嵌套 54
3.2 switch语句 55
小结 58
习题 58
第4章 循环结构程序设计 59
4.1 循环结构的流程图 59
4.2 while循环语句 60
4.3 do-while循环语句 62
4.4 for循环语句 63
4.5 嵌套循环 66
4.6 break语句和continue语句 70
4.6.1 break语句 70
4.6.2 continue语句 71
小结 72
习题 72
第5章 数组程序设计 74
5.1 一维数组程序设计 75
5.1.1 使用数组的必要性 75
5.1.2 一维数组的定义和初始化 75
5.1.3 一维数组的操作 78
5.2 字符串操作 79
5.2.1 字符串的格式化输入/输出 80
5.2.2 其他字符串操作函数 81
5.3 二维数组程序设计 86
5.3.1 二维数组的定义及引用 86
5.3.2 二维数组的初始化 87
5.4 数组应用程序设计举例 88
5.4.1 排序 88
5.4.2 查找 90
5.4.3 使用数组管理学生成绩 92
5.4.4 矩阵运算 93
本章任务解答 96
小结 98
习题 98
第6章 函数 100
6.1 函数的定义、调用和声明 100
6.1.1 函数的定义 101
6.1.2 函数的调用 103
6.1.3 函数的声明 104
6.2 函数的分类 105
6.3 函数间的参数传递 106
6.3.1 单向值传递 106
6.3.2 一维数组的地址传递 107
6.3.3 二维数组的地址传递 109
6.4 函数的嵌套和递归调用 111
6.4.1 函数的嵌套调用 111
6.4.2 函数的递归调用 112
6.5 变量的作用域与生存期 115
6.5.1 局部变量与全局变量 115
6.5.2 动态变量与静态变量 116
6.5.3 全局变量作用域扩充 118
6.6 内部函数与外部函数 120
6.6.1 内部函数 120
6.6.2 外部函数 120
6.7 编译预处理命令 121
6.7.1 文件包含 122
6.7.2 宏定义 123
6.7.3 条件编译 125
小结 126
习题 126
第7章 指针 127
7.1 指针和指针变量 127
7.1.1 指针的概念 128
7.1.2 指针变量的定义和使用 129
7.2 指针变量的运算 133
7.2.1 赋值运算 133
7.2.2 指针的算术运算 134
7.2.3 指针的关系运算 136
7.3 指针与数组 136
7.3.1 指向一维数组的指针 136
7.3.2 用指针访问二维数组 139
7.3.3 用指针访问字符串 143
7.3.4 指针数组 147
7.4 指针作函数参数 149
7.4.1 简单变量指针作函数参数 149
7.4.2 指向数组的指针作函数参数 151
7.4.3 字符串指针作函数参数 154
7.4.4 指针数组作函数参数 154
7.4.5 使用带参数的main()函数 155
7.5 返回指针值的函数和指向函数的指针变量 156
7.5.1 返回指针值的函数 156
7.5.2 指向函数的指针变量 158
7.6 多级指针 161
7.7 指针程序设计实例 162
7.7.1 数组元素逆置 162
7.7.2 求一元二次方程的根 163
7.7.3 求子串 164
7.7.4 求一个函数的定积分 165
小结 166
习题 168
第8章 结构体、共用体和枚举类型 169
8.1 结构体类型的定义 170
8.2 结构体类型变量 172
8.2.1 结构体变量的定义 172
8.2.2 结构体变量的初始化 173
8.2.3 结构体变量的引用 174
8.2.4 结构体变量成员的输入/输出 177
8.3 结构体数组 177
8.3.1 结构体数组的定义 177
8.3.2 结构体数组的初始化 177
8.3.3 结构体数组的引用 178
8.4 结构体变量与函数 180
8.4.1 函数的形参与实参为结构体 180
8.4.2 函数的返回值类型为结构体 181
8.5 共用体 181
8.5.1 共用体类型定义 181
8.5.2 共用体类型变量定义 182
8.5.3 共用体变量的引用 182
8.6 枚举类型 183
8.6.1 枚举类型及其变量的定义 183
8.6.2 枚举类型变量的基本操作 184
8.7 使用typedef创建别名 184
8.7.1 基础数据类型的别名定义 184
8.7.2 数组类型的别名定义 184
8.7.3 自定义数据类型的别名定义 185
8.8 链表 186
8.8.1 基本概念 186
8.8.2 单链表的建立 186
本章任务解答 189
小结 189
习题 189
第9章 文件 191
9.1 文件概述 191
9.1.1 文件的概念 192
9.1.2 文件的分类 192
9.1.3 文件的一般操作过程 193
9.1.4 文件的指针 194
9.2 文件的打开与关闭 195
9.2.1 打开文件 195
9.2.2 关闭文件 197
9.3 文件的读写 198
9.3.1 单字符的读/写函数 198
9.3.2 字符串的读/写函数 200
9.3.3 格式化读/写函数 201
9.3.4 数据块的读/写 203
9.4 其他相关函数 206
9.4.1 文件指针定位函数 206
9.4.2 错误检测函数 207
9.5 程序范例 208
9.5.1 解决任务9.1的程序 208
9.5.2 文件合并 211
9.5.3 学生成绩管理 213
小结 216
习题 216
附录1 常用字符与ASCII码对照表 218
附录2 C语言运算符优先级详细列表与说明 219
附录3 C语言常用的库函数 221
参考文献 229