第1章 算法与C语言概述 2
1.1 程序设计的基本概念 2
1.1.1 程序设计的基本步骤与程序设计语言 2
1.1.2 程序设计方法 5
1.2 算法 9
1.2.1 算法概述 9
1.2.2 算法表示 10
1.2.3 算法示例 14
1.3 C语言概述 16
1.3.1 C语言的发展及特点 16
1.3.2 C语言程序的构成及程序的书写格式 17
1.3.3 程序调试步骤 20
1.3.4 用VC系统实现C程序的操作过程 20
本章小结 23
习题1 23
第2章 数据类型及表达式 26
2.1 标识符与关键字 26
2.2 数据类型 26
2.3 常量与变量 27
2.3.1 常量 27
2.3.2 变量 29
2.4 运算符与表达式 32
2.4.1 算术运算符与算术表达式 32
2.4.2 赋值运算符与赋值表达式 34
2.4.3 自增、自减运算符 35
2.4.4 逗号运算符与逗号表达式 36
2.4.5 强制类型转换 37
2.4.6 位运算 39
本章小结 41
习题2 41
第3章 C语言的语句及程序流程控制 46
3.1 C语言语句概述 46
3.1.1 表达式语句 46
3.1.2 函数调用语句 48
3.1.3 控制语句 48
3.1.4 复合语句 48
3.1.5 空语句 49
3.2 顺序结构程序设计 50
3.2.1 顺序结构程序设计的基本结构 50
3.2.2 基本的输入/输出函数 51
3.2.3 顺序结构程序设计应用实例 59
3.3 选择结构程序设计 61
3.3.1 关系运算符与关系运算表达式 61
3.3.2 逻辑运算符与逻辑运算表达式 62
3.3.3 if语句 63
3.3.4 条件运算符 68
3.3.5 switch开关语句 69
3.3.6 程序举例 72
3.4 循环控制语句 74
3.4.1 goto语句 75
3.4.2 while语句 75
3.4.3 do while语句 78
3.4.4 for语句 80
3.4.5 循环的嵌套 85
3.4.6 几种循环语句的比较 90
3.4.7 break和continue语句 92
3.5 程序举例 96
本章小结 103
习题3 104
第4章 数组 118
4.1 一维数组 118
4.1.1 一维数组的定义 118
4.1.2 一维数组的初始化 119
4.1.3 一维数组元素的引用与地址引用 120
4.1.4 一维数组应用实例 121
4.2 二维数组 123
4.2.1 二维数组的定义 123
4.2.2 二维数组的初始化 124
4.2.3 二维数组元素的引用与地址引用 125
4.2.4 二维数组应用实例 126
4.3 字符数组与字符串 128
4.3.1 字符数组的定义 128
4.3.2 字符数组的初始化 128
4.3.3 字符数组的引用 129
4.3.4 字符串和字符串结束标志 129
4.3.5 字符串的输入/输出 130
4.3.6 字符串常用函数 131
4.3.7 字符数组应用实例 134
本章小结 136
习题4 137
第5章 函数 144
5.1 函数的概述 144
5.2 函数的定义 144
5.2.1 无参数函数的定义 144
5.2.2 有参数函数的定义 145
5.3 函数间的数据传递 147
5.3.1 实际参数和形式参数 147
5.3.2 数组作为参数 149
5.4 函数的返回值 152
5.4.1 无返回值的函数 152
5.4.2 有返回值的函数 153
5.5 函数的调用 153
5.5.1 函数的调用方式 154
5.5.2 函数的原型声明 154
5.5.3 函数的嵌套调用 156
5.5.4 函数的递归调用 158
5.6 变量的作用域 161
5.6.1 局部变量 162
5.6.2 全局变量 163
5.7 变量的存储类别 164
5.7.1 自动变量 164
5.7.2 静态变量 165
5.7.3 寄存器变量 166
5.7.4 外部变量 166
5.7.5 内部函数和外部函数 168
本章小结 169
习题5 170
第6章 编译预处理 176
6.1 宏定义 176
6.1.1 无参数的宏定义 176
6.1.2 带参数的宏定义 177
6.2 文件包含处理 179
6.3 条件编译 180
本章小结 182
习题6 182
第7章 指针 186
7.1 指针的概念与使用 186
7.1.1 指针的概念 186
7.1.2 指针变量的定义 187
7.2 指针变量的引用 187
7.3 指针与函数 191
7.3.1 指针作为函数的参数 191
7.3.2 返回指针的函数 193
7.3.3 指向函数的指针变量 194
7.4 指向数组的指针变量 195
7.4.1 指向一维数组的指针 195
7.4.2 指向多维数组的指针 197
7.4.3 指向字符数组的指针 199
7.4.4 指向数组的指针变量作函数的参数 201
7.5 指针的运算 204
7.5.1 指针变量的赋值运算 204
7.5.2 指针变量的*运算 204
7.5.3 指针变量的加减运算 204
7.6 指针数组 207
7.6.1 指针数组的说明及使用 207
7.6.2 指针变量的指针 208
本章小结 209
习题7 211
第8章 结构体、共用体与枚举类型 216
8.1 结构体的定义和引用 216
8.1.1 结构体的定义 216
8.1.2 结构体变量的定义 218
8.1.3 结构体变量的初始化 220
8.1.4 结构体变量的引用 221
8.1.5 结构体的嵌套定义 221
8.1.6 结构体变量应用实例 223
8.2 结构体数组 225
8.2.1 结构体数组的定义与初始化 226
8.2.2 结构体数组的引用 228
8.2.3 结构体数组应用实例 229
8.3 指向结构体类型数据的指针 232
8.3.1 指向结构体类型数据的指针变量的定义 232
8.3.2 指向结构体类型数据的指针变量的初始化 232
8.3.3 通过指向结构体变量的指针访问结构体成员 233
8.3.4 指向结构体数组的指针 234
8.3.5 动态存储分配指针所指的空间 235
8.3.6 结构体指针应用实例 240
8.4 结构体和函数 243
8.4.1 结构体作为函数参数和返回值 243
8.4.2 结构体指针作为函数参数和返回值 245
8.5 链表 247
8.5.1 链表的概念 247
8.5.2 建立简单链表 248
8.5.3 建立动态链表 249
8.5.4 输出链表 251
8.5.5 链表的插入操作 253
8.5.6 链表的删除操作 256
8.6 共用体 259
8.6.1 共用体类型的说明和变量的定义 259
8.6.2 共用体变量的引用 260
8.6.3 共用体类型数据的特点 260
8.7 枚举类型 261
8.7.1 枚举类型的定义 261
8.7.2 枚举类型变量的赋值和使用 262
8.8 用typedef定义新的类型名 266
本章小结 267
习题8 268
第9章 文件 272
9.1 文件的概述 272
9.1.1 引言 272
9.1.2 文件分类 272
9.2 文件类型的指针 274
9.2.1 引言 274
9.2.2 文件类型FILE 274
9.3 文件的打开与关闭 275
9.3.1 文件打开函数fopen() 275
9.3.2 文件关闭函数fclose)和fcloseall() 276
9.4 文件的顺序读写 277
9.4.1 字符输入/输出函数fgetc)和fputc() 277
9.4.2 字符串输入/输出函数fgets()和fputs() 281
9.4.3 数据块输入/输出函数fread()和fwrite) 283
9.4.4 格式化输入/输出函数fscanf()和fprintf) 285
9.5 文件的随机存取 287
9.5.1 文件定位 288
9.5.2 文件的随机写入 290
9.5.3 文件的随机读取 291
9.6 文件的检测 292
9.6.1 文件检测函数 292
9.6.2 文件检测应用实例 292
9.7 程序实例 294
本章小结 295
习题9 296
参考文献 297