第1章 程序设计初步 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.1.3 C语言的发展及特点 2
1.2 C程序的构成和书写格式 4
1.2.1 C程序的构成 4
1.2.2 C程序的书写格式 4
1.3 C程序的开发过程 6
1.4 上机环境 8
1.4.1 GCC简介 8
1.4.2 GCC选项 8
1.4.3 GCC的使用 9
1.5 结构化程序设计介绍 10
1.5.1 结构化程序设计思想 10
1.5.2 算法的概念 11
1.5.3 算法的特性 11
1.5.4 算法的表示 11
本章小结 15
习题 15
第2章 数据类型、运算符与表达式 16
2.1 C语言的数据类型 16
2.1.1 数据类型 16
2.1.2 数据的取值范围 17
2.2 常量 18
2.2.1 整型常量 18
2.2.2 实型常量 19
2.2.3 字符常量 20
2.2.4 字符串常量 21
2.2.5 符号常量 22
2.2.6 枚举常量 22
2.3 变量 22
2.3.1 变量命名规则 23
2.3.2 变量的定义 23
2.3.3 变量的初始化 23
2.4 运算符与表达式 25
2.4.1 算术运算符 27
2.4.2 赋值运算符 29
2.4.3 关系运算符 30
2.4.4 逻辑运算符 31
2.4.5 逗号运算符 31
2.4.6 条件运算符 32
2.4.7 sizeof运算符 33
2.4.8 位运算符 33
2.4.9 数据类型转换 37
本章小结 38
习题 39
第3章 C语言程序的流程控制 42
3.1 顺序程序设计 42
3.1.1 表达式语句 42
3.1.2 输入和输出语句 43
3.1.3 复合语句 50
3.1.4 注释语句 50
3.2 选择型程序设计 51
3.2.1 if语句的三种形式 51
3.2.2 if语句的嵌套 54
3.2.3 switch语句 58
3.3 循环型程序设计 61
3.3.1 while语句 62
3.3.2 do…while语句 63
3.3.3 for语句 65
3.3.4 循环的嵌套 67
3.3.5 跳转语句 71
本章小结 74
习题 74
第4章 函数 77
4.1 函数概述 77
4.1.1 模块化程序设计 77
4.1.2 函数的分类 78
4.2 函数的定义和声明 78
4.2.1 函数的定义 79
4.2.2 函数的声明 81
4.3 函数的调用 82
4.3.1 形式参数和实际参数 82
4.3.2 函数调用的一般形式 83
4.3.3 函数的嵌套调用 84
4.3.4 函数的递归调用 86
4.4 变量作用域与存储类别 90
4.4.1 变量的作用域 90
4.4.2 变量的存储类别 92
4.4.3 内部函数和外部函数 94
本章小结 95
习题 95
第5章 数组 97
5.1 数组的基本概念 97
5.2 一维数组的定义和应用 98
5.2.1 一维数组的定义 98
5.2.2 一维数组的初始化 99
5.2.3 一维数组的引用 100
5.2.4 一维数组的应用 101
5.3 二维数组的定义和应用 105
5.3.1 二维数组的定义 105
5.3.2 二维数组的初始化 106
5.3.3 二维数组的引用 108
5.3.4 二维数组的应用 108
5.4 字符数组和字符串 110
5.4.1 字符数组的定义 110
5.4.2 字符数组的初始化 111
5.4.3 字符数组的引用 112
5.4.4 字符串处理函数 114
5.4.5 字符数组的应用 117
5.5 数组与函数 118
5.5.1 数组元素作为函数的参数 119
5.5.2 数组名作为函数的参数 119
本章小结 122
习题 122
第6章 指针 124
6.1 指针的概念 124
6.1.1 变量的地址 124
6.1.2 变量的访问 125
6.1.3 指针和指针变量 125
6.2 指针的定义和使用 126
6.2.1 指针的定义 126
6.2.2 指针的使用 127
6.3 指针与数组 136
6.3.1 使用指针访问数组元素 136
6.3.2 数组指针和指针数组 142
6.4 指针与函数 145
6.4.1 指向函数的指针 145
6.4.2 指针函数 147
6.4.3 指针作为函数参数 148
6.5 main函数的参数 149
本章小结 152
习题 153
第7章 结构体与共用体 155
7.1 结构体 155
7.1.1 结构体的概念 155
7.1.2 结构体变量的定义 157
7.1.3 结构体变量的引用 159
7.1.4 结构体变量的初始化 162
7.2 结构体数组 164
7.2.1 结构体数组的定义 165
7.2.2 结构体数组的初始化 166
7.2.3 结构体数组的引用 167
7.3 结构体与指针 169
7.3.1 结构体指针 169
7.3.2 结构体数组指针 170
7.3.3 结构体指针数组 171
7.4 结构体与函数 172
7.4.1 结构体变量作为函数参数 172
7.4.2 函数的返回值类型为结构体 174
7.4.3 用结构体指针作函数实参 175
7.5 链表 176
7.5.1 动态存储分配 176
7.5.2 链表的定义 178
7.5.3 链表的建立和输出 180
7.5.4 链表的插入和删除 181
7.5.5 链表的统计和查找 184
7.5.6 链表的应用 185
7.6 共用体 190
7.6.1 共用体的概念 190
7.6.2 共用体变量的引用 192
7.7 枚举类型和自定义类型 195
7.7.1 枚举类型 195
7.7.2 自定义类型 197
本章小结 198
习题 198
第8章 文件 201
8.1 文件概述 201
8.1.1 文件的概念 201
8.1.2 文件类型指针 202
8.1.3 文件的处理过程 203
8.2 文件的打开与关闭 203
8.2.1 打开文件函数 fopen() 203
8.2.2 关闭文件函数 fclose() 204
8.2.3 文件操作的检测函数 205
8.3 文件的读/写 205
8.3.1 按字符方式读写文件 206
8.3.2 按字符串方式读写文件 209
8.3.3 按格式读写文件 209
8.3.4 按数据块读写文件 211
8.4 文件的定位与随机读写 214
8.4.1 文件的定位 214
8.4.2 随机读写 215
本章小结 220
习题 221
附录A GCC的安装 223
附录B ASCII码表 225
附录C C库函数 228