第1章 基本概念 1
1.1 程序和程序设计 1
1.1.1 程序 1
1.1.2 程序设计 2
1.2 算法 3
1.3 简单的C语言程序 4
1.3.1 举例 4
1.3.2 编写程序时应遵循的规则 4
1.3.3 注释符的用法 5
1.4 Turbo C程序设计环境的上机步骤 5
1.4.1 C程序的调试步骤 5
1.4.2 上机步骤介绍 6
复习思考题 7
第2章 数据类型、运算符与表达式 9
2.1 C语言的字符集和词汇 9
2.1.1 C语言字符集 9
2.1.2 C语言词汇 10
2.2 常量与变量 11
2.2.1 常量 11
2.2.2 变量 12
2.3 C语言的数据类型 12
2.3.1 整型数据 13
2.3.2 实型数据 16
2.3.3 字符型数据 17
2.4 运算符与表达式 21
2.4.1 算术运算符与表达式 21
2.4.2 强制类型转换表达式 22
2.4.3 赋值运算符与表达式 23
2.4.4 自加、自减运算符与表达式 25
2.4.5 逗号运算符与表达式 26
2.4.6 运算符的优先级和结合性 27
复习思考题 28
第3章 顺序结构程序设计 31
3.1 结构化程序设计 31
3.2 赋值语句、复合语句和空语句 33
3.2.1 赋值语句 33
3.2.2 复合语句和空语句 35
3.3 数据输出 36
3.3.1 putchar函数(字符输出函数) 36
3.3.2 printf函数的调用 37
3.3.3 printf函数格式说明 37
3.3.4 调用printf函数注意事项 42
3.4 数据输入 43
3.4.1 getchar函数(字符输入函数) 43
3.4.2 scanf函数的调用 43
3.4.3 scanf函数格式说明 44
3.4.4 通过scanf函数从键盘输入数据 46
3.5 程序实例 47
复习思考题 49
第4章 选择结构程序设计 54
4.1 关系运算符与表达式 54
4.1.1 C语言中的逻辑值 54
4.1.2 关系运算符 55
4.1.3 关系表达式 55
4.2 逻辑运算符与表达式 55
4.2.1 逻辑运算符 55
4.2.2 逻辑表达式 56
4.3 if语句 57
4.3.1 if语句 57
4.3.2 条件运算符和条件表达式 62
4.4 switch语句 64
4.5 程序实例 67
复习思考题 68
第5章 循环控制 73
5.1 while语句构成的循环 73
5.1.1 while循环的语法形式 73
5.1.2 while循环的执行过程 74
5.1.3 举例 74
5.2 do-while语句构成的循环 75
5.2.1 do-while循环的语法形式 75
5.2.2 do-while循环的执行过程 75
5.2.3 举例 76
5.3 for语句构成的循环 77
5.3.1 for循环的语法形式 78
5.3.2 for循环的执行过程 78
5.3.3 举例 78
5.3.4 for循环小结 79
5.4 循环的嵌套 81
5.5 几种循环的比较 81
5.6 goto语句 81
5.6.1 语法格式 82
5.6.2 举例 82
5.7 break语句和continue语句 83
5.7.1 break语句 83
5.7.2 continue语句 83
5.8 程序实例 85
复习思考题 88
第6章 数组 93
6.1 一维数组的定义和引用 93
6.1.1 一维数组的定义 93
6.1.2 一维数组元素的引用 95
6.1.3 一维数组的初始化 96
6.1.4 一维数组程序举例 97
6.2 二维数组的定义和引用 100
6.2.1 二维数组的定义 100
6.2.2 二维数组的引用 101
6.2.3 二维数组的初始化 102
6.2.4 二维数组程序举例 103
6.3 字符数组 106
6.3.1 字符数组的定义 106
6.3.2 字符数组的初始化 107
6.3.3 字符数组引用 107
6.3.4 字符串和字符结束标志 108
6.3.5 字符数组的输入输出 110
6.3.6 字符串处理函数 111
6.4 程序实例 115
复习思考题 117
第7章 函数 121
7.1 函数概述 121
7.2 函数的定义和返回值 123
7.2.1 函数定义的语法形式 123
7.2.2 函数的返回值 126
7.2.3 形式参数和实际参数 127
7.3 函数的调用 128
7.3.1 函数调用的一般形式 128
7.3.2 函数的调用方式 129
7.3.3 函数声明和函数原型 129
7.3.4 函数的嵌套调用 131
7.3.5 函数的递归调用 132
7.4 数组作为函数参数 136
7.4.1 数组元素作函数参数 136
7.4.2 数组名称作函数参数 137
7.5 局部变量和全局变量 141
7.5.1 局部变量 141
7.5.2 全局变量 143
7.6 变量的存储类型 145
7.6.1 动态存储方式和静态存储方式 145
7.6.2 auto变量 146
7.6.3 用static声明局部变量 148
7.6.4 register变量 151
7.6.5 外部变量的声明 151
7.6.6 存储类别小结 152
7.7 内部函数和外部函数 153
7.7.1 内部函数 153
7.7.2 外部函数 154
复习思考题 154
第8章 指针 159
8.1 指针和地址的概念 159
8.2 指针变量 160
8.2.1 指针变量的定义 161
8.2.2 指针变量的引用 162
8.2.3 指针变量作函数参数 164
8.3 数组与指针 167
8.3.1 指向数组元素的指针 168
8.3.2 通过指针引用数组元素 169
8.3.3 数组名作函数参数 172
8.3.4 指向多维数组的指针和指针变量 175
8.4 字符串与指针 177
8.4.1 字符串的表示形式 177
8.4.2 字符串指针作函数参数 179
8.5 函数与指针 181
8.5.1 用函数指针变量调用函数 181
8.5.2 用指向函数的指针作函数参数 183
8.6 指针数组和指向指针的指针 185
8.6.1 指针数组 185
8.6.2 指向指针的指针 187
8.6.3 指针数组作main()函数的参数 188
复习思考题 190
第9章 结构体与共用体 192
9.1 结构体 192
9.1.1 结构体类型变量的定义 193
9.1.2 结构体类型的引用 196
9.1.3 结构体数组 197
9.1.4 结构体指针变量 199
9.2 共用体 202
9.2.1 共用体的概念 202
9.2.2 共用体变量的引用方式 203
9.2.3 共用体类型数据的特点 204
9.3 枚举类型 205
9.4 用typedef定义类型 207
复习思考题 208
第10章 编译预处理与位运算 212
10.1 编译预处理 212
10.1.1 宏替换 213
10.1.2 文件包含 217
10.1.3 条件编译 218
10.2 动态存储分配 220
10.2.1 malloc()函数 220
10.2.2 free()函数 220
10.2.3 calloc()函数 221
10.3 位运算 221
10.3.1 “按位与”运算符(&) 221
10.3.2 “按位或”运算符(|) 222
10.3.3 “异或”运算符(^) 223
10.3.4 “取反”运算符(~) 223
10.3.5 左移运算符(<<) 224
10.3.6 右移运算符(>>) 224
10.3.7 位运算赋值运算符 224
复习思考题 224
第11章 文件 228
11.1 C语言文件与文件类型指针 228
11.1.1 C语言文件的概念 228
11.1.2 文件类型指针 229
11.2 文件的打开与关闭 230
11.2.1 文件的打开(fopen函数) 230
11.2.2 文件的关闭(fclose函数) 231
11.3 文件的读写 232
11.3.1 fread()函数和fwrite()函数 232
11.3.2 fscanf()函数和fprintf()函数 233
11.4 文件的定位 235
11.4.1 rewind()函数 235
11.4.2 fseek()函数 235
11.4.3 ftell()函数 237
11.5 文件出错检测函数 237
复习思考题 238