第1章 程序设计概述 1
1.1 程序与程序设计语言 1
1.1.1 程序的概念 1
1.1.2 程序设计语言 2
1.1.3 C语言的基本结构及特点 2
1.1.4 C语言的支持环境 4
1.2 C语言的开发环境 4
1.2.1 运行一个C语言程序的一般过程 5
1.2.2 Turbo C 2.0的启动、退出与命令菜单 5
1.2.3 编辑并保存一个C语言源程序 6
1.2.4 编译、连接——单个源程序文件 7
1.2.5 运行与查看结果 7
1.2.6 编辑下一个新的源程序 7
1.3 算法设计与描述 8
1.3.1 算法设计 8
1.3.2 算法描述方法 9
1.4 上机实训设计(一) 12
习题1 13
第2章 数据类型、运算符与表达式 14
2.1 C语言的数据类型 14
2.2 基本类型数据的机内表示 16
2.2.1 整型数据的机内表示 16
2.2.2 实型数据的机内表示 17
2.2.3 字符型数据的机内表示 18
2.3 常量与变量 19
2.4 常量及符号常量的定义 20
2.5 变量及变量的定义 20
2.6 整型数据 21
2.6.1 整型常量的类型和表示方法 21
2.6.2 整型变量 22
2.7 实型数据 24
2.7.1 实型常量类型及表示方法 24
2.7.2 实型变量 25
2.8 字符型数据 25
2.8.1 字符常量及字符串常量 25
2.8.2 字符变量 26
2.8.3 字符型数据的存储及使用 26
2.9 C语言的运算符及表达式 28
2.9.1 C语言的运算符简介 28
2.9.2 算术运算符及算术表达式 29
2.9.3 关系运算符及关系表达式 32
2.9.4 逻辑运算符及逻辑表达式 33
2.9.5 赋值运算符及赋值表达式 34
2.9.6 特殊运算符及表达式 36
2.10 上机实训设计(二) 39
习题2 40
第3章 数据输入输出程序设计 43
3.1 数据的输出 43
3.1.1 printf()函数 43
3.1.2 putchar()函数 48
3.1.3 puts()函数 49
3.2 数据的输入 51
3.2.1 scanf()函数 51
3.2.2 数据输入操作指导 53
3.2.3 getchar()函数 54
3.2.4 gets()函数 56
3.3 输入、输出函数的常见错误 56
3.4 简单的菜单设计 58
3.5 上机实训设计(三) 59
习题3 62
第4章 流程设计及典型应用 65
4.1 顺序结构流程设计 65
4.2 选择型流程设计 67
4.2.1 if语句流程设计 67
4.2.2 if语句多重选择设计 70
4.2.3 switch语句流程设计 73
4.3 循环型流程设计 76
4.3.1 for循环语句流程设计 77
4.3.2 for循环语句进一步讨论 79
4.3.3 while循环语句流程设计 82
4.3.4 do…while直到型循环语句流程设计 83
4.3.5 多重循环的用法 85
4.3.6 break语句和continue语句的用法 88
4.4 循环型设计的典型应用 88
4.4.1 穷举类型算法设计 88
4.4.2 递推类型算法设计 90
4.5 上机实训设计(四) 92
习题4 100
第5章 数组类型及应用 108
5.1 一维数组及应用 108
5.1.1 一维数组的定义 108
5.1.2 一维数组的引用 109
5.1.3 一维数组的应用 110
5.2 二维数组及应用 114
5.2.1 二维数组的定义 114
5.2.2 二维数组的引用 115
5.2.3 二维数组的应用 117
5.3 字符串与字符数组 120
5.3.1 字符串与字符数组的定义 120
5.3.2 字符串与字符数组的应用 121
5.3.3 字符串函数及应用 124
5.4 上机实训设计(五) 127
5.4.1 实训1 127
5.4.3 实训2 129
习题5 134
第6章 函数 141
6.1 函数的定义与调用 141
6.1.1 函数定义 143
6.1.2 函数调用与参数传递 144
6.1.3 函数定义与调用常见错误 146
6.2 函数的嵌套调用和递归调用 147
6.2.1 函数的嵌套调用 147
6.2.2 函数的递归调用 148
6.3 数组作为函数参数 150
6.3.1 数组元素作为函数参数 150
6.3.2 数组名作为函数的形参和实参 151
6.4 内部变量与外部变量 154
6.4.1 内部变量 154
6.4.2 外部变量 155
6.5 内部函数与外部函数 158
6.5.1 内部函数(又称静态函数) 159
6.5.2 外部函数 159
6.5.3 多个源程序文件的编译和连接 160
6.6 变量的动态存储与静态存储简介 161
6.6.1 内部变量的存储方式 161
6.6.2 外部变量的存储方式 162
6.7 编译预处理 163
6.7.1 宏定义与符号常量 163
6.7.2 文件包含 165
6.7.3 条件编译 166
6.8 上机实训设计(六) 167
习题6 176
第7章 指针 184
7.1 指针的概念 184
7.2 变量的指针和指向变量的指针变量 185
7.2.1 指针变量的定义 185
7.2.2 指针变量的引用 186
7.2.3 指针变量与函数参数 188
7.3 指针和数组 192
7.3.1 指针与一维数组 193
7.3.2 指针与多维数组 196
7.3.3 数组名和指针变量作为函数的参数 200
7.4 字符串和指针 204
7.4.1 字符串的表示形式 204
7.4.2 字符串作为函数参数 208
7.4.3 字符指针变量和字符数组 210
7.5 函数的指针和指向函数的指针变量 212
7.5.1 函数的指针变量及用函数指针变量调用函数 212
7.5.2 用指向函数的指针变量作函数的参数 214
7.6 函数的返回值为指针 218
7.6.1 指针函数的定义 218
7.6.2 指针函数的应用 218
7.7 指针数组和指向指针的指针 219
7.7.1 指针数组的概念 219
7.7.2 指向指针的指针 221
7.7.3 指针数组做main函数的形参(命令行参数) 224
7.7.4 指向void量的指针变量 225
7.8 小结 226
7.8.1 指针类型小结 226
7.8.2 指针运算小结 226
7.8.3 void指针类型小结 228
7.9 上机实训设计(七) 229
习题7 235
第8章 结构体与共用体 243
8.1 概述 243
8.2 结构体类型与结构体变量 243
8.2.1 一个使用结构体的例子 243
8.2.2 结构体类型的定义 244
8.2.3 结构体变量的定义 246
8.3 结构体变量的引用 250
8.4 结构体变量的初始化 252
8.5 结构体数组 253
8.5.1 结构体数组的定义 253
8.5.2 结构体数组的初始化 254
8.5.3 结构体数组的应用 255
8.6 结构体指针 257
8.6.1 结构体类型指针 257
8.6.2 结构体数组指针 260
8.7 结构体与函数参数 262
8.7.1 结构体成员作为函数参数 262
8.7.2 结构体作为函数参数 263
8.7.3 结构体指针作为函数参数 265
8.7.4 带const关键字的结构体指针作为函数参数 267
8.8 用结构体指针处理链表 268
8.8.1 链表概述 268
8.8.2 动态内存分配和链表 273
8.8.3 建立链表 274
8.8.4 输出链表 275
8.8.5 删除一个结点 275
8.8.6 插入操作 276
8.9 共用体 277
8.9.1 共用体的概念 277
8.9.2 共用体类型和共用体类型变量的定义 278
8.9.3 共用体变量的引用 279
8.9.4 共用体类型数据的特点 281
8.10 枚举类型 283
8.11 用typedef为类型定义别名 285
8.11.1 概念 285
8.11.2 典型用法 285
8.11.3 典型类型的别名定义形式 286
8.11.4 typedef与#define的区别 286
8.12 上机实训设计(八) 287
习题8 290
第9章 位运算 293
9.1 位运算符和位运算 293
9.1.1 数值在计算机中的表示 293
9.1.2 位运算符及其使用方法 294
9.2 位段 298
9.2.1 位段的定义 298
9.2.2 位段的引用 299
9.2.3 位段的说明 299
9.3 位操作应用及设计技巧 300
9.4 上机实训设计(九) 301
习题9 303
第10章 文件 304
10.1 指针的概念 304
10.2 缓冲文件类型指针 305
10.3 缓冲型文件的打开与关闭 306
10.3.1 缓冲型文件的打开fopen函数 306
10.3.2 缓冲型文件的关闭fclose函数 308
10.4 缓冲型文件的使用 308
10.4.1 fputc函数和fgetc函数(putc函数和getc函数) 308
10.4.2 fread函数和fwrite函数 312
10.4.3 fprintf函数和fscanf函数 315
10.4.4 文件其他读写函数 316
10.5 文件的定位 317
10.5.1 rewind函数 317
10.5.2 fseek函数和随机读写 318
10.5.3 ftell函数 319
10.5.4 出错的检测 319
10.6 非缓冲文件系统 320
10.6.1 open函数 320
10.6.2 close函数 321
10.6.3 creat函数 321
10.6.4 read函数 322
10.6.5 write函数 323
10.6.6 lessk函数和随机读写 324
10.7 上机实训设计(十) 325
习题10 328
附录A C语言的关键字及其用途 331
附录B 常用字符与ASCII代码对照表 332
附录C 运算符的优先级和结合性 333
附录D C语言库函数 335
参考文献 341