第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.2 C语言程序的结构和语法规则 2
1.2.1 C语言程序的基本结构 2
1.2.2 C语言函数的一般结构 4
1.2.3 C语言函数的语法规则 5
1.3 C语言的编译环境 6
1.4 本章小结 11
习题 11
实验题 12
第2章 数据类型、运算符与表达式 14
2.1 C语言的数据类型 14
2.2 标识符、常量和变量 14
2.2.1 标识符 14
2.2.2 常量 16
2.2.3 变量 16
2.3 整型数据 17
2.3.1 整型常量 17
2.3.2 整型变量 17
2.4 实型数据 18
2.4.1 实型常量 18
2.4.2 实型变量 19
2.5 字符型数据 19
2.5.1 字符常量 19
2.5.2 字符变量 20
2.5.3 字符串常量 22
2.6 算术运算与算术表达式 22
2.6.1 算术运算 23
2.6.2 算术表达式 23
2.7 赋值运算与赋值表达式 24
2.8 自增、自减和逗号运算 25
2.8.1 自增(++)、自减(--)运算 25
2.8.2 逗号运算符及其表达式 26
2.9 本章小结 27
习题 29
实验题 31
第3章 顺序结构程序设计 33
3.1 程序设计概述 33
3.1.1 算法的概念 33
3.1.2 算法的特征 33
3.1.3 算法的描述 34
3.1.4 结构化程序设计方法 35
3.2 C语言语句 36
3.3 格式化输出函数printf() 37
3.3.1 printf()函数的一般格式 38
3.3.2 格式指示符 39
3.3.3 使用说明 41
3.4 格式化输入函数scanf() 41
3.4.1 scanf()函数的一般格式 41
3.4.2 格式指示符 41
3.4.3 使用说明 42
3.5 单个字符的输入/输出函数 43
3.6 顺序程序设计举例 45
3.7 本章小结 47
习题 48
实验题 51
第4章 选择结构程序设计 53
4.1 关系运算及其表达式 53
4.1.1 关系运算符及其优先次序 53
4.1.2 关系表达式 54
4.2 逻辑运算及其表达式 54
4.2.1 逻辑运算符及其优先次序 54
4.2.2 逻辑表达式 55
4.3 if语句和条件运算符 56
4.3.1 if语句 56
4.3.2 条件运算符 62
4.4 switch语句 63
4.5 选择结构程序设计举例 67
4.6 本章小结 70
习题 71
实验题 74
第5章 循环结构程序设计 77
5.1 循环语句概述 77
5.2 while语句和for语句 77
5.2.1 while语句 77
52.2 for语句 78
5.3 do-while语句 80
5.4 循环结构的嵌套 81
5.5 break语句和continue语句 83
5.6 goto语句 84
5.7 循环结构程序设计应用 85
5.7.1 应用举例 85
5.7.2 穷举与迭代算法 86
5.8 本章小结 90
习题 91
实验题 95
第6章 数组 98
6.1 数组的概念 98
6.2 一维数组 98
6.2.1 一维数组的定义 98
6.2.2 一维数组元素的引用 100
6.2.3 一维数组的初始化 101
6.2.4 一维数组应用举例 101
6.3 二维数组 104
6.3.1 二维数组的定义 104
6.3.2 二维数组元素的引用 105
6.3.3 二维数组的初始化 106
6.3.4 二维数组应用举例 106
6.4 字符数组与字符串 109
6.4.1 字符数组的定义和基本操作 109
6.4.2 字符数组的整体操作 111
6.4.3 常用的字符串处理函数 112
6.4.4 字符数组应用举例 114
6.5 本章小结 116
习题 117
实验题 120
第7章 函数 122
7.1 函数的定义与调用 122
7.1.1 函数的定义 122
7.1.2 函数的返回值与函数类型 125
7.1.3 对被调用函数的声明和函数原型 127
7.1.4 函数的调用 129
7.1.5 函数的参数传递 130
7.2 函数的嵌套调用和递归调用 132
7.2.1 函数的嵌套调用 132
7.2.2 函数的递归调用 134
7.3 数组作为函数参数 137
7.3.1 数组元素作为函数实参 137
7.3.2 数组名作为函数的形参和实参 138
7.4 内部变量与外部变量 141
7.4.1 内部变量 141
7.4.2 外部变量 142
7.5 内部函数和外部函数 145
7.5.1 内部函数 145
7.5.2 外部函数 145
7.5.3 多个源程序文件的编译和连接 148
7.6 变量的动态存储与静态存储简介 149
7.6.1 动态存储与静态存储的概念 149
7.6.2 内部变量的存储方式 149
7.6.3 外部变量的存储方式 152
7.7 本章小结 153
习题 155
实验题 160
第8章 编译预处理 163
8.1 宏定义 163
8.1.1 无参宏定义 163
8.1.2 带参宏定义 167
8.2 文件包含 172
8.3 条件编译 173
8.3.1 #ifdef、#else和#endif条件编译指令组合 173
8.3.2 #ifndef、#else和#endif条件编译指令组合 174
8.3.3 #if、#else和#endif条件编译指令组合 174
8.4 本章小结 175
习题 176
实验题 177
第9章 指针 179
9.1 指针和指针变量的概念 179
9.1.1 指针的基本概念 179
9.1.2 指针变量的基本概念 179
9.2 指针变量的定义与应用 180
9.2.1 指针变量的定义与相关运算 180
9.2.2 指针变量作为函数参数 185
9.3 指向数组的指针变量 187
9.3.1 概述 187
9.3.2 通过指针引用数组元素 188
9.3.3 指向数组的指针变量作为函数参数 190
9.3.4 二维数组的指针及其指针变量 193
9.4 字符串的指针和指向字符串的指针变量 196
9.4.1 字符串的表示和引用 196
9.4.2 字符串指针作函数参数 200
9.5 返回指针的函数 201
9.6 指针数组与主函数main()的形参 203
9.6.1 指针数组 203
9.6.2 指针数组作为函数参数的使用 204
9.6.3 主函数main()的形参 205
9.6.4 指向指针的指针变量 207
9.7 函数的指针和指向函数的指针变量 209
9.8 本章小结 211
习题 212
实验题 216
第10章 结构体、共用体和枚举类型 218
10.1 结构体类型与结构体变量的定义 218
10.1.1 结构体类型的定义 218
10.1.2 结构体变量的定义 219
10.2 结构体变量的引用与初始化 220
10.2.1 结构体变量的引用 220
10.2.2 结构体变量的初始化 221
10.3 结构体数组 221
10.3.1 结构体数组的定义 221
10.3.2 结构体数组的初始化 222
10.4 指向结构体类型数据的指针 223
10.4.1 指向结构体变量的指针 223
10.4.2 指向结构体数组的指针 224
10.4.3 指向结构体数据的指针作函数参数 224
10.5 单链表 225
10.5.1 链表概述 225
10.5.2 建立单链表 227
10.5.3 在单链表中插入结点 228
10.6 共用体类型和枚举类型 228
10.6.1 共用体类型 228
10.6.2 枚举类型 230
10.7 定义已有类型的别名 231
10.8 本章小结 231
习题 232
实验题 239
第11章 位运算 242
11.1 数值在计算机中的表示 242
11.1.1 二进制数的简单运算 242
11.1.2 数值在计算机中的表示 242
11.2 位运算 243
11.2.1 位运算符 243
11.2.2 位运算符的功能实现 244
11.3 位段简介 247
11.3.1 位段的定义和位段变量的说明 247
11.3.2 位段的使用 248
11.4 本章小结 249
习题 249
实验题 250
第12章 文件 251
12.1 文件概述 251
12.2 文件的打开与关闭 252
12.21 文件的打开(fopen()函数) 253
12.2.2 文件的关闭(fclose()函数) 254
12.3 文件的读/写操作 254
12.3.1 读/写文件中的一个字符——fgetc()函数和fputc()函数 254
12.3.2 读/写一个字符串——fgets()函数和fputs()函数 257
12.3.3 读/写一个数据块——fread()函数和fwrite()函数 259
12.3.4 对文件进行格式化读/写——fscanf()函数和fprintf()函数 259
12.3.5 读/写函数的选用原则 260
12.4 位置指针与文件定位 260
12.4.1 位置指针复位函数rewind() 260
12.4.2 随机读/写与fseek()函数 260
12.4.3 返回文件当前位置的函数ftell() 261
12.5 本章小结 261
习题 262
实验题 263
第13章 C语言综合应用 265
13.1 C语言的菜单、图形与窗口设计功能 265
13.1.1 文本窗口 265
13.1.2 图形操作 273
13.2 C语言程序设计综合应用 287
13.2.1 利用C语言调用汇编语言 287
13.2.2 C语言综合应用实例 288
13.3 本章小结 298
习题 298
实验题 298
附录 300
附录A 标准ASCII码字符编码表 300
附录B 运算符的优先级和结合方向 301
附录C 标准库函数 302
附录D Turbo C V2.0常见错误 307
参考文献 314