第1章 C语言程序设计预备知识 1
1.1 计算机系统组成及工作原理简介 1
目录 1
1.2 进位计数制及其转换 4
1.2.1 十进制数的表示 4
1.2.2 二进制数、八进制数和十六进制数的表示 4
1.2.3 二进制数和十进制数的转换 5
1.2.4 二进制数、八进制数和十六进制数的转换 7
1.3.1 真值与机器数 8
1.3.2 数的原码表示 8
1.3 机器数的表示形式及其表示范围 8
1.3.3 数的反码表示 9
1.3.4 数的补码表示 10
1.3.5 补码的加、减运算 11
1.3.6 无符号整数 12
1.3.7 字符表示法 12
1.4 二进制数的位运算 12
1.5 本章小结 13
习题1 14
第2章 C语言程序设计基础 16
2.1 程序设计语言的发展及其特点 16
2.2 C语言的发展及其特点和应用 18
2.3 C语言程序的基本结构 20
2.4 编制C语言程序的基本步骤 26
习题2 27
第3章 基本数据类型、运算符与表达式 30
3.1 C语言的数据类型 30
3.2 常量、变量和标识符 32
3.3 简单数据类型与表示范围 34
3.3.1 整型数据 35
3.3.2 实型数据 43
3.3.3 字符型数据和字符串常量 45
3.3.4 简单数据类型的表示范围 49
3.3.5 数据的简单输出 51
3.4 C语言的运算符与表达式 53
3.4.1 赋值运算符、赋值表达式 54
3.4.2 强制类型转换符 55
3.4.3 算术运算符、算术表达式 57
3.4.4 自增自减运算符、负号运算符 59
3.4.5 算术运算中数据类型转换规则 60
3.4.6 位运算符、位运算表达式 62
3.4.7 逗号运算符、逗号表达式 63
3.4.8 sizeof运算符、复合赋值运算符 64
3.6 本章小结及常见错误列举 65
3.5 运算符的优先级和结合性 65
习题3 70
第4章 基本输入/输出和顺序程序设计 74
4.1 格式化输出printf 74
4.1.1 整数的输出 77
4.1.2 实数的输出 81
4.1.3 字符和字符串的输出 82
4.1.4 格式化输出小结 84
4.2 格式化输入scanf 86
4.3 字符数据的非格式化输入/输出 91
4.4.1 算法的基本概念 95
4.4 程序的控制结构 95
4.4.2 流程图与算法的结构化描述 97
4.5 顺序程序设计举例 99
4.6 本章小结及常见错误列举 102
习题4 104
第5章 选择结构程序设计 108
5.1 C语言程序中语句的分类 108
5.2 关系运算符、逻辑运算符、条件运算符 110
5.2.1 关系运算符和关系表达式 110
5.2.2 逻辑运算符和逻辑表达式 111
5.2.3 条件运算符和条件表达式 113
5.3.1 if语句 115
5.3 选择结构的程序设计 115
5.3.2 switch语句 120
5.4 选择结构程序设计举例 125
5.5 本章小结及常见错误列举 131
习题5 134
第6章 循环结构程序设计 141
6.1 循环结构的程序设计 141
6.1.1 while语句 142
6.1.2 do-while语句 145
6.1.3 for语句 147
6.1.4 循环嵌套 149
6.1.5 break与continue语句 150
6.1.6 goto语句 153
6.1.7 exit()函数 154
6.2 循环结构类型的选择及转换 156
6.3 循环结构程序设计举例 157
6.4 本章小结及常见错误列举 164
习题6 167
第7章 数组 174
7.1 一维数组 175
7.1.1 一维数组的定义和引用 175
7.1.2 一维数组的赋值 177
7.1.3 一维数组的应用举例 181
7.2 二维数组 186
7.2.1 二维数组的定义和引用 186
7.2.2 二维数组的赋值 188
7.2.3 二维数组的应用举例 190
7.3 字符串与数组 191
7.3.1 字符串的本质 191
7.3.2 字符及字符串操作的常用函数 192
7.3.3 字符串数组 199
7.4 数组综合应用举例 203
7.5 本章小结及常见错误列举 206
习题7 210
第8章 函数 216
8.1 函数概述 216
8.2 函数的定义与调用 218
8.2.1 无参数无返回值的函数 218
8.2.2 无参数有返回值的函数 221
8.2.3 带参数无返回值的函数 223
8.2.4 带参数有返回值的函数 226
8.3 函数参数的传递方式 227
8.4 变量的作用域和生存期 231
8.5 变量的存储类型 237
8.6 函数的嵌套和递归调用 242
8.7 函数的作用域 249
8.8 函数应用综合举例 250
8.9 本章小结及常见错误列举 254
习题8 258
第9章 指针 264
9.1 指针与指针变量的概念 264
9.2 指针变量的定义和引用 267
9.3 指针和地址运算 273
9.4 指针与数组 273
9.4.1 数组的指针和指向数组的指针变量 274
9.4.2 指向多维数组的指针——数组指针 276
9.4.3 元素为指针的数组——指针数组 279
9.5 指针与字符串 281
9.6 指针与动态内存分配 288
9.7 多级指针 293
9.8 指针作为函数的参数 295
9.9 指针作为函数的返回值——指针函数 302
9.10 指向函数的指针——函数指针 303
9.11 带参数的main函数 307
9.12 本章小结及常见错误列举 310
习题9 315
10.1 预处理命令简介 321
第10章 预处理命令 321
10.2 宏定义 322
10.2.1 不带参数的宏定义 322
10.2.2 带参数的宏定义 325
10.3 文件包含 327
10.4 条件编译 329
10.5 本章小结及常见错误列举 334
习题10 336
第11章 复杂数据类型 338
11.1 复杂数据类型概述 338
11.2.1 结构体类型的定义 339
11.2 结构体 339
11.2.2 结构体变量的定义和引用 341
11.2.3 结构体变量的赋值 345
11.2.4 简化结构体类型名 348
11.2.5 结构体数组 349
11.3 线性链表 352
11.4 联合体 360
11.4.1 联合体类型的定义 360
11.4.2 联合体变量的定义和引用 361
11.4.3 联合体变量的赋值 362
11.5 位域 365
11.6 枚举类型变量的定义和引用 368
11.7 复杂数据类型应用综合举例 372
11.8 本章小结及常见错误列举 376
习题11 380
第12章 文件 387
12.1 文件的基本概念 387
12.2 文件的类别 388
12.3 文件操作概述 389
12.4 文件指针 390
12.5 文件的打开、读写和关闭 391
12.5.1 文件的打开与关闭 391
12.5.2 文件的读写 393
12.5.3 文件读写函数选用原则 406
12.6 文件的定位读写 407
12.7 文件应用综合举例 411
12.8 本章小结及常见错误列举 412
习题12 413
附录1 常见问题解答 419
附录2 常用标准库函数 423
附录3 C语言中的关键字(保留字) 431
附录4 运算符的结合性 433
附录5 ASCII码表 435
参考文献 438