1 C语言概述 1
1.1 C语言的发展与特点 2
C语言的发展 2
C语言的特点 3
1.2简单的C语言程序 4
1.3 C程序的上机步骤 7
1.4算法 10
算法的概念 10
简单算法举例 11
算法的表示方法 11
习题一 18
2 数据类型、运算符与表达式 20
2.1 C语言的数据类型 21
数值型数据的表示及存储 21
字符型数据的表示及存储 22
无符号数据类型 23
2.2 C语言的标识符、常量与变量 24
标识符 24
常量 25
变量 27
2.3 C语言的运算符与表达式 28
算术运算符与算术表达式 28
自增与自减运算符 29
赋值运算符与赋值表达式 30
逗号运算符与逗号表达式 31
关系运算符与关系表达式 31
逻辑运算符与逻辑表达式 32
位运算符和位运算 33
运算符的优先级及结合性 34
2.4不同类型数据间的转换 35
算术表达式中类型转换规则 35
赋值运算表达式中类型转换规则 36
强制类型转换规则 37
习题二 39
3 C语言的基本语句和顺序结构程序设计 45
3.1 C语句概述 46
3.2赋值语句 48
3.3数据的输入输出 48
输出数据的函数 49
输入数据的函数 54
3.4顺序结构程序设计举例 59
习题三 60
4 选择结构程序设计 67
4.1 if语句 68
if语句的三种形式 68
if语句的嵌套 71
条件表达式 73
4.2 switch语句 74
switch语句 74
if语句与switch语句的比较 77
4.3程序举例 78
习题四 82
5 循环结构程序设计 85
5.1 goto语句 86
5.2 while语句 87
5.3 do-while语句 88
5.4 for语句 89
for语句的基本形式 89
含有逗号表达式的for语句 91
for语句的省略 92
几种循环的比较 93
5.5 break语句和continue语句 93
break语句 93
continue语句 94
5.6循环的嵌套 95
5.7程序举例 97
习题五 101
6 数组 107
6.1一维数组 108
一维数组的定义 108
一维数组元素的引用 108
一维数组的初始化 109
一维数组的存储形式 110
一维数组程序举例 111
6.2二维数组 117
二维数组的定义 117
二维数组的初始化 118
二维数组的引用 120
二维数组程序举例 120
6.3字符数组 125
字符数组的定义 125
字符数组的初始化 125
字符数组的引用 126
字符串和字符串结束标志 127
字符数组的输入输出 128
字符串处理函数 130
字符数组程序举例 133
习题六 135
7 函数 139
7.1函数的概念 140
7.2函数定义 141
7.3函数调用 142
函数调用的一般形式 142
函数调用的方式 144
函数的返回值 144
对被调用函数的说明 146
7.4函数的参数及其传递方式 148
非数组作为函数参数 148
数组作为函数参数 150
7.5嵌套调用 153
7.6递归调用 154
7.7变量的存储类别及作用域规则 157
局部变量和全局变量 158
动态存储变量和静态存储变量 161
多个源程序文件的编译和连接 167
外部函数和内部(静态)函数 169
存储类别小结 171
7.8变量的初始化和分程序结构 172
变量的初始化 172
分程序结构 172
7.9编译预处理 173
文件包含 173
宏定义 174
条件编译 178
习题七 180
8 指针 186
8.1指针的基本概念 187
8.2指针变量的定义、赋值和引用 188
指针变量的定义 188
指针变量的赋值 188
指针变量的引用 189
指针变量作为函数参数 190
8.3指针和数组 192
数组的指针和指向数组元素的指针变量 192
指针变量的运算(地址运算) 193
通过指针变量引用数组元素 194
指向多维数组的指针和指针变量 197
指向字符的指针变量 203
8.4指针数组和多级指针 206
指针数组 206
多级指针(指向指针的指针) 208
指针数组与多维数组的区别 209
指针数组作为main函数的形参 209
8.5函数的指针和指向函数的指针变量 212
函数指针变量的定义 212
用函数指针变量调用函数 212
指向函数的指针变量作为函数的参数 213
8.6程序举例 215
习题八 221
9 结构体和共用体 227
9.1结构体的基本概念 228
结构体类型和结构体变量的定义 228
结构体变量的初始化 231
结构体类型变量的引用 232
9.2结构体数组和指向结构体数组的指针 235
结构体数组 235
指向结构体数组的指针 238
9.3结构体和函数 241
将结构体元素传递给函数 241
将整个结构体变量传递给函数 242
将结构体变量的指针传递给函数 243
将结构体数组传递给函数 244
返回值为结构体变量的函数 245
9.4引用自身的结构体 246
链表概述 247
建立链表 249
链表的输出 251
链表的插入操作 252
链表的删除操作 254
9.5共用体 256
共用体类型变量的定义 256
共用体成员的引用 257
9.6枚举类型 262
枚举类型及枚举型变量的定义 262
枚举类型数据与枚举型变量的说明 263
9.7用typedef定义类型 265
9.8位段 267
9.9程序举例 269
习题九 273
10 文件 276
10.1 C文件概述 277
10.2文件类型指针 278
10.3文件的打开与关闭 278
文件的打开(fopen函数) 278
文件的关闭(fclose函数) 281
10.4文件的读写 281
fputc函数和fgetc函数 281
fread函数和fwrite函数 284
fprintf函数和fscanf函数 287
其他读写函数 289
10.5文件的定位 290
rewind函数 290
fseek函数 291
ftell函数 291
10.6出错检测 292
ferror函数 292
clearerr函数 292
10.7文件输入输出小结 292
文件的打开与关闭 293
文件的读写 293
文件的状态 293
文件定位 294
习题十 294
附录Ⅰ Turbo C集成开发环境简介 296
附录Ⅱ 常用字符与ASCII代码对照表 305
附录Ⅲ C语言中的关键字 306
附录Ⅳ 运算符和结合性 307
附录Ⅴ C语言库函数 308
附录Ⅵ 参考答案 314
参考文献 317