第1章 概述 1
1.1 计算机简介 1
1.1.1 计算机发展简史 1
1.1.2 计算机工作原理 5
1.1.3 现代计算机硬件系统的构成 6
1.1.4 计算机软件系统的构成 7
1.2 程序设计语言 8
1.3 C语言简介 9
1.3.1 C语言的特点 10
1.3.2 C语言的发展和标准化 11
1.4 简单的C语言程序 11
1.4.1 C语言程序的特点 11
1.4.2 C语言程序的编译和运行 14
1.4.3 C语言程序的书写格式 16
1.5 解决实际问题的过程 16
1.5.1 解决问题的基本步骤 16
1.5.2 算法的概念 17
1.5.3 算法的特性 18
1.5.4 算法的表示 19
1.6 小结 20
习题 21
第2章 C语言数据类型、运算符和表达式 22
2.1 基本字符、关键字和标识符 23
2.2 常量 24
2.3 变量的定义和使用 26
2.3.1 变量的定义及变量类型 26
2.3.2 变量的属性和分类 27
2.3.3 变量的使用及赋初值 28
2.4 基本数据类型及其在计算机中的表示 29
2.4.1 数的进制 29
2.4.2 整型数据 35
2.4.3 整型变量 36
2.5 实型数据 39
2.5.1 实型常量的表示方法 39
2.5.2 实型变量 40
2.6 字符型数据 40
2.6.1 字符型常量 40
2.6.2 字符变量 42
2.6.3 字符变量在内存中的存储方式 42
2.6.4 字符数据和整型数据的关系 42
2.6.5 字符串常量 44
2.7 不同运算中各种数据类型间的相互转换 44
2.8 运算符和表达式 47
2.8.1 算术运算符和算术表达式 48
2.8.2 赋值运算符和赋值表达式 55
2.8.3 关系运算符和关系表达式 56
2.8.4 逻辑运算符和逻辑表达式 57
2.8.5 条件运算符和条件表达式 59
2.8.6 逗号运算符和逗号表达式 61
2.8.7 其他运算符及其运算 61
2.9 小结 62
习题 62
第3章 结构化程序设计 64
3.1 什么是结构化程序设计 64
3.2 程序流程图 65
3.2.1 传统流程图 65
3.2.2 N-S结构化流程图 66
3.3 3种基本结构及流程图表示 67
3.3.1 顺序结构 67
3.3.2 选择结构 67
3.3.3 循环结构 67
3.4 小结 68
习题 68
第4章 顺序结构程序设计 69
4.1 字符型数据的输入/输出函数 69
4.1.1 putchar函数 69
4.1.2 getchar函数 70
4.2 格式输入/输出函数 71
4.2.1 printf函数 71
4.2.2 scanf函数 77
4.3 程序举例 81
4.4 小结 83
习题 83
第5章 选择结构程序设计 85
5.1 if语句 85
5.1.1 if语句的标准格式 85
5.1.2 if语句的嵌套 87
5.2 switch语句 91
5.3 程序举例 93
5.4 小结 98
习题 98
第6章 循环结构程序设计 100
6.1 循环结构问题的提出 100
6.2 for循环 100
6.2.1 for循环语句 100
6.2.2 for循环的简单举例 102
6.3 while循环 103
6.3.1 while循环语句 103
6.3.2 while循环的简单举例 105
6.4 do-while循环 105
6.4.1 do-while循环语句 105
6.4.2 do-while循环的简单举例 106
6.5 循环语句的嵌套 107
6.5.1 循环语句的嵌套形式 107
6.5.2 循环语句的嵌套举例 107
6.6 break语句和continue语句 108
6.6.1 break语句 108
6.6.2 continue语句 110
6.7 程序举例 111
6.8 小结 117
习题 117
第7章 数组 119
7.1 一维数组 119
7.1.1 一维数组的定义 119
7.1.2 一维数组的初始化 120
7.1.3 一维数组元素的引用 120
7.1.4 一维数组程序举例 122
7.2 二维数组 124
7.2.1 二维数组的定义 124
7.2.2 二维数组的初始化 125
7.2.3 二维数组元素的引用 126
7.2.4 二维数组程序举例 127
7.3 字符数组 128
7.3.1 字符数组的定义、初始化及引用 128
7.3.2 字符串处理函数 131
7.3.3 字符数组程序举例 133
7.4 小结 135
习题 135
第8章 函数 137
8.1 C语言程序的一般结构 137
8.2 函数的定义和返回值 138
8.2.1 函数的定义及声明 138
8.2.2 函数的返回值 142
8.3 函数间的数据传递 142
8.3.1 实参与形参 143
8.3.2 值传递与地址传递 144
8.3.3 简单变量作参数 148
8.3.4 数组作参数 150
8.4 函数的调用 154
8.4.1 函数调用的语法要求 154
8.4.2 函数的嵌套调用 154
8.4.3 函数的递归调用 155
8.5 变量的作用域及其存储类型 160
8.5.1 变量的作用域 160
8.5.2 变量的存储类型 163
8.5.3 变量分类总结 168
8.6 内部函数和外部函数 169
8.6.1 内部函数 169
8.6.2 外部函数 171
8.7 小结 173
习题 173
第9章 指针 175
9.1 指针的概念 175
9.1.1 变量的地址 175
9.1.2 变量的访问方式 176
9.1.3 指针和地址 176
9.2 指针变量 177
9.2.1 指针变量的定义 177
9.2.2 指针变量的初始化 177
9.2.3 指针的基本运算 178
9.2.4 指针程序举例 179
9.3 指针变量作函数参数 181
9.4 指向数组的指针 184
9.4.1 指向一维数组元素的指针 184
9.4.2 数组名或指针变量作函数参数 189
9.4.3 二维数组的指针 191
9.5 指向字符串的指针 197
9.5.1 指向字符串的指针变量 197
9.5.2 字符串指针作函数参数 200
9.6 指针数组 203
9.6.1 指针数组的概念 203
9.6.2 命令行参数 206
9.7 函数的指针和返回指针值的函数 208
9.7.1 函数的指针 208
9.7.2 指针型函数 211
9.8 指针的指针 214
9.9 小结 215
习题 216
第10章 结构体与共用体 217
10.1 结构体概述 217
10.1.1 结构体的概念 217
10.1.2 结构体类型的定义 217
10.2 结构体变量 219
10.2.1 结构体变量的定义 219
10.2.2 结构体变量的初始化 220
10.2.3 结构体变量的引用 221
10.3 结构体变量作为函数参数 222
10.4 结构体数组 224
10.4.1 结构体数组的定义 224
10.4.2 结构体数组的初始化 225
10.4.3 结构体数组元素的引用 226
10.5 指向结构体类型数据的指针 227
10.5.1 指向结构体变量的指针 227
10.5.2 指向结构体数组的指针 229
10.5.3 结构体指针变量作函数参数 230
10.6 动态存储分配 232
10.7 链表 233
10.7.1 链表的概念 233
10.7.2 链表的操作 234
10.8 共用体 241
10.8.1 共用体类型定义 242
10.8.2 共用体变量的定义与引用 242
10.8.3 应用举例 243
10.9 枚举类型 246
10.9.1 枚举类型的定义和枚举变量的说明 246
10.9.2 枚举类型变量的赋值和使用 247
10.10 类型定义符typedef 248
10.11 小结 249
习题 250
第11章 文件 253
11.1 文件概述 253
11.1.1 文件的概念及分类 253
11.1.2 文件指针 254
11.2 文件的打开与关闭 255
11.2.1 fopen函数 255
11.2.2 fclose函数 256
11.3 文件的读写 257
11.3.1 字符读写函数fgetc和fputc 257
11.3.2 字符串读写函数fgets和fputs 259
11.3.3 数据块读写函数fread和fwrite 261
11.3.4 磁盘文件读写函数fscanf和fprintf 263
11.3.5 文件的定位 265
11.4 文件检测函数 268
11.5 C语言库文件 268
11.6 小结 269
习题 270
第12章 位运算 271
12.1 位运算符 271
12.1.1 按位与运算 271
12.1.2 按位或运算 271
12.1.3 按位异或运算 272
12.1.4 求反运算 272
12.1.5 左移运算 272
12.1.6 右移运算 272
12.2 位段 272
12.2.1 位段的定义和位段变量的说明 273
12.2.2 位段的使用 274
12.3 小结 275
习题 275
第13章 预处理命令 277
13.1 概述 277
13.2 宏定义 277
13.2.1 不带参数的宏定义 277
13.2.2 带参数的宏定义 280
13.3 文件包含 283
13.4 条件编译 285
13.5 小结 286
习题 287
第14章 图形函数及简单界面设计介绍 288
14.1 屏幕显示模式概述 288
14.1.1 屏幕显示模式简介 288
14.1.2 设置和关闭图形模式 289
14.2 基本图形绘制函数简介 293
14.2.1 画直线函数 293
14.2.2 画矩形函数 293
14.2.3 画圆和圆弧函数 294
14.2.4 设置线型和线宽 296
14.3 设置屏幕显示颜色 298
14.3.1 颜色简介 298
14.3.2 设置屏幕颜色 299
14.4 图形填充函数 301
14.4.1 图形填充模式的设置 301
14.4.2 填充基本图形的函数 302
14.4.3 填充任意封闭图形的函数 306
14.5 图形模式字符的显示 307
14.5.1 指定字符当前输出位置 307
14.5.2 图形模式下文本信息的输出 308
14.6 小结 310
习题 311
第15章 综合应用 312
15.1 模拟时钟 312
15.1.1 程序功能 312
15.1.2 程序设计思想 312
15.1.3 程序源代码 313
15.1.4 程序输出结果 316
15.2 24点扑克牌游戏 317
15.2.1 程序功能 317
15.2.2 程序设计思想 317
15.2.3 程序源代码 317
15.2.4 程序输出结果 325
15.3 简单的物流管理系统 326
15.3.1 程序功能 326
15.3.2 程序设计思想 326
15.3.3 程序源代码 326
15.3.4 程序输出结果 333
15.4 小结 333
习题 333
附录A C语言运算符优先级和结合性 334
附录B ASCII代码与字符对照表 336
参考文献 338