第1章 绪言 1
1.1 C语言的特点 1
1.2 C语言程序的开发过程 2
1.3 简单的C语言程序 2
习题 4
第2章 数据类型、运算符及其表达式 6
2.1 常量和变量 6
2.2 基本数据类型及其常量 7
2.2.1 整型变量及其常量 7
2.2.2 浮点型变量及其常量 7
2.2.3 字符型变量及其常量 8
2.2.4 长整型、短整型和无符号整型 9
2.2.5 sizeof运算符 10
2.3 算术运算符、赋值运算符及其表达式 10
2.3.1 算术运算符和算术表达式 10
2.3.2 赋值运算符和赋值表达式 12
2.4 关系运算符、逻辑运算符及其表达式 12
2.4.1 关系运算符和关系表达式 12
2.4.1 逻辑运算符和逻辑表达式 13
2.5 逗号运算符、条件运算符及其表达式 14
2.5.1 逗号运算符和逗号表达式 14
2.5.2 条件运算符和条件表达式 15
2.6 变量的初始化 15
2.7 不同类型数据之间的转换 16
2.7.1 自动类型转换 16
2.7.2 强制类型转换 17
2.8 类型定义 17
2.9 应用举例 17
习题 18
第3章 基本语句 20
3.1 语句和复合语句 20
3.2 数据的输入 20
3.2.1 字符输入函数getchar 21
3.2.2 格式输入函数scanf 21
3.3 数据的输出 22
3.3.1 字符输出函数putchar 22
3.3.2 格式输出函数printf 23
3.4 其他基本语句 24
3.5 应用举例 25
习题 25
第4章 选择结构程序设计 27
4.1 if条件选择语句 28
4.2 switch多分支选择语句 30
4.3 应用举例 33
习题 36
第5章 循环结构程序设计 38
5.1 while循环语句 38
5.2 do-while循环语句 40
5.3 for循环语句 41
5.4 break语句和continue语句 43
5.4.1 break语句 43
5.4.2 continue语句 44
5.5 空操作语句和goto语句 45
5.5.1 空操作语句 45
5.5.2 goto语句 45
5.6 应用举例 46
习题 48
第6章 数组 50
6.1 一维数组 50
6.1.1 一维数组的定义和引用 50
6.1.2 一维数组元素的初始化 51
6.2 二维数组 53
6.2.1 二维数组的定义和引用 53
6.2.2 二维数组元素的初始化 54
6.3 字符数组和字符串 56
6.3.1 字符数组 56
6.3.2 字符串 58
6.4 应用举例 63
习题 65
第7章 函数和变量 67
7.1 函数的概念 67
7.2 函数的定义和调用 68
7.2.1 函数的定义 68
7.2.2 函数的调用 69
7.3 函数的返回值及其类型 70
7.4 函数的参数及其传递方式 73
7.4.1 非数组作为函数参数 73
7.4.2 数组作为函数参数 74
7.5 函数的嵌套调用和递归调用 76
7.5.1 函数的嵌套调用 76
7.5.2 函数的递归调用 78
7.6 变量的作用域及其存储类型 80
7.6.1 局部变量及其存储类型 80
7.6.1 全局变量及其存储类型 83
7.7 内部函数和外部函数 85
7.7.1 内部函数 85
7.7.2 外部函数 85
7.8 应用举例 86
习题 88
第8章 结构和联合 91
8.1 结构类型变量的定义 91
8.2 结构类型变量的引用 93
8.3 结构的初始化 94
8.4 结构和函数 95
8.5 结构和数组 96
8.6 结构的嵌套 98
8.7 联合 100
8.8 枚举 102
8.9 应用举例 104
习题 106
第9章 指针 107
9.1 指针的基本概念 107
9.2 指针变量的定义和引用 107
9.2.1 指针变量的定义 107
9.2.2 指针变量的引用 108
9.3 指针和结构 110
9.3.1 指向结构的指针 111
9.3.2 结构中包含指针 112
9.3.3 链表 113
9.4 指针和数组 116
9.5 指针和函数 123
9.6 应用举例 133
习题 139
第10章 位运算 141
10.1 二进制位运算 141
10.2 位段 146
10.3 应用举例 148
习题 149
第11章 编译预处理 150
11.1 宏定义 150
11.2 文件包括 153
11.3 条件编译 154
11.4 应用举例 157
习题 158
第12章 文件 161
12.1 文件概述 161
12.2 文件类型指针和文件号 162
12.3 缓冲文件系统 162
12.3.1 文件打开函数fopen 162
13.3.2 文件关闭函数fclose 163
12.3.3 文件读函数fgetc, fread, fscanf 164
12.3.4 文件写函数fputc, fwrite, fprintf 165
12.3.5 文件定位函数rewind, fseek, ftell 166
12.3.6 应用举例 167
12.4 非缓冲文件系统 170
12.4.1 文件打开函数open和文件创建函数creat 170
12.4.2 文件关闭函数close 171
12.4.3 文件读函数read 171
12.4.4 文件写函数write 171
12.4.5 文件定位函数lseek, tell 171
12.4.6 应用举例 172
习题 174
附录A 标准ASCII字符集 176
附录B 运算符的优先级及其结合性 180
附录C Turbo C集成开发环境简介 181
附录D C语言的巴科斯范式(BNF)描述 184
附录E 各章习题解答 189