基础篇 2
第1章 绪论 2
1.1 引言 2
1.2 C语言出现的历史背景 4
1.2.1 C语言的诞生 4
1.2.2 C语言标准的演变 5
1.3 C语言的特点 6
1.3.1 基本特性 6
1.3.2 优点 6
1.3.3 缺点 7
1.4 一个简单的C语言程序 8
1.5 程序与程序设计语言 11
1.5.1 程序与指令 11
1.5.2 程序设计语言 13
1.5.3 程序的编辑与处理 14
1.6 运行C语言程序的步骤和方法 15
1.6.1 运行C语言程序的步骤 15
1.6.2 运行C语言程序的方法 15
1.7 程序设计中的命名规则 16
本章小结 18
习题1 19
第2章 算法 21
2.1 算法的概念 21
2.1.1 算法的定义及特征 22
2.1.2 算法的评价 23
2.2 算法的描述 24
2.2.1 自然语言描述算法 24
2.2.2 流程图描述算法 26
2.2.3 伪代码描述算法 27
2.3 简单算法举例 28
2.4 计算思维 30
2.4.1 计算思维的定义 30
2.4.2 计算思维的特征 32
2.5 结构化程序设计方法 32
2.5.1 自顶向下、逐步求精 33
2.5.2 基本控制结构 33
2.5.3 模块化设计 33
本章小结 35
习题2 35
第3章 用C语言编写程序 37
3.1 C语言程序的简单结构 37
3.1.1 程序的基本结构和格式 39
3.1.2 C语言的标识符 39
3.2 常量、变量与赋值 40
3.2.1 常量 40
3.2.2 变量与内存 41
3.2.3 变量的定义与赋值 43
3.3 运算符与表达式 44
3.3.1 算术运算符 44
3.3.2 赋值运算符 45
3.3.3 自增、自减运算符 46
3.3.4 条件运算符 46
3.3.5 逗号运算符 47
3.3.6 求字节运算符 47
3.4 基本输入输出 47
3.4.1 格式输入输出 47
3.4.2 字符输入输出 56
3.5 基本数据类型 57
3.5.1 整型数据在内存中的存储 58
3.5.2 浮点型数据在内存中的存储 59
3.5.3 字符型数据在内存中的存储 59
3.6 各类数值型数据间的混合运算 60
3.6.1 运算中不同类型数据间的类型转换 60
3.6.2 数据类型的强制转换 61
本章小结 61
习题3 62
第4章 选择结构 66
4.1 关系运算符和关系表达式 66
4.2 逻辑运算符和逻辑表达式 66
4.3 if语句 67
4.3.1 简单猜数游戏 67
4.3.2 if单分支语句 68
4.3.3 if双分支语句 69
4.3.4 if多分支语句 69
4.4 switch语句 70
4.4.1 简单菜单程序 70
4.4.2 switch语句 72
本章小结 73
习题4 74
第5章 循环结构 79
5.1 求1+2+3+…+100 79
5.1.1 while循环语句 79
5.1.2 do…while循环语句 80
5.1.3 for循环语句 82
5.1.4 goto语句以及用goto构成的循环 83
5.2 判断素数 83
5.2.1 break语句 83
5.2.2 continue语句 85
5.3 嵌套循环 87
5.4 循环结构程序设计 89
本章小结 91
习题5 92
第6章 数据组织 98
6.1 一维数组的定义和引用 98
6.1.1 一维数组的定义 98
6.1.2 一维数组元素的引用 99
6.1.3 一维数组的初始化 99
6.1.4 一维数组编程 101
6.2 二维数组的定义和引用 104
6.2.1 二维数组的定义 105
6.2.2 二维数组的引用 106
6.2.3 二维数组的初始化 106
6.2.4 二维数组编程 107
6.3 字符数组 109
6.3.1 字符数组的定义 109
6.3.2 字符数组的初始化 110
6.3.3 字符数组的输入和输出 111
6.3.4 其他字符串处理函数 114
6.3.5 字符数组编程 114
6.4 结构体变量 115
6.4.1 结构体类型的声明 116
6.4.2 定义结构体变量 117
6.4.3 结构体类型变量的初始化和引用 118
6.4.4 结构体数组 119
6.4.5 结构体数组编程 120
6.5 共用体 121
6.5.1 共用体的概念 123
6.5.2 共用体类型的定义 123
6.5.3 共用体变量的定义 124
6.5.4 共用体变量的引用 124
6.5.5 共用体类型数据的特点 125
6.6 枚举类型 126
本章小结 127
习题6 127
第7章 函数初步 131
7.1 计算组合数Cn m 131
7.1.1 问题提出 131
7.1.2 函数的分类 132
7.1.3 函数的定义 132
7.1.4 函数的调用 133
7.2 显示一条横线 135
7.2.1 不返回结果的函数应用 135
7.2.2 不返回结果的函数定义 136
7.3 变量的作用域和生存期 136
7.3.1 局部变量和全局变量 136
7.3.2 变量的生存周期和存储属性 138
7.4 函数应用程序设计 141
本章小结 143
习题7 143
第8章 指针初步 149
8.1 指针基本概念 149
8.1.1 交换两个变量的值 149
8.1.2 地址和指针的概念 151
8.1.3 指针变量定义 151
8.1.4 指针变量的引用 152
8.1.5 指针作为函数的参数 153
8.2 指针与数组 153
8.2.1 冒泡排序法 153
8.2.2 指针、数组和地址的关系 155
8.2.3 数组名作为函数参数 157
8.3 指针与字符串 157
8.3.1 字符串的分类统计 157
8.3.2 字符串和字符指针 159
8.3.3 常用字符串处理函数 160
8.4 指针与结构体 163
8.4.1 制造虚拟汽车 163
8.4.2 指针与结构体 164
8.4.3 指针与结构体数组 165
8.5 指针与函数 165
8.5.1 简单模式匹配 165
8.5.2 定义函数返回值为指针 167
8.6 指针应用程序设计 169
本章小结 169
习题8 169
提高篇 173
第9章 函数与程序结构 173
9.1 嵌套调用求组合数 173
9.2 函数递归调用 176
9.2.1 函数递归调用基本概念 176
9.2.2 汉诺塔问题 178
9.3 编译预处理 180
9.3.1 宏定义 181
9.3.2 文件包含 182
9.3.3 条件编译 182
9.4 学生成绩管理系统设计 185
9.4.1 分模块设计学生成绩管理系统 185
9.4.2 程序文件模块图 185
9.4.3 文件模块间的通信 185
本章小结 188
习题9 189
第10章 动态组织数据 194
10.1 用链表构造学生信息 194
10.1.1 链表的概念 196
10.1.2 处理动态链表所需的函数 197
10.1.3 建立动态链表 198
10.2 输出学生链表信息 200
10.2.1 链表的遍历 200
10.2.2 链表遍历的简单应用 202
10.3 在链表中插入一个新学生信息 202
10.4 在链表中删除一个指定学生信息 206
10.5 动态组织数据综合应用 210
10.5.1 用typedef命名已有类型 210
10.5.2 综合应用 211
本章小结 214
习题10 215
第11章 文件 222
11.1 C文件的概念 222
11.1.1 文本文件和二进制文件 223
11.1.2 文件缓冲区 223
11.1.3 文件类型指针 224
11.2 文件的打开与关闭 225
11.2.1 文件的打开(fopen函数) 225
11.2.2 文件的关闭(fclose函数) 227
11.3 C文件的读写 227
11.3.1 字符读写函数fgetc和fput 228
11.3.2 字符读写函数fgets和fputs 232
11.3.3 数据块读写函数fread和fwrite 235
11.3.4 格式化读写函数fbrintf和fscanf 237
11.4 C文件的随机读写 239
11.4.1 文件定位 240
11.4.2 随机读写 240
11.5 C文件的检测函数 241
11.5.1 文件结束检测函数 241
11.5.2 读写文件出错检测函数 242
11.5.3 文件出错标志和文件结束标志置0函数 242
本章小结 243
习题11 243
第12章 指针进阶 247
12.1 用矩形法求多个函数的定积分 247
12.1.1 指向函数指针的概念 249
12.1.2 指向函数的指针变量 249
12.1.3 指向函数指针的调用 249
12.2 查找关键字符号表 251
12.2.1 指针数组的定义 252
12.2.2 指针数组与二维数组 254
12.3 用指向指针数据的指针实现字符串的排序 257
12.3.1 指向指针数据的指针变量 258
12.3.2 定义指向指针数据的指针变量 258
12.3.3 指向指针数据的指针变量作为函数参数 259
12.3.4 命令行参数 260
12.4 指针综合应用 261
本章小结 263
习题12 264
第13章 位运算 269
13.1 位运算符 269
13.1.1 按位与运算 269
13.1.2 按位或运算 271
13.1.3 按位异或运算 271
13.1.4 求反运算 273
13.1.5 左移运算 273
13.1.6 右移运算 274
13.1.7 不同长度的数据进行位运算 275
13.2 位运算应用与举例 275
13.3 位域 277
本章小结 279
习题13 279
附录 283
附录A 常用字符与ASCII代码对照表 283
附录B 关键字及其用途 284
附录C 运算符的优先级和结合性 285
附录D C常用库函数 286
附录E VC6.0常见编译错误信息 290
参考文献 294