第1章 计算机系统概述 1
1.1 计算机系统组成 2
1.2 计算思维方法 4
1.3 如何学习C语言程序设计 9
1.4 习题 9
第2章 基本数据类型 11
2.1 C语言的数据类型 12
2.2 计算机中各种进制数据的表示形式 14
2.2.1 各种进制的数据 14
2.2.2 各种进制之间数据的转换 15
2.3 整型数据 15
2.3.1 带符号的基本整型数据 15
2.3.2 其他整型数据 17
2.3.3 整型变量的定义 18
2.3.4 整型常量 19
2.4 实型数据 20
2.4.1 实型常量的表示方法 20
2.4.2 实型变量 20
2.5 字符型数据 22
2.5.1 字符常量 22
2.5.2 字符变量 23
2.5.3 字符串常量 24
2.6 变量赋初值 25
2.7 各类数值型数据(整型、实型、字符型)的混合运算 25
2.8 习题 27
第3章 运算符与表达式 31
3.1 C运算符简介 32
3.2 算术运算符和算术表达式 33
3.3 赋值运算符和赋值表达式 34
3.4 自增、自减运算符 36
3.5 逗号运算符和逗号表达式 37
3.6 小结 38
3.7 习题 39
第4章 数据的输入与输出 43
4.1 C语句概述 44
4.1.1 表达式语句 44
4.1.2 复合语句 45
4.1.3 赋值语句 46
4.2 数据输入与输出 47
4.2.1 输入/输出的概念 47
4.2.2 单字符数据输入/输出函数 48
4.3 格式输入/输出 49
4.3.1 printf函数(格式输出函数) 49
4.3.2 scanf函数(格式输入函数) 52
4.4 习题 54
第5章 结构化程序设计 59
5.1 简介 60
5.2 算法 60
5.2.1 伪码 60
5.2.2 算法流程图表述 61
5.2.3 流程图的3种基本结构和改进的流程图 62
5.2.4 用N-S流程图表示算法 64
5.3 习题 65
第6章 程序控制 67
6.1 关系运算 68
6.2 逻辑运算 69
6.3 选择程序控制 71
6.3.1 if语句 71
6.3.2 if语句的多种表现形式 72
6.3.3 switch语句 75
6.3.4 条件运算符 78
6.4 循环程序控制 79
6.4.1 循环的本质 79
6.4.2 while语句 80
6.4.3 do-while语句 84
6.4.4 for语句 85
6.5 break和continue语句 88
6.6 习题 93
第7章 函数 103
7.1 概述 104
7.2 函数的一般定义形式 105
7.3 函数的参数 107
7.4 函数的调用 108
7.5 函数的嵌套和递归 110
7.5.1 函数的嵌套 110
7.5.2 函数的递归调用 111
7.6 变量的作用域 113
7.6.1 局部变量 114
7.6.2 全局变量 115
7.6.3 作用域举例 116
7.7 变量的生存期 117
7.7.1 动态存储类型 118
7.7.2 静态存储类型 118
7.8 内部函数和外部函数 120
7.9 习题 121
第8章 数组 129
8.1 概述 130
8.2 一维数组 131
8.2.1 一维数组的定义 131
8.2.2 一维数组的初始化 132
8.2.3 数组元素的引用 133
8.2.4 一维数组的应用 133
8.3 二维数组 138
8.3.1 二维数组的定义 139
8.3.2 二维数组的初始化 140
8.3.3 二维数组元素的引用 141
8.3.4 二维数组应用举例 141
8.3.5 多维数组 143
8.4 一维字符数组 143
8.4.1 字符数组的定义、初始化及引用 143
8.4.2 字符串与字符数组 144
8.5 常用字符串函数 146
8.6 字符数组应用举例 148
8.7 习题 150
第9章 编译预处理 157
9.1 概述 158
9.2 宏定义 158
9.2.1 不带参数宏定义 158
9.2.2 带参数宏定义 160
9.3 文件包含 162
9.4 条件编译 163
9.5 习题 164
第10章 指针 167
10.1 变量的地址与变量的指针 168
10.1.1 地址、地址变量 168
10.1.2 指针变量的定义 170
10.1.3 指针变量的赋值 170
10.1.4 指针变量的引用 171
10.1.5 指针变量作为函数的参数 172
10.2 一维数组与指针 174
10.2.1 指向数组的指针变量 174
10.2.2 通过指针引用数组元素 176
10.2.3 数组名作为函数参数 177
10.3 二维数组与指针 179
10.4 字符串与指针 183
10.4.1 字符串的表示形式 183
10.4.2 字符串指针作为函数参数 184
10.4.3 字符数组和字符指针的区别 185
10.5 函数与指针 186
10.5.1 函数的指针 186
10.5.2 函数的指针作为函数的参数 188
10.5.3 返回指针值的函数 189
10.6 指针数组与指向指针的指针 191
10.6.1 指针数组 191
10.6.2 指针的指针 193
10.6.3 指针数组作为main()函数的参数 194
10.7 指针运算举例 194
10.8 习题 195
第11章 结构体、联合体和位运算 203
11.1 结构体 204
11.1.1 结构体类型和结构体变量 204
11.1.2 结构体变量的引用 206
11.1.3 结构体数组 207
11.1.4 结构体指针变量 209
11.1.5 链表 210
11.2 联合体 213
11.2.1 联合体 213
11.2.2 枚举类型 215
11.3 用typedef定义类型 216
11.4 位运算 217
11.5 习题 218
第12章 文件 225
12.1 概述 226
12.2 文件类型指针 227
12.3 文件的操作 227
12.3.1 文件的打开 228
12.3.2 文件的关闭 229
12.3.3 文件的读写 229
12.3.4 文件的定位 234
12.4 习题 236
第13章 程序设计在农林业现代化中的应用 239
附录 253
附录A ASCII码对照表 254
附录B C语言运算符优先级 256
附录C C语言关键字 258
附录D C语言常用的库函数 258
参考文献 267