第1章 C语言概述 1
1.1C语言的历史与特点 1
1.1.1C语言的历史 1
1.1.2C语言的特点 2
1.2C语言的字符集 2
1.3C语言的基本词法 2
1.3.1标识符 3
1.3.2关键字 3
1.3.3运算符 3
1.3.4分隔符 3
1.3.5常量 4
1.3.6注释符 4
1.4C语言的基本语句 4
1.5C语言程序的基本结构 4
1.5.1简单的C语言程序实例 4
1.5.2C语言源程序的结构特点和书写风格 5
1.6C语言程序开发步骤 6
1.7C语言程序的开发环境 7
1.7.1Turbo C 2.0的安装与启动 8
1.7.2在Turbo C环境下开发C语言程序的过程 9
本章小结 10
习题 10
第2章 C语言程序设计的初步知识 12
2.1数据类型概述 12
2.2常量 13
2.2.1整型常量 13
2.2.2实型常量 14
2.2.3字符常量 15
2.2.4转义字符常量 15
2.2.5字符串常量 16
2.2.6符号常量 16
2.3变量 17
2.3.1变量的数据类型及其定义 18
2.3.2变量的存储类型及其定义 18
2.3.3变量的初始化 19
2.4变量赋值及数据类型转换 19
2.4.1自动转换 20
2.4.2强制转换 20
2.5运算符与表达式 21
2.5.1C语言的运算符简介 21
2.5.2算术运算符与算术表达式 23
2.5.3赋值运算符与赋值表达式 24
2.5.4逗号运算符和逗号表达式 25
2.5.5长度运算符 26
本章小结 27
习题 27
第3章 顺序结构程序设计 30
3.1结构化程序设计 30
3.1.1结构化程序的3种基本结构 30
3.1.2结构化程序设计的基本思想 31
3.2语句概述 32
3.3数据的输入和输出 34
3.3.1字符的输入输出 34
3.3.2格式的输入输出 35
3.4顺序结构程序设计举例 42
本章小结 43
习题 43
第4章 选择结构程序设计 45
4.1关系运算和逻辑运算 45
4.1.1C语言的逻辑值 45
4.1.2关系运算符与关系表达式 45
4.1.3逻辑运算符与逻辑表达式 46
4.2if语句 48
4.2.1单分支if语句 49
4.2.2双分支if语句 50
4.2.3多分支if语句(if语句的嵌套) 51
4.2.4条件运算符 53
4.3switch语句 54
4.4选择结构程序举例 58
本章小结 59
习题 60
第5章 循环结构程序设计 62
5.1while语句 62
5.1.1while语句的一般形式 62
5.1.2while语句的执行 63
5.1.3程序举例 63
5.2do-while语句 64
5.2.1do-while语句的一般形式 64
5.2.2do-while语句的执行 64
5.2.3程序举例 64
5.3for语句 66
5.3.1for语句的一般形式 66
5.3.2for语句中各表达式的含义 66
5.3.3for语句与while语句的比较 68
5.4break、continue和goto语句 69
5.4.1break语句 69
5.4.2continue语句 70
5.4.3goto语句 71
5.5循环的嵌套 72
5.6几种循环的比较 72
5.7程序举例 72
本章小结 76
习题 76
第6章 数组 78
6.1一维数组 79
6.1.1一维数组的定义 79
6.1.2一维数组元素的引用 80
6.1.3一维数组的存储结构 81
6.1.4一维数组的初始化 81
6.1.5一维数组应用举例 83
6.2二维数组 86
6.2.1二维数组的定义 86
6.2.2二维数组元素的引用 86
6.2.3二维数组的存储结构 87
6.2.4二维数组的初始化 88
6.2.5二维数组应用举例 89
6.3字符数组与字符串 90
6.3.1字符数组的定义与初始化 90
6.3.2字符数组的引用 92
6.3.3字符串和字符串结束标志 92
6.3.4字符串的输入与输出 93
6.3.5字符串常用函数 95
6.3.6字符数组应用举例 99
本章小结 100
习题 100
第7章 函数 104
7.1函数概述 104
7.1.1C语言程序的模块化设计 104
7.1.2函数的概念与分类 105
7.2函数的定义与调用 106
7.2.1函数的定义 106
7.2.2函数的参数与返回值 108
7.2.3函数的调用 110
7.3函数调用中的数据传递方式 113
7.3.1值传递方式 113
7.3.2地址传递方式 114
7.3.3值传递方式和地址传递方式的差异 116
7.3.4返回值方式 116
7.3.5全局外部变量的传递方式 116
7.4函数的嵌套调用 118
7.5函数的递归调用 120
7.6数组作函数的参数 125
7.6.1数组元素作函数实参 125
7.6.2数组名作函数参数 125
7.7变量的作用域与存储类型 130
7.7.1变量的作用域与生存期 130
7.7.2变量的存储类型 130
7.8内部函数和外部函数 134
7.8.1内部函数 134
7.8.2外部函数 134
7.9多文件程序的运行 135
本章小结 136
习题 137
第8章 编译预处理 141
8.1宏定义 141
8.1.1无参宏的定义和引用 142
8.1.2带参宏的定义和引用 144
8.1.3带参宏与函数的区别 146
8.2文件包含 146
8.3条件编译 148
8.3.1条件编译命令的第一种格式 149
8.3.2条件编译命令的第二种格式 150
8.3.3条件编译命令的第三种格式 150
本章小结 151
习题 152
第9章 指针 156
9.1指针与指针变量 156
9.1.1指针 156
9.1.2指针变量 158
9.2指针变量的定义、初始化和引用 158
9.2.1指针变量的定义和初始化 158
9.2.2指针变量的引用和运算 159
9.3指针变量的使用 163
9.3.1指向变量的指针变量的使用 163
9.3.2指向一维数组的指针变量的使用 164
9.3.3指向字符串的指针变量的使用 167
9.3.4指向二维数组的指针变量的使用 169
9.3.5指针型函数的定义和调用 173
9.4指针数组和指向指针的指针 177
9.4.1指针数组的定义 177
9.4.2指针数组元素的引用 178
9.4.3指向指针的指针(多级指针) 180
9.4.4指针数组作main()函数的形参 181
本章小结 183
习题 183
第10章 结构体、共用体与枚举类型 189
10.1结构体类型的定义 189
10.2结构体类型变量 190
10.2.1结构体类型变量的定义 190
10.2.2结构体变量的使用 192
10.2.3结构体变量的初始化 192
10.2.4结构体变量的输入和输出 193
10.3结构体类型数组 193
10.3.1结构体类型数组的定义 193
10.3.2结构体类型数组的初始化 194
10.3.3结构体数组的使用 194
10.4结构体类型指针 195
10.4.1指向结构体变量的指针 196
10.4.2指向结构体数组的指针 197
10.5结构体与函数 198
10.5.1结构体变量作为函数参数 198
10.5.2指向结构体变量的指针作为函数参数 199
10.5.3函数的返回值为结构体类型 200
10.6共用体 200
10.6.1共用体类型的说明与变量定义 201
10.6.2共用体变量的引用 202
10.7枚举类型 204
10.7.1枚举类型的定义和枚举变量的说明 205
10.7.2枚举类型变量的赋值和使用 205
10.8类型定义符typedef 207
本章小结 207
习题 208
第11章 位运算 210
11.1位逻辑运算 210
11.1.1按位与运算 211
11.1.2按位或运算 212
11.1.3按位异或运算 212
11.1.4按位取反运算符 213
11.2移位运算 214
11.3位复合赋值运算 215
11.4不同长度的数据进行位运算 216
11.5位段结构 216
11.5.1位域的定义和位域变量的说明 216
11.5.2位域的使用 217
本章小结 218
习题 218
第12章 文件 221
12.1文件概述 221
12.2文件型指针 222
12.3文件的打开与关闭 223
12.3.1文件的打开 223
12.3.2文件的关闭 225
12.4文件的读写 226
12.4.1fgetc(getc)和fputc(putc)函数 226
12.4.2fgets()和fputs()函数 228
12.4.3fread()和fwrite()函数 229
12.4.4fscanf()和fprintf()函数 232
12.5文件的定位函数 234
12.5.1fseek()函数 234
12.5.2ftell()函数 236
12.5.3rewind()函数 236
12.6文件的状态函数 237
12.6.1feof()函数 237
12.6.2ferror()函数 237
12.6.3clearerr()函数 237
12.6.4exit()函数 238
12.7综合举例 238
本章小结 240
习题 240
模拟试卷 242
《C语言程序设计》模拟试卷(一) 242
《C语言程序设计》模拟试卷(二) 246
附录 249
附录A常用字符与ASCII码对照表 249
附录BC语言中关键字的用途及说明 250
附录C运算符的优先级和结合性 251
附录DTurbo C库函数 253
参考文献 258