第1章 初识C语言 1
1.1 C语言历史背景 1
1.1.1 C语言的历史 1
1.1.2 C语言的主要特点 2
1.2 程序与程序设计语言 3
1.2.1 程序与程序设计 3
1.2.2 程序设计语言 3
1.2.3 C语言程序的基本结构 4
1.3 C语言上机过程 6
1.3.1 启动Visual C++7.0 7
1.3.2 Visual C++7.0的菜单栏 8
1.3.3 Visual C++7.0的工具栏 10
1.3.4 Visual C++7.0编辑、编译、链接和运行程序的步骤 12
本章小结 15
习题1 15
第2章 程序的灵魂——算法 17
2.1 算法的概念 17
2.2 算法设计的基本方法 18
2.3 简单算法举例 19
2.4 算法的描述 20
2.5 算法设计的要求 23
2.6 算法的复杂度 23
2.7 结构化程序设计方法 25
第3章 数据类型、运算符和表达式 27
3.1 标识符与关键字 27
3.1.1 标识符 27
3.1.2 关键字 28
3.2 数据类型 28
3.2.1 常量 28
3.2.2 变量 32
3.2.3 整型变量 34
3.2.4 实型变量 37
3.2.5 字符变量 38
3.2.6 数据类型转换 39
3.3 运算符和表达式 41
3.3.1 运算符的优先级和结合性 41
3.3.2 算术运算符及其表达式 42
3.3.3 自增、自减运算符及其表达式 42
3.3.4 赋值运算符与赋值表达式 43
3.3.5 关系运算符及其表达式 44
3.3.6 逻辑运算符及其表达式 44
3.3.7 条件运算符及其条件表达式 46
3.3.8 逗号运算符及其表达式 46
3.3.9 位运算符及其表达式 47
本章小结 50
习题3 50
第4章 顺序结构程序设计 53
4.1 顺序程序设计举例 53
4.2 C语言基本语句 56
4.3 字符数据的输入/输出 58
4.3.1 字符数据的输出putchar函数 58
4.3.2 字符数据的输入getchar函数 59
4.4 格式数据的输入/输出 60
4.4.1 标准格式输出printf函数 60
4.4.2 标准格式输入scanf函数 64
习题4 66
第5章 选择结构程序设计 72
5.1 简单选择结构 72
5.1.1 单分支if语句 72
5.1.2 双分支if语句 73
5.2 多分支选择结构 73
5.2.1 多分支if语句 73
5.2.2 if语句的嵌套 75
5.2.3 多分支switch语句 76
5.3 选择结构精选案例 77
本章小结 82
习题5 82
第6章 循环结构程序设计 89
6.1 用while语句实现循环 89
6.1.1 while语句的一般形式 89
6.1.2 while语句的执行过程 89
6.2 用do-while语句实现循环 90
6.2.1 do-while语句的一般形式 90
6.2.2 do-while语句的执行过程 91
6.3 用for语句实现循环 92
6.3.1 for语句的一般形式 92
6.3.2 for语句的执行过程 93
6.4 循环结构嵌套 94
6.5 三种循环语句的比较 96
6.6 改变循环执行的状态 96
6.6.1 用break语句提前终止循环 96
6.6.2 用continue语句提前结束本次循环 97
6.6.3 用goto语句提前终止多重循环 98
6.7 循环结构精选案例 98
本章小结 103
习题6 104
第7章 数组 112
7.1 一维数组 112
7.1.1 一维数组的定义 113
7.1.2 一维数组的初始化 114
7.1.3 一维数组元素的引用及基本操作 114
7.1.4 一维数组精选案例 115
7.2 二维数组 122
7.2.1 二维数组的定义 122
7.2.2 二维数组的初始化 123
7.2.3 二维数组元素的引用 124
7.2.4 二维数组精选案例 125
7.3 字符数组与字符串 126
7.3.1 字符串的存储 127
7.3.2 字符数组的定义和初始化 127
7.3.3 字符数组的基本操作 128
7.3.4 字符串处理函数 130
7.3.5 字符数组精选案例 133
本章小结 135
习题7 135
第8章 函数及编译预处理 140
8.1 函数概述 140
8.1.1 库函数 140
8.1.2 自定义函数 142
8.1.3 C程序构成 142
8.2 函数的定义 142
8.3 函数的调用和参数传递 145
8.3.1 函数调用 145
8.3.2 函数声明 147
8.3.3 函数间的参数传递 148
8.4 函数的嵌套调用和递归调用 152
8.4.1 函数的嵌套调用 152
8.4.2 函数的递归调用 154
8.5 函数精选案例 156
8.6 变量的作用域和存储类别 159
8.6.1 变量的作用域 159
8.6.2 变量的存储类别 163
8.7 编译预处理 164
8.7.1 宏定义 165
8.7.2 文件包含 167
8.7.3 条件编译 168
本章小结 170
习题8 171
第9章 指针 177
9.1 地址与指针的概念 177
9.2 变量的指针和指向变量的指针变量 178
9.2.1 定义一个指针变量 178
9.2.2 指针变量的初始化 178
9.2.3 指针变量的引用 179
9.2.4 指针变量作为函数参数 181
9.2.5 指针变量几个问题的进一步说明 184
9.3 数组指针和指向数组的指针变量 186
9.3.1 指向数组元素的指针 186
9.3.2 通过指针引用数组元素 187
9.3.3 数组名作函数参数 189
9.3.4 指向多维数组的指针和指针变量 193
本章小结 194
习题9 195
第10章 结构体和共用体 199
10.1 结构体类型和变量 199
10.1.1 结构体类型的声明 200
10.1.2 结构体变量的定义、初始化、引用及基本操作 201
10.1.3 结构体精选实例 205
10.2 结构体数组 207
10.2.1 结构体数组的定义和初始化 207
10.2.2 结构体数组的引用 207
10.2.3 结构体数组精选实例 208
10.3 共用体类型 209
10.3.1 共用体变量的定义 210
10.3.2 共用体变量的引用 211
10.3.3 共用体精选实例 211
10.4 枚举类型 213
10.4.1 枚举类型的声明 213
10.4.2 枚举变量的定义与引用 214
10.4.3 枚举精选实例 214
本章小结 216
习题10 216
第11章 文件 220
11.1 文件概述 220
11.1.1 数据项、记录和文件 220
11.1.2 数据文件的存储形式 221
11.1.3 缓冲区 221
11.2 文件类型指针 222
11.3 文件操作 223
11.3.1 文件的操作函数 223
11.3.2 创建文件 232
11.3.3 显示文件 232
11.3.4 追加文件 233
11.3.5 复制文件 234
11.3.6 删除文件 235
本章小结 235
习题11 236
附录A 常用字符与ASCII代码对照表 243
附录B C语言中的关键字 245
附录C 运算符的优先级和结合性 246
附录D C语言常用语法提要 248
附录E C库函数 251