第1章 C语言概述 1
1.1 一个C语言程序 1
1.2 计算机程序设计与程序设计语言 2
1.2.1 程序与指令 2
1.2.2 程序设计语言 4
1.3 C语言的发展与应用现状 4
1.4 C语言的特点 5
1.4.1 C语言的优势 5
1.4.2 如何学习C语言程序设计 6
1.4.3 C语言的语法特点 6
1.4.4 C语言的结构特点 8
1.4.5 C语言的编译与编程环境 8
习题 9
第2章 C语言常用编程环境 11
2.1 经典的Visual C++ 6.0编程环境 11
2.1.1 Visual C++ 6.0概述 11
2.1.2 使用Visual C++ 6.0建立C语言应用程序 11
2.2 开源的Dev-C++ 19
习题 29
第3章 用C语言编写简单程序 30
3.1 在屏幕上显示自定义文字“Hello World!” 30
3.1.1 程序解析 30
3.1.2 程序的三种结构 31
3.2 摄氏温度与华氏温度换算(简单的顺序结构程序的编写) 32
3.2.1 程序解析 33
3.2.2 常量、变量和数据类型 33
3.2.3 赋值运算和算术运算 34
3.2.4 格式化输出函数printf 35
3.3 判断一元二次方程是否有实数解(简单的分支结构程序的编写) 35
3.3.1 程序解析 36
3.3.2 关系运算 36
3.3.3 if...else二分支语句 37
3.3.4 格式化输入函数scanf 37
3.4 计算自由落体反弹高度和总距离(简单的循环结构程序——for语句的编写) 38
3.4.1 指定次数的循环程序设计 38
3.4.2 for语句 39
3.4.3 计算自由落体反弹高度和总距离 40
3.4.4 程序解析 40
习题 41
第4章 分支结构程序设计 43
4.1 从键盘输入一个控制命令字符,判断输入是否正确 43
4.1.1 程序解析 43
4.1.2 字符类型 44
4.1.3 逻辑运算符和逻辑表达式 45
4.1.4 字符型数据的输入和输出 46
4.2 分支结构程序设计——求解一元二次方程 48
4.2.1 程序解析 48
4.2.2 if语句的三种形式 49
4.2.3 if语句的嵌套 52
4.3 模拟工程控制,根据指令进行相应的操作 53
4.3.1 程序解析 53
4.3.2 switch语句 54
习题 56
第5章 循环结构程序设计 60
5.1 输入一批学生的成绩,统计平均分 60
5.1.1 程序解析 60
5.1.2 while语句 61
5.1.3 数列问题求解 61
5.2 用牛顿迭代法求方程2x3-4x2+3x-6=0的根 63
5.2.1 程序解析 63
5.2.2 do...while语句 64
5.2.3 循环语句的选择 64
5.3 打印九九乘法表 65
5.3.1 程序解析 65
5.3.2 循环的嵌套 66
5.4 求素数 67
5.4.1 程序解析 67
5.4.2 用break语句和continue语句改变循环状态 68
5.5 复杂循环结构程序设计 70
5.5.1 傅里叶级数逼近 70
5.5.2 数据处理与回归分析 71
习题 73
第6章 C语言的数据类型和表达式 77
6.1 C语言的基本数据类型 77
6.2 常量和变量 78
6.2.1 常量 78
6.2.2 变量 80
6.3 运算符和表达式 81
6.3.1 算术运算符和算术表达式 82
6.3.2 强制类型转换运算符 84
6.3.3 自增、自减运算符 84
6.3.4 赋值运算符和赋值表达式 85
6.3.5 关系运算符和表达式 87
6.3.6 逻辑运算符和表达式 88
6.3.7 条件表达式 89
6.3.8 逗号表达式 90
6.4 综合程序设计案例 91
6.5 算法与程序设计 92
习题 94
第7章 数组 96
7.1 排序问题 96
7.1.1 程序解析 96
7.1.2 一维数组的定义和引用 97
7.1.3 一维数组的初始化 98
7.1.4 使用一维数组编程 99
7.2 找出矩阵中最大值所在的位置 104
7.2.1 程序解析 104
7.2.2 二维数组的定义和引用 105
7.2.3 二维数组的初始化 107
7.3 数据通信过程中的信息加密问题 108
7.3.1 程序解析 108
7.3.2 一维字符数组 109
7.3.3 字符串处理 111
习题 118
第8章 函数 120
8.1 用函数求几何图形的面积 120
8.1.1 程序解析 120
8.1.2 函数的定义 121
8.1.3 函数的声明 123
8.1.4 函数的调用 124
8.2 用函数求Fibonacci数列 126
8.2.1 程序解析 126
8.2.2 形式参数与实际参数 126
8.2.3 函数的返回值 128
8.2.4 值传递与地址传递 128
8.3 变量与函数 135
8.3.1 局部变量和全局变量 135
8.3.2 变量的存储类别 138
8.3.3 函数的递归调用——求n! 140
习题 145
第9章 指针及其应用 148
9.1 替代用变量名引用数据的新方法 148
9.1.1 指针概念的引入 148
9.1.2 定义指针变量 151
9.1.3 指针与变量的关系 152
9.1.4 为指针变量赋值及指针变量的初始化 152
9.1.5 利用指针变量进行数据处理 153
9.2 指针和一维数组 155
9.3 利用被调函数对主调函数中的数组元素进行冒泡排序 158
9.3.1 指针变量作为函数参数 158
9.3.2 数组名作为函数的参数 159
9.4 字符串和字符指针 161
9.4.1 字符串常量的值 162
9.4.2 使用字符指针处理字符串的程序举例 162
习题 165
第10章 结构体、共用体和枚举类型 168
10.1 按价格排序输出一组待售汽车的信息 168
10.1.1 程序解析 168
10.1.2 结构体类型的概念和定义 169
10.1.3 结构体类型变量的定义 170
10.1.4 结构体类型变量的使用 173
10.1.5 结构体变量作为函数参数 175
10.2 编写一个书籍管理程序,显示所有书籍信息 178
10.2.1 程序解析 178
10.2.2 结构体数组 179
10.2.3 结构体数组的应用实例 180
10.3 共用体——每个时刻只能有一个成员占用内存的“结构体” 181
10.3.1 程序解析 181
10.3.2 共用体类型的定义 182
10.3.3 共用体变量的定义 183
10.3.4 共用体变量的引用 184
10.4 让变量的取值局限于特定范围 187
10.4.1 枚举类型的定义 188
10.4.2 枚举变量的定义 189
10.4.3 枚举类型的应用 190
10.5 随心所欲地安排数据类型名——typedef的使用方法 192
10.5.1 利用typedef定义类型名 192
10.5.2 typedef的典型用法 193
习题 194
第11章 宏定义与文件包含 196
11.1 宏定义 196
11.1.1 程序解析 196
11.1.2 无参宏定义 197
11.1.3 带参宏定义 199
11.2 文件包含 202
11.3 条件编译 204
习题 207
第12章 文件 210
12.1 将“欢迎卓越工程师”写入文件 210
12.1.1 程序解析 210
12.1.2 C文件概述 211
12.1.3 文件指针 212
12.1.4 文件的打开与关闭 212
12.2 文件的读写——读取工程文件 214
12.2.1 程序解析——读取工程文件 214
12.2.2 字符读写函数fgetc和fputc 215
12.2.3 字符串读写函数fgets和fputs 218
12.2.4 数据块读写函数fread和fwrite 219
12.2.5 格式化读写函数fscanf和fprintf 221
12.3 文件的随机读写 222
12.3.1 改变文件位置指针函数fseek() 222
12.3.2 位置指针重返文件头函数rewind() 223
12.3.3 位置指针当前值函数ftell() 224
12.3.4 文件的随机读写 224
12.4 文件检测函数 225
12.4.1 文件结束检测函数feof函数 225
12.4.2 读写文件出错检测函数ferror函数 225
12.4.3 文件出错标志和文件结束标志置0函数clearerr函数 225
习题 226
附录A ASCII编码表 228
附录B C语言常用的库函数 229
附录C C语言运算符优先级表 235
参考文献 236