第1章 计算机和C语言 1
章节导学 1
本章讨论 1
1.1 用户、计算机和程序员 2
1.2 C语言、计算机和程序员 3
1.3 C语言自定义命令——函数 5
1.3.1 使用C语言函数 5
1.3.2 函数定义 6
1.3.3 函数调用 8
1.3.4 main函数 8
1.4 “懂”C语言的计算机 9
1.4.1 虚拟的C计算机 9
1.4.2 用VC 6.0编译程序 10
1.5 编写程序代码 14
1.5.1 C语言语法规则 14
1.5.2 printf函数的用法 15
1.5.3 用VC 6.0观察程序运行的过程 17
1.6 C语言语句简析 21
练习1 21
本章讨论提示 23
第2章 基本数据类型 24
章节导学 24
本章讨论 25
2.1 计算机中的数据 25
2.2 整型 26
2.2.1 整型的类别 26
2.2.2 整型字面量 28
2.2.3 整型数据的输入/输出 29
2.2.4 查看整数的存储状态 32
2.2.5 整型的使用 33
2.3 浮点型 34
2.3.1 浮点型的类别 34
2.3.2 浮点型字面量和浮点型数据的输入/输出 34
2.3.3 浮点型的误差 36
2.4 字符型 37
2.4.1 字符型数据的编码 37
2.4.2 字符型字面量 38
2.4.3 字符型数据的输入和输出 39
2.5 printf函数的使用 41
2.6 典型例题 42
知识扩展 44
练习2 49
本章讨论提示 51
第3章 表达式 52
章节导学 52
本章讨论 52
3.1 概述 53
3.2 赋值表达式 55
3.2.1 赋值操作符 55
3.2.2 类型不匹配时的赋值操作 57
3.2.3 复合赋值操作符 59
3.3 算术表达式 60
3.3.1 算术表达式求值 60
3.3.2 强制类型转换操作符 61
3.3.3 自增自减操作符 62
3.4 逗号表达式 63
3.5 典型例题 64
知识扩展 66
练习3 68
本章讨论提示 70
第4章 逻辑运算和选择结构 71
章节导学 71
本章讨论 71
4.1 C语言中的“逻辑型” 72
4.2 关系表达式 73
4.3 逻辑表达式 74
4.3.1 逻辑操作符 74
4.3.2 逻辑表达式求值 76
4.4 if选择结构 77
4.4.1 if选择结构的作用 77
4.4.2 if选择结构的用法 80
4.5 if...else选择结构 81
4.5.1 if...else选择结构的形式和用法 81
4.5.2 选择结构嵌套 83
4.6 条件操作符 87
4.7 switch选择结构 88
4.7.1 基本的switch选择结构 88
4.7.2 有break语句的switch选择结构 89
4.8 典型例题 90
练习4 95
第5章 循环结构 100
章节导学 100
本章讨论 100
5.1 while循环结构 100
5.1.1 while循环结构分析 100
5.1.2 while循环结构用法 104
5.2 for循环结构 108
5.2.1 for循环结构分析 108
5.2.2 for循环结构用法 109
5.3 break语句和continue语句 110
5.4 循环嵌套 112
5.5 do...while循环结构 115
5.6 典型例题 117
练习5 121
第6章 数组 125
章节导学 125
本章讨论 125
6.1 一维数组 126
6.1.1 一维数组定义 126
6.1.2 一维数组初始化 127
6.1.3 一维数组应用 128
6.2 多维数组 133
6.2.1 二维数组定义及初始化 133
6.2.2 二维数组应用 134
6.2.3 三维数组简介 136
6.3 字符型数组和字符串 137
6.3.1 字符型数组应用 137
6.3.2 字符串简介 138
6.3.3 字符串的输入/输出 139
6.3.4 字符串处理 140
6.4 综合实例 141
练习6 144
本章讨论提示 147
第7章 函数 148
章节导学 148
本章讨论 148
7.1 函数定义 148
7.2 函数调用与函数声明 151
7.2.1 函数调用分析 151
7.2.2 函数声明的作用 153
7.2.3 使用参数类型为一维数组的函数 154
7.3 作用域 156
7.3.1 变量作用域 156
7.3.2 文件作用域扩展 158
7.3.3 全局变量作用域可扩展的原因 160
7.3.4 使用关键字static限制文件作用域 161
7.4 用函数编程 163
7.4.1 用函数编程示例 163
7.4.2 函数重用 165
7.5 递归 166
7.5.1 递归算法与递归函数 166
7.5.2 递归算法示例 169
7.6 库函数简介 173
7.6.1 getchar函数、getch函数和getche函数 173
7.6.2 rand函数、srand函数和time函数 174
7.6.3 字符串处理函数 175
7.7 综合实例 177
知识扩展 179
练习7 180
本章讨论提示 183
第8章 预处理 184
章节导学 184
本章讨论 184
8.1 程序编译 184
8.2 宏定义 184
8.2.1 简单宏 185
8.2.2 参数化宏 186
8.3 文件包含 187
8.4 条件编译 188
练习8 190
本章讨论提示 192
第9章 指针 193
章节导学 193
本章讨论 193
9.1 指针类型 194
9.1.1 变量的左值和右值 194
9.1.2 指针变量的定义和赋值 195
9.2 指针变量的作用 196
9.2.1 指针操作符 196
9.2.2 指针变量的用法 197
9.2.3 空指针 198
9.3 指针与函数 199
9.3.1 指针作为函数参数 199
9.3.2 指针作为函数返回值 201
9.4 地址可以参与的运算 203
9.5 指针与数组 204
9.5.1 指针与一维数组 204
9.5.2 指针与二维数组 208
9.5.3 指向数组型存储单元的指针变量 209
9.5.4 指针与字符串 211
9.6 main函数和命令行参数 215
9.7 指向函数的指针变量 216
9.8 使用堆空间 217
9.9 典型例题 220
知识扩展 224
练习9 226
第10章 用户自定义数据类型 233
章节导学 233
本章讨论 233
10.1 结构型 234
10.1.1 结构型的定义 234
10.1.2 结构型指针变量 235
10.1.3 链表 237
10.2 联合型 240
10.3 枚举型 241
10.4 为类型自定义别名 242
知识扩展——存储单元的类型 243
练习10 244
第11章 文件 246
章节导学 246
本章讨论 246
11.1 文件概述 247
11.1.1 C语言文件 247
11.1.2 文本文件与二进制文件 247
11.2 文件的打开和关闭 248
11.2.1 (新建后)打开文件 248
11.2.2 文件关闭 249
11.3 文件读/写 249
11.3.1 fputc函数和fgetc函数 249
11.3.2 文件结束状态 251
11.3.3 fprintf函数和fscanf函数 253
11.3.4 fwrite函数和fread函数 255
11.4 标准设备文件 256
11.5 文件随机读/写 257
11.5.1 调整文件当前位置指针变量指向的位置 257
11.5.2 既可读又可写的文件 258
练习11 259
第12章 位运算 262
章节导学 262
本章讨论 262
12.1 位操作符 262
12.1.1 按位与操作符& 262
12.1.2 按位或操作符| 263
12.1.3 异或操作符^ 263
12.1.4 取反操作符~ 264
12.1.5 左移操作符〈〈 264
12.1.6 右移操作符〉〉 264
12.2 位运算示例 265
12.3 位段 266
练习12 266
本章讨论提示 267
第13章 数字化信息编码 268
章节导学 268
本章讨论 268
13.1 二进制数 268
13.1.1 位权 269
13.1.2 十进制数转换成二进制数 269
13.1.3 二进制数的计算 270
13.2 计算机的计算 271
13.3 整数的编码 272
13.4 计算机中整数的特点 274
13.4.1 整数加法示例 274
13.4.2 须参与运算的补码符号位 275
13.4.3 计算机中整数构成一个环 276
13.5 小数的编码 277
13.5.1 定点小数 277
13.5.2 浮点数编码 277
13.5.3 浮点数的特点 278
13.6 字符的编码 279
13.6.1 机内码 279
13.6.2 输入码和字形码 280
13.7 八进制数和十六进制数 282
附录A C语言关键字 283
附录B 格式化输入/输出 284
附录C ASCII码表 289
附录D 常用的C语言库函数 290
附录E C语言操作符 293
参考文献 294