第1章 C语言概述 1
1.1 C语言的发展简史和特点 1
1.1.1 C语言的诞生与发展 1
1.1.2 C语言的特点 1
1.2 C语言程序的结构与书写规则 2
1.2.1 C语言程序的总体结构 2
1.2.2 函数的一般结构 3
1.2.3 源程序书写格式 4
1.3 C语言的语句和关键字 5
1.3.1 C语言的语句 5
1.3.2 关键字 6
1.4 Turbo C的基本操作 6
1.4.1 运行一个C语言程序的一般过程 6
1.4.2 TurboC的启动、退出与命令菜单 7
1.4.3 编辑并保存一个C语言源程序 8
1.4.4 编译、连接——单个源程序文件 9
1.4.5 运行与查看结果 9
1.4.6 创建新的源程序 9
1.5 编程实例 10
1.5.1 实例内容 10
1.5.2 实例说明 10
1.5.3 程序分析 10
1.5.4 程序源码及设计过程 10
1.6 习题 12
第2章 数据类型、运算符与表达式 14
2.1 C语言的数据类型 14
2.2 常量和变量 14
2.2.1 常量 15
2.2.2 变量 15
2.3.2 整型常量 16
2.3 整型数据 16
2.3.1 整型变量 16
2.4 实型数据 17
2.4.1 实型变量 17
2.4.2 实型常量 17
2.5 字符型数据 18
2.5.1 字符常量 18
2.5.2 字符变量 19
2.5.3 字符串常量 20
2.6 符号常量 21
2.7 算术运算与算术表达式 21
2.8 赋值运算与赋值表达式 23
2.8.1 赋值运算 23
2.9 C语言特有的运算和运算符 24
2.9.1 自增(++)、自减(--)运算 24
2.8.3 赋值表达式 24
2.8.2 复合赋值运算 24
2.9.2 逗号运算(,)及其表达式 25
2.9.3 条件表达式 26
2.10 编程实例 26
2.10.1 实例内容 26
2.10.2 实例说明 26
2.10.3 程序分析 27
2.10.4 程序源码 27
2.11 习题 28
第3章 C程序设计初步 29
3.1 格式化输出——printf()函数 29
3.1.1 printf()函数的一般格式 29
3.1.2 格式指示符 30
3.1.3 使用说明 32
3.2.1 scanf()函数的一般格式 33
3.2 格式化输——scanf()函数 33
3.2.2 格式指示符 34
3.2.3 数据输入操作 34
3.3 单个字符输入输出——getchar()和putchar()函数 36
3.3.1 单个字符的输出——putchar()函数 36
3.3.2 单个字符的输入——getchar()函数 37
3.4 顺序结构程序设计 37
3.5 编程实例 38
3.5.1 实例内容 38
3.5.2 实例说明 38
3.5.3 程序分析 39
3.5.4 程序源码 39
3.6 习题 40
4.1.1 关系运算符及其优先次序 41
4.1.2 关系表达式 41
第4章 选择结构 41
4.1 关系运算及其表达式 41
4.2 逻辑运算及其表达式 42
4.2.1 逻辑运算及其优先次序 42
4.2.2 逻辑表达式 43
4.3 if语句和条件运算符 43
4.3.1 if语句 44
4.3.2 条件表达式 47
4.4 switch语句 48
4.5 编程实例 49
4.5.1 实例内容 49
4.5.2 实例说明 49
4.6 习题 50
4.5.4 程序源码 50
4.5.3 程序分析 50
第5章 循环结构的C程序设计 52
5.1 while语句 52
5.2 do-while语句 54
5.3 for语句 56
5.4 break,continue语句 59
5.5 循环的嵌套 61
5.6 编程实例 63
5.6.1 实例内容 63
5.6.2 实例说明 63
5.6.3 程序分析 63
5.6.4 程序源码 64
5.7 习题 65
6.1.1 一维数组的定义 67
6.1 一维数组 67
第6章 数组 67
6.1.2 一维数组元素的引用 68
6.1.3 一维数组的应用 70
6.2 二维数组 72
6.2.1 二维数组的定义 72
6.2.2 二维数组的引用 72
6.2.3 二维数组的初始化 73
6.3 字符数组 75
6.3.1 字符数组的定义 75
6.3.2 字符数组的初始化 76
6.3.3 字符数组的引用 76
6.3.4 字符串 77
6.4 编程实例 83
6.4.1 实例内容 83
6.4.2 实例说明 83
6.4.4 程序源码 84
6.4.3 程序分析 84
6.5 习题 86
第7章 函数及变量存储类型 88
7.1 概述 88
7.1.1 库函数和用户自定义函数 88
7.1.2 有返回值函数和无返回值函数 88
7.1.3 无参函数和有参函数 89
7.1.4 丰富的库函数 89
7.2 函数定义的一般形式 90
7.2.1 无参函数的定义形式 90
7.2.2 有参函数定义的一般形式 90
7.3 函数的参数和函数的值 92
7.3.1 形式参数和实际参数 92
7.3.2 函数的返回值 93
7.4.2 函数调用的方式 94
7.4 函数的调用 94
7.4.1 函数调用的一般形式 94
7.4.3 被调用函数的声明和函数原型 95
7.5 函数的嵌套调用 96
7.6 函数的递归调用 97
7.7 数组作为函数参数 101
7.7.1 数组元素作函数实参 101
7.7.2 数组名作为函数参数 101
7.8 局部变量和全局变量 106
7.8.1 局部变量 106
7.8.2 全局变量 107
7.9 变量的存储类别 109
7.9.1 动态存储方式与静态动态存储方式 109
7.9.2 auto变量 109
7.9.3 用static声明局部变量 110
7.9.4 register变量 111
7.9.5 用extern声明外部变量 112
7.10 编程实例 112
7.10.1 实例内容 112
7.10.2 实例说明 113
7.10.3 程序分析 113
7.10.4 程序源码 114
7.11 习题 117
第8章 指针 121
8.1 地址指针的基本概念 121
8.2 变量的指针和指向变量的指针变量 122
8.2.1 定义一个指针变量 122
8.2.2 指针变量的引用 123
8.2.3 指针变量作为函数参数 126
8.2.4 指针变量几个问题的进一步说明 130
8.3 数组指针和指向数组的指针变量 133
8.3.1 指向数组元素的指针 133
8.3.2 通过指针引用数组元素 134
8.3.3 数组名作函数参数 137
8.3.4 指向多维数组的指针和指针变量 145
8.4 字符串的指针和指向字符串的指针变量 148
8.4.1 字符串的表示形式 148
8.4.2 使用字符串指针变量与字符数组的区别 151
8.5 函数指针变量 152
8.6 指针型函数 154
8.7 指针数组和指向指针的指针 155
8.7.1 指针数组的概念 155
8.7.2 指向指针的指针 158
8.7.3 main函数的参数 160
8.8.2 指针运算的小结 162
8.8.1 有关指针的数据类型的小结 162
8.8 有关指针的数据类型和指针运算的小结 162
8.8.3 void指针类型 163
8.9 编程实例 164
8.9.1 实例内容 164
8.9.2 实例说明 164
8.9.3 程序分析 164
8.9.4 程序源码 165
8.10 习题 168
第9章 结构体和共用体 170
9.1 结构体类型概述 170
9.1.1 结构体的概念 170
9.1.2 结构体变量的定义 172
9.1.3 结构体变量的初始化 173
9.1.4 结构体变量的引用 174
9.1.5 结构体的输入/输出 176
9.2 结构体数组 177
9.2.1 结构体数组的定义 177
9.2.2 结构体数组的初始化 178
9.2.3 结构体数组的引用 179
9.3 结构体与函数 182
9.3.1 结构体变量作为函数参数 182
9.3.2 返回结构体类型值的函数 184
9.4 结构体与指针 186
9.4.1 指向结构体变量的指针 186
9.4.2 指向结构体数组的指针 188
9.4.3 链表 189
9.5 共用体类型 194
9.5.1 共用体的概念 194
9.5.2 共用体变量的定义 194
9.5.3 共用体变量的引用 196
9.5.4 共用体与结构体的区别及联系 197
9.6.1 位段的概念和定义方法 198
9.6 位段 198
9.6.2 位段的引用方法 200
9.7 编程实例 201
9.7.1 实例内容 201
9.7.2 实例说明 201
9.7.3 程序分析 201
9.7.4 程序源码 202
9.8 习题 203
第10章 文件 206
10.1 文件概述 206
10.1.1 文件的概念 206
10.2 文件的打开与关闭 207
10.2.1 文件的打开 207
10.1.2 文件型指针 207
10.2.2 文件的关闭 209
10.3 文件的读写 210
10.3.1 fgetc与fputc函数 210
10.3.2 fputs与fgets函数 213
10.3.3 fprintf与fscanf函数 214
10.3.4 fread与fwrite函数 215
10.4 文件的定位与出错检测 217
10.4.1 文件的定位 217
10.4.2 文件的出错检测 218
10.5 编程实例 219
10.5.1 实例内容 219
10.5.2 实例说明 219
10.5.3 程序分析 219
10.5.4 程序源码 220
10.6 习题 224