第1章 计算机基础知识 1
1.1 计算机硬件系统的组成及工作原理 1
1.1.1 计算机硬件系统的组成 1
1.1.2 计算机的工作原理 2
1.2 数制及数据的存储 3
1.2.1 数制 3
1.2.2 计算机中数据的表示 4
1.2.3 数制间的转换 4
1.2.4 数据在内存中的存储 5
1.3 计算机软件系统的组成 8
1.3.1 软件系统 8
1.3.2 机器语言和高级语言 9
第2章 C语言程序设计基础 11
2.1 利用计算机解决实际问题的具体步骤 11
2.2 算法初步 13
2.2.1 算法的概念和特性 13
2.2.2 算法的表示 14
2.3 结构化程序设计 17
2.3.1 结构化程序设计概念 17
2.3.2 结构化程序设计原则 18
2.4 C 语言简介 20
2.4.1 C语言的产生与发展 20
2.4.2 C语言的特点 20
2.5 C语言的基本符号 21
2.5.1 C语言的字符集 21
2.5.2 C语言的词汇 22
2.6 C语言程序的基本结构 23
第3章 数据类型及表达式 27
3.1 数据结构 27
3.2 C程序中数据的表示方法 28
3.2.1 常量 29
3.2.2 变量 33
3.3 运算符及其表达式 36
3.3.1 C运算符概述 36
3.3.2 算术运算符及算术表达式 37
3.3.3 赋值运算符和赋值表达式 38
3.3.4 自增自减运算符及含自增自减运算的表达式 40
3.3.5 位运算 41
3.3.6 逗号运算符和逗号表达式 43
3.3.7 表达式小结 44
3.4 C语言中的类型转换 44
3.4.1 类型的自动转换 44
3.4.2 强制类型转换 50
习题 51
第4章 顺序结构程序设计 53
4.1 C语句概述 53
4.1.1 语句的概念 53
4.1.2 C语句的分类 54
4.2 输出和输入函数 56
4.2.1 putchar()和getchar()函数 56
4.2.2 printf()和scanf()函数 58
4.3 顺序结构程序设计示例 62
习题 66
第5章 选择结构程序设计 69
5.1 条件的表示 69
5.1.1 逻辑量的概念 69
5.1.2 关系表达式 69
5.1.3 逻辑表达式 70
5.1.4 条件表达式 72
5.2 if语句 73
5.2.1 if语句 73
5.2.2 if语句的嵌套 75
5.2.3 选择结构程序设计示例 76
5.3 switch语句 80
5.3.1 switch语句 80
5.3.2 switch语句在多分支程序设计中的应用 83
习题 88
第6章 循环结构程序设计 91
6.1 循环的概念 91
6.2 实现循环的语句 94
6.2.1 while语句 94
6.2.2 do-while语句 99
6.2.3 for语句 101
6.3 break和continue语句 103
6.4 循环的嵌套 106
6.5 循环结构程序设计 111
习题 116
第7章 函数 122
7.1 函数概述 122
7.1.1 模块化程序设计思想 122
7.1.2 函数概述 123
7.1.3 函数的分类 124
7.2 函数的定义 125
7.2.1 函数的定义形式 125
7.2.2 函数的返回值 127
7.3 函数的声明及函数调用 128
7.3.1 函数声明 128
7.3.2 函数的调用及参数传递 130
7.3.3 函数的调用形式及规范 133
7.3.4 函数的嵌套及递归调用 134
7.4 变量的作用域与生命期 139
7.4.1 变量的属性 139
7.4.2 局部变量和全局变量 140
7.4.3 变量的存储类型与生命期 144
7.5 函数示例 148
习题 149
第8章 数组 154
8.1 数组的基本概念 154
8.2 一维数组 155
8.2.1 一维数组的定义 155
8.2.2 一维数组元素的初始化 156
8.2.3 一维数组元素的引用 157
8.2.4 一维数组程序设计示例 159
8.3 二维数组 166
8.3.1 二维数组的定义 166
8.3.2 二维数组元素的引用 167
8.3.3 多维数组 171
8.4 字符数组及字符串 172
8.4.1 字符数组的定义、引用及初始化 172
8.4.2 字符串处理函数 175
8.4.3 字符数组示例 178
习题 181
第9章 指针 186
9.1 指针的基本概念 186
9.1.1 变量的直接访问和间接访问 186
9.1.2 指针与指针变量 187
9.2 指针变量 188
9.2.1 指针变量的类型和指针变量指向变量的关系 188
9.2.2 指针变量的引用 190
9.2.3 指针的运算 194
9.2.4 指针变量作为函数参数 196
9.3 数组与指针 199
9.3.1 指向数组元素的指针变量 200
9.3.2 一维数组作函数参数和指向变量的指针变量作函数参数的一致性 204
9.3.3 多维数组的指针 208
9.3.4 字符串和指针 213
9.4 指向函数的指针和返回指针值的函数 220
9.4.1 指向函数的指针 220
9.4.2 指向函数的指针变量 221
9.4.3 指向函数的指针变量作函数参数 223
9.4.4 返回指针值的函数 226
9.5 指针数组与多级指针 229
9.5.1 指针数组 229
9.5.2 多级指针 234
9.5.3 命令行参数 236
习题 237
第10章 结构体与联合体 242
10.1 结构体的概念 242
10.1.1 结构体类型的定义 242
10.1.2 结构体变量的定义、引用、初始化 244
10.1.3 结构体的嵌套 249
10.2 结构体数组 253
10.2.1 结构体数组的定义 253
10.2.2 结构体数组的引用 254
10.2.3 结构体数组的初始化 256
10.3 结构体指针 256
10.3.1 指向结构体变量的指针 256
10.3.2 指向结构体数组的指针 259
10.3.3 结构体指针作函数参数 261
10.4 位字段 262
10.4.1 位字段结构体的定义 262
10.4.2 位字段结构体变量成员的引用 265
10.5 链表 265
10.5.1 链表的概念 266
10.5.2 内存的动态存储、分配与释放函数 267
10.5.3 链表的操作 269
10.6 联合体数据类型 280
10.6.1 联合体的定义 280
10.6.2 联合体变量的引用 282
10.7 自定义类型 287
习题 288
第11章 文件 292
11.1 文件概述 292
11.1.1 文件的概念 292
11.1.2 缓冲文件系统 293
11.2 文件的使用 293
11.2.1 文件类型指针 294
11.2.2 文件的打开 294
11.2.3 文件的关闭 296
11.2.4 文件的读写 296
11.2.5 文件的定位 304
11.2.6 文件的检测 307
11.3 文件程序设计示例 307
习题 312
第12章 编译预处理 313
12.1 宏定义 313
12.1.1 不带参数的宏定义 314
12.1.2 带参数的宏定义 318
12.2 文件包含 320
12.3 条件编译 322
习题 324
附录1 ASCII字符表 327
附录2 C语言的运算符及优先级和结合性 328
附录3 Visual C++ 6.0集成开发环境 329
附录4 常用标准库函数 344