第1章 C语言基础知识和算法 1
1.1 计算机语言 1
1.2 C语言出现的历史背景 3
1.2.1 C语言的发展 3
1.2.2 C语言之父 3
1.2.3 C语言基本特点 4
1.2.4 C语言的优缺点 5
1.3 C语言的集成开发环境 6
1.3.1 Turbo C 2.0集成开发环境的使用 6
1.3.2 Visual C+++6.0开发环境 16
1.4 第一个C语言程序 19
1.4.1 C语言字符集与词汇 19
1.4.2 简单的C语言程序 20
1.5 C程序的开发过程 22
1.5.1 源文件的编辑 22
1.5.2 编译源文件 22
1.5.3 链接 22
1.5.4 运行 23
1.6 算法 23
习题 25
第2章 数据类型、运算符与表达式 26
2.1 C的数据类型 26
2.2 常量与变量 27
2.2.1 常量 27
2.2.2 变量 29
2.3 各类数值型数据之间的混合运算 33
2.4 算术运算符和算术表达式 34
2.4.1 C运算符概述 34
2.4.2 算术运算符和算术表达式 35
2.5 赋值运算符和赋值表达式 37
2.6 逗号运算符和逗号表达式 39
2.7 实训——计算器的功能设计 39
习题 40
第3章 顺序结构程序设计 41
3.1 C语句概述 41
3.2 数据的输入输出 43
3.2.1 printf()函数 43
3.2.2 scanf()函数 49
3.2.3 putchar()函数 54
3.2.4 getchar()函数 55
3.3 顺序结构程序设计举例 55
3.4 实训——简单计算器 56
习题 57
第4章 选择结构程序设计 60
4.1 关系运算符和表达式 60
4.1.1 关系运算符及其优先次序 60
4.1.2 关系表达式 60
4.2 逻辑运算符和表达式 61
4.2.1 逻辑运算符及其优先次序 61
4.2.2 逻辑运算的值 62
4.2.3 逻辑表达式 62
4.3 if语句 63
4.3.1 单分支if语句 63
4.3.2 双分支if语句 64
4.3.3 多分支if语句 65
4.3.4 条件运算符和条件表达式 67
4.4 switch语句 67
4.5 选择结构嵌套 70
4.6 程序举例 72
4.7 实训——利用选择结构设计计算器 74
习题 75
第5章 循环结构程序设计 77
5.1 while语句 77
5.2 do-while语句 79
5.3 for语句 81
5.4 几种循环的比较 84
5.5 break和continue语句 84
5.5.1 break语句 84
5.5.2 continue语句 85
5.6 循环的嵌套 86
5.7 循环结构程序举例 87
5.8 实训——利用循环结构设计简单计算器 90
习题 90
第6章 数组 93
6.1 一维数组 93
6.1.1 一维数组的定义方式 93
6.1.2 一维数组元素的引用 94
6.1.3 一维数组的初始化 95
6.1.4 一维数组的排序 97
6.2 二维数组 100
6.2.1 二维数组的定义 100
6.2.2 二维数组元素的引用 100
6.2.3 二维数组的初始化 102
6.3 字符数组 104
6.3.1 字符数组的定义 104
6.3.2 字符数组的初始化 104
6.3.3 字符数组的引用 105
6.3.4 字符串和字符串结束标志 105
6.3.5 字符数组的输入输出 106
6.4 字符串处理函数 108
6.5 数组应用综合实例 111
6.6 实训——利用数组实现计算器 113
习题 114
第7章 函数 117
7.1 函数的定义 117
7.1.1 概述 117
7.1.2 函数定义的一般形式 118
7.1.3 函数的参数和函数的值 119
7.2 函数的调用 122
7.2.1 函数的调用 122
7.2.2 函数的嵌套调用 124
7.2.3 函数的递归调用 126
7.3 数组作为函数参数 129
7.4 局部变量和全局变量 134
7.4.1 局部变量 134
7.4.2 全局变量 136
7.5 变量的存储类别 137
7.5.1 动态存储方式与静态存储方式 137
7.5.2 auto变量 138
7.5.3 用static声明局部变量 139
7.5.4 register变量 140
7.5.5 用extern声明外部变量 141
7.6 内部函数和外部函数 141
7.6.1 外部函数 141
7.6.2 内部函数 142
7.7 实训——计算器 142
习题 144
第8章 指针 146
8.1 地址和指针变量 146
8.2 变量的指针和指向变量的指针变量 147
8.2.1 指针变量的定义 148
8.2.2 指针变量的引用 149
8.2.3 指针变量作为函数参数 153
8.2.4 指针变量的运算符及指针变量的运算 155
8.3 数组指针和指向数组的指针变量 159
8.3.1 指向数组元素的指针 159
8.3.2 通过指针引用数组元素 160
8.3.3 数组名作函数参数 163
8.3.4 指向多维数组的指针和指针变量 168
8.4 字符串的指针和指向字符串的指针变量 171
8.4.1 字符串的表示形式 171
8.4.2 使用字符串指针变量与字符数组的区别 172
8.5 函数指针变量 173
8.5.1 函数的指针 173
8.5.2 返回值为指针类型的函数 174
8.6 指针数组和指向指针的指针 175
8.6.1 指针数组的概念 175
8.6.2 指向指针的指针 178
习题 180
第9章 宏定义 181
9.1 预处理命令概述 181
9.2 宏定义 181
9.2.1 不带参数的宏定义 181
9.2.2 带参数的宏定义 182
9.3 文件包含 183
9.4 条件编译 184
习题 185
第10章 结构体、共用体和枚举类型 190
10.1 结构体类型的定义 190
10.2 结构体类型的变量 191
10.3 结构体数组 193
10.4 结构体的应用:链表 196
10.5 共用体 199
10.6 枚举类型 201
10.7 用户定义类型 202
10.8 实训——图书借阅管理系统 203
习题 206
第11章 位运算 209
11.1 位运算符和位运算 209
11.2 位运算举例 211
11.3 位段 213
习题 215
第12章 文件 217
12.1 文件概述 217
12.2 文件指针 217
12.3 文件操作 218
12.3.1 文件打开与关闭 218
12.3.2 文件的读、写操作 219
12.4 文件定位函数 225
12.5 文件检测函数 227
习题 227
第13章 案例 230
13.1 计算器 230
13.2 图书借阅管理系统 242
附录A 常用字符与ASCII代码对照表 260
附录B C语言中的关键字 261
附录C 运算符和结合性 262
附录D C语言常用语法提要 264
附录E C库函数 267
参考文献 273