第1章 程序设计概述 1
1.1 程序和程序设计语言 1
1.1.1 程序的概念 1
1.1.2 程序的特征 2
1.1.3 程序设计语言的种类 2
1.1.4 程序设计语言中的基本成分 3
1.1.5 语言处理系统 4
1.1.6 常见的程序设计语言介绍 4
1.2 算法和算法描述 5
1.2.1 算法的概念 5
1.2.2 算法的特性 6
1.2.3 算法的描述方法 6
1.3 程序设计的过程 8
1.4 编码规范 9
1.5 本章小结 10
第2章 C语言基础 12
2.1 C语言的发展、标准及特点 12
2.1.1 C语言的发展及标准 12
2.1.2 C语言的特点 13
2.2 C语言程序的结构 14
2.2.1 C语言程序的结构 14
2.2.2 输入、调试、运行程序的一般过程 16
2.3 常量、变量与数据类型 21
2.3.1 概述 21
2.3.2 常量 21
2.3.3 变量 24
2.3.4 数据类型 25
2.4 表达式 28
2.4.1 运算符的类型 29
2.4.2 算术运算符和算术表达式 29
2.4.3 赋值运算符、赋值表达式和赋值语句 30
2.4.4 逗号运算符和逗号表达式 32
2.5 本章小结 32
第3章 程序设计初步 34
3.1 C语句概述 34
3.2 数据的输入与输出 36
3.2.1 printf()函数(格式输出函数) 37
3.2.2 scanf()函数(格式输入函数) 39
3.2.3 字符输入输出函数 40
3.3 程序举例 41
3.4 本章小结 43
第4章 选择结构程序设计 45
4.1 关系运算与逻辑运算 45
4.1.1 关系运算符和关系表达式 45
4.1.2 逻辑运算符和逻辑表达式 46
4.1.3 条件运算符和条件表达式 48
4.2 if语句 49
4.2.1 引例 49
4.2.2 单分支的if语句 51
4.2.3 双分支的if…else语句 52
4.2.4 if语句的嵌套 53
4.3 多分支选择语句 55
4.3.1 引例 55
4.3.2 switch语句 56
4.3.3 switch语句举例 57
4.4 程序举例 58
4.5 本章小结 62
第5章 循环结构程序设计 64
5.1 while循环 64
5.1.1 引例 64
5.1.2 while循环 65
5.1.3 while循环的应用 66
5.2 do…while循环 69
5.2.1 引例 69
5.2.2 do…while循环 69
5.2.3 do…while循环的应用 70
5.3 for循环 72
5.3.1 引例 72
5.3.2 for循环 73
5.3.3 for循环的应用 74
5.4 循环的嵌套 75
5.5 循环辅助语句 78
5.6 典型算法及应用举例 78
5.6.1 累加(累积)法 79
5.6.2 迭代法 80
5.6.3 递推法 82
5.6.4 穷举法 83
5.7 本章小结 84
第6章 数组 86
6.1 一维数组 86
6.1.1 一维数组的定义 88
6.1.2 一维数组的引用 88
6.1.3 一维数组的初始化 89
6.1.4 一维数组的应用举例 91
6.2 二维数组 98
6.2.1 二维数组的定义 99
6.2.2 二维数组的引用 100
6.2.3 二维数组的初始化 101
6.2.4 二维数组的应用举例 103
6.3 字符数组 105
6.3.1 字符数组的定义 105
6.3.2 字符数组的初始化 106
6.3.3 字符串 106
6.3.4 字符数组的输入输出 107
6.4 字符串处理函数 108
6.5 本章小结 112
第7章 函数 114
7.1 函数概述 114
7.2 函数的定义 117
7.2.1 函数的定义 117
7.2.2 函数的参数 118
7.2.3 函数的返回值 121
7.3 函数的调用 122
7.3.1 函数调用的一般形式 122
7.3.2 函数的声明 122
7.3.3 函数的嵌套调用 123
7.4 函数的递归调用 126
7.4.1 递归调用的定义 127
7.4.2 递归调用的条件 127
7.5 变量的作用域 128
7.5.1 局部变量 129
7.5.2 全局变量 129
7.6 变量的生存期 130
7.6.1 静态变量 131
7.6.2 外部变量 132
7.7 本章小结 134
第8章 指针 137
8.1 指针变量的定义及基本使用方法 137
8.1.1 引例 137
8.1.2 地址和指针的概念 138
8.1.3 指针变量的定义方法 139
8.1.4 变量的访问方法 140
8.1.5 指针变量的初始化与赋值 142
8.1.6 指针变量的运算 143
8.2 指针变量作为函数参数 147
8.2.1 引例 147
8.2.2 指针作为函数的参数 148
8.3 数组指针与指向数组的指针变量 153
8.3.1 引例 153
8.3.2 数组指针与指向数组的指针变量的定义 154
8.3.3 通过指针引用数组元素 155
8.3.4 数组名作为函数参数 158
8.3.5 指向多维数组的指针和指针变量 162
8.4 字符串的指针与指向字符串的指针变量 165
8.4.1 引例 165
8.4.2 字符串的表示形式 166
8.4.3 字符串指针作为函数参数 169
8.4.4 字符串指针变量与字符数组的区别 170
8.5 指向函数的指针变量和指针函数 170
8.5.1 引例 170
8.5.2 函数指针 172
8.5.3 指针函数 173
8.6 指针数组和指向指针的指针 174
8.6.1 引例 174
8.6.2 指针数组 175
8.6.3 指向指针的指针 180
8.7 main()函数的参数 182
8.8 指针运算举例 184
8.9 本章小结 186
第9章 结构体与共用体 189
9.1 结构体类型 189
9.1.1 引例 189
9.1.2 结构体类型的定义方法 192
9.1.3 结构体类型变量的定义与初始化 195
9.1.4 结构体类型变量的引用 197
9.1.5 结构体类型的应用举例 198
9.1.6 结构体数组 200
9.1.7 结构体指针 203
9.1.8 用指针实现动态内存分配 207
9.1.9 用指针处理链表 210
9.2 共用体类型 214
9.2.1 共用体类型的定义 214
9.2.2 共用体类型变量的定义与初始化 215
9.3 枚举类型 219
9.3.1 枚举类型的定义 219
9.3.2 枚举类型变量的说明 220
9.3.3 枚举类型变量的赋值和使用 220
9.3.4 枚举变量的输入和输出 222
9.4 类型定义符typedef 223
9.5 位运算 225
9.5.1 位运算 225
9.5.2 位段 228
9.6 本章小结 229
第10章 文件 232
10.1 文件概述 232
10.1.1 引例 232
10.1.2 文件的概念 233
10.1.3 缓冲文件系统 234
10.1.4 文件类型指针 235
10.2 文件的打开与关闭 236
10.2.1 文件的打开 236
10.2.2 文件的关闭 238
10.3 文件的读写 238
10.3.1 字符读写函数:fgetc()函数和fputc()函数 239
10.3.2 字符串读写函数:fgets()函数和fputs()函数 240
10.3.3 格式化读写函数:fscanf()函数和fprintf()函数 242
10.3.4 数据块读写函数:fread()函数和fwrite()函数 243
10.3.5 读写函数的选用原则 245
10.4 文件定位 245
10.4.1 位置指针定位函数:fseek()函数 245
10.4.2 求位置指针偏移值函数:ftell()函数 246
10.4.3 位置指针复位函数:rewind() 246
10.4.4 出错的检测 248
10.5 本章小结 249
第11章 综合应用 251
11.1 面积计算器的实现 251
11.1.1 问题定义 252
11.1.2 系统分析及知识准备 252
11.1.3 系统设计 252
11.1.4 系统实现 255
11.1.5 系统测试 259
11.1.6 小结 260
11.2 贪食蛇游戏的实现 260
11.2.1 贪食蛇游戏概述 260
11.2.2 数据结构的设计 261
11.2.3 功能设计 262
11.2.4 系统实现 266
11.2.5 参考程序源代码 275
11.3 本章小结 283
附录1 C语言中的关键字 284
附录2 常用ASCII码对照表 285
附录3 运算符及优先级 287
附录4 C语言常用库函数 289
参考文献 294