目录 1
第1章 程序设计基础 1
1.1 计算机基础 1
1.1.1 计算机硬件系统 1
1.1.2 计算机软件系统 2
1.2 程序设计发展史 4
1.2.1 程序设计语言的进化 4
1.2.2 结构化程序设计 5
1.2.3 面向对象程序设计 7
1.3 程序设计基础 10
1.3.1 程序及算法 10
1.3.2 算法的特征和描述 12
1.3.3 算法与程序设计 14
1.4 C程序设计语言概述 17
1.4.1 C程序设计语言的发展 17
1.4.2 C程序设计语言的基本特征 18
1.4.3 C程序的基本结构 19
1.4.4 C程序的执行 21
习题一 24
第2章 常量、变量、数据类型、运算符和表达式 25
2.1 常量和变量 25
2.1.1 标识符与关键字 25
2.1.2 常量和变量 26
2.2.1 整型数据 27
2.2 数据类型 27
2.2.2 实型数据 29
2.2.3 字符型数据 30
2.3 运算符 33
2.3.1 算术运算符 33
2.3.2 自增、自减运算符 34
2.3.3 赋值运算符 36
2.3.4 关系运算符 37
2.3.5 逻辑运算符 38
2.3.6 逗号运算符 39
2.3.7 运算符的优先级和结合性 39
2.4.1 算述表达式 40
2.4 表达式 40
2.4.2 赋值表达式 41
2.4.3 关系表达式 42
2.4.4 逻辑表达式 43
2.4.5 逗号表达式 44
2.4.6 条件表达式 45
2.5 数据类型转换 46
2.5.1 自动类型转换 46
2.5.2 强制类型转换 47
2.6 位运算 49
习题二 52
3.1 C语句概述 55
第3章 C语言语句与程序设计的3种基本结构 55
3.2 顺序结构程序设计 56
3.2.1 表达式语句 56
3.2.2 数据的输出 57
3.2.3 数据的输入 62
3.2.4 复合语句 68
3.2.5 顺序程序设计 69
3.3 分支程序设计 71
3.3.1 if语句 71
3.3.2 switch语句 74
3.3.3 break语句 75
3.3.4 条件运算符 76
3.3.5 分支程序设计 77
3.4 循环程序设计 81
3.4.1 for语句 81
3.4.2 while语句 85
3.4.3 do-while语句 87
3.4.4 循环嵌套 90
3.4.5 continue语句 93
3.4.6 break语句的进一步说明 95
3.4.7 循环程序设计 96
3.5 综合举例 99
习题三 102
4.1 函数概述 104
第4章 函数 104
4.2 函数定义 106
4.2.1 函数的定义形式 106
4.2.2 空函数 108
4.3 函数参数与函数的返回值 108
4.3.1 形式参数与实在参数 108
4.3.2 函数的返回值 110
4.4 函数的调用 110
4.4.1 函数调用 110
4.4.2 函数调用规则 111
4.5 函数的嵌套调用和递归调用 113
4.5.1 函数的嵌套调用 114
4.5.2 函数的递归调用 116
4.6 变量作用域 119
4.6.1 局部变量 119
4.6.2 全局变量 120
4.7 变量存储类别与生存周期 122
4.7.1 静态存储变量 123
4.7.2 动态存储变量 124
4.7.3 全局变量的存储类别 125
4.7.4 变量的生存周期 126
4.8 内部函数和外部函数 127
4.8.1 内部函数 127
4.8.2 外部函数 128
4.9 函数的综合举例 130
习题四 138
5.1 数组概述 140
5.2 一维数组 140
5.2.1 一维数组的定义 140
第5章 数组 140
5.2.2 一维数组的存储结构 141
5.2.3 一维数组的引用 141
5.2.4 一维数组的输入输出 142
5.2.5 一维数组的初始化 143
5.2.6 一维数组程序举例 144
5.3 二维数组 150
5.3.1 二维数组的定义 150
5.3.3 二维数组的初始化 153
5.3.2 二维数组的引用 153
5.3.4 二维数组程序举例 154
5.4 字符数组 158
5.4.1 字符数组的定义 158
5.4.2 字符数组的初始化 159
5.4.3 字符数组的引用 160
5.4.4 字符数组的输入输出 161
5.4.5 字符串处理函数 162
5.4.6 程序举例 164
5.5 数组作为函数参数 166
5.5.1 数组元素作函数参数 166
5.5.2 数组名作函数参数 167
5.5.3 多维数组作参数 173
5.6 数组应用综合举例 174
习题五 179
第6章 指针 184
6.1 指针的概念 184
6.2 指针变量 185
6.2.1 指针变量的定义 185
6.2.2 指针变量的引用 186
6.2.3 指针变量的运算 187
6.2.4 指针变量作为函数参数 193
6.3.1 指针与数组的关系 195
6.3 数组与指针 195
6.3.2 指向数组元素的指针 196
6.3.3 指针与一维数组 196
6.3.4 指针与多维数组 198
6.4 字符串与指针 201
6.5 函数与指针 204
6.5.1 指向函数的指针 204
6.5.2 把指向函数的指针变量作为函数参数 205
6.5.3 返回值为指针的函数 207
6.6 指针数组和指向指针的指针 209
6.6.1 指针数组的概念 209
6.6.2 指向指针的指针 212
6.7 综合举例 214
习题六 221
第7章 结构体与共用体 224
7.1 结构体的概念与定义 224
7.1.1 结构体的定义 224
7.1.2 结构体变量的定义 226
7.1.3 结构体变量的引用 227
7.1.4 结构体变量的初始化 229
7.2 结构体数组 231
7.2.1 结构体数组的定义 231
7.2.2 结构体数组的初始化与引用 232
7.3 结构体与指针 235
7.3.1 结构体变量与指针 236
7.3.2 结构体数组与指针 237
7.4 结构体作为函数参数 241
7.4.1 结构体变量作为函数参数 241
7.4.2 指向结构体变量的指针作为函数参数 242
7.5 动态数据结构——链表 243
7.5.1 链表的建立 244
7.5.2 链表的遍历 248
7.5.3 链表的插入与删除 249
7.6 共用体 254
7.6.1 共用体变量的定义 254
7.6.2 共用体变量的引用 256
7.7 位段 260
7.8 用typedef定义类型 262
7.9 综合应用举例 264
习题七 266
第8章 文件 268
8.1 文件的概念与定义 268
8.2 文件类型指针 270
8.3 文件的打开与关闭 271
8.3.1 文件的打开(fopen函数) 271
8.3.2 文件的关闭(fclose函数) 273
8.4 文件的读写 273
8.4.1 fputc函数和fgetc函数(putc函数和getc函数) 273
8.4.2 fread()函数和fwrite()函数 277
8.4.3 fprintf函数和fscanf函数 280
8.4.4 其他读写函数 282
8.5 文件的定位 284
8.5.1 rewind()函数 284
8.5.2 fseek()函数和随机读写 284
8.5.3 ftell()函数 286
8.6 综合应用举例 286
习题八 288
第9章 编译预处理 289
9.1 宏定义 289
9.2 “文件包含”处理 296
9.3 条件编译 298
习题九 301