目录 1
序 1
前言 1
第1章 程序设计及C语言概述 1
本章学习目标 1
1.1 程序设计的基本概念 1
1.1.1 程序和程序文件 1
1.1.2 程序设计和程序设计语言 1
1.2 算法 3
1.2.1 算法及其特征 3
1.2.2 算法设计的要求 3
1.2.3 算法的组成要素 4
1.2.4 算法的描述 4
1.3 C语言的特点 6
1.4 简单的C语言程序 7
1.5 C语言程序的开发 8
本章小结 10
习题一 10
第2章 数据描述与基本操作 11
本章学习目标 11
2.1 基本标识符 11
2.1.1 关键字 11
2.1.2 预定义标识符 12
2.1.3 用户定义标识符 12
2.2 基本数据类型 13
2.3 常量和变量 14
2.3.1 变量 14
2.3.2 常量 16
2.4 运算符与表达式 20
2.4.1 运算符与表达式简介 20
2.4.2 算术运算符与算术表达式 20
2.4.3 赋值运算符与赋值表达式 23
2.4.4 关系运算符与关系表达式 24
2.4.5 逻辑运算符与逻辑表达式 25
2.4.6 条件运算符与条件表达式 27
2.4.7 逗号运算符与逗号表达式 28
2.4.8 其他运算符 28
2.5 数据的类型转换 29
2.5.1 自动类型转换 29
2.5.2 强制类型转换 30
2.6 数据的输入和输出 30
2.6.1 字符输入输出函数 31
2.6.2 格式输入输出函数 32
2.7 应用举例 35
本章小结 38
习题二 38
3.1.1 顺序结构 42
3.1.2 选择结构 42
本章学习目标 42
3.1 C语言程序的三种基本结构 42
第3章 C语言程序的流程控制 42
3.1.3 循环结构 43
3.2 C语句概述 44
3.2.1 基本语句 44
3.2.2 复合语句 45
3.2.3 控制语句 45
3.3 选择结构程序设计 45
3.3.1 if语句(条件语句) 45
3.3.2 switch语句 49
3.4 循环结构的程序设计 52
3.4.1 for语句 52
3.4.2 while语句 53
3.4.3 do-while语句 54
3.4.4 循环语句的嵌套 55
3.5 流程转向语句 58
3.5.1 break语句和continue语句 58
3.5.2 return语句 60
3.6 典型应用算法 61
3.6.1 穷举算法 61
3.6.2 迭代算法 62
本章小结 65
习题三 66
第4章 数组 73
本章学习目标 73
4.1 一维数组 73
4.1.1 一维数组的定义 73
4.1.2 一维数组元素的引用 75
4.1.3 一维数组的初始化 76
4.1.4 一维数组应用举例 77
4.2 二维数组 84
4.2.1 二维数组的定义 84
4.2.2 二维数组元素的引用 85
4.2.3 二维数组的初始化 85
4.2.4 二维数组应用举例 87
4.3 字符数组与字符串 88
4.3.1 字符数组的定义和初始化 88
4.3.2 字符串的存储及字符串结束标志 90
4.3.3 字符串的输入和输出 91
4.3.4 字符串处理函数 92
4.3.5 字符数组应用举例 96
本章小结 98
习题四 99
5.1 模块化程序设计及C程序结构 103
5.1.1 模块化程序设计 103
本章学习目标 103
第5章 函数 103
5.1.2 C程序结构 104
5.2 函数定义 105
5.3 函数调用 106
5.3.1 函数调用的格式 106
5.3.2 函数调用的方式 106
5.3.3 函数的嵌套调用 108
5.3.4 递归函数及递归调用 111
5.4 函数原型 113
5.5 调用函数和被调用函数之间的数据传递 114
5.5.1 实参—形参之间的数据传递 115
5.5.2 函数调用结果的返回 118
5.6 变量的作用域及其存储类型 121
5.6.1 作用域和生存期 121
5.6.2 局部变量及其作用域和存储类型 122
5.6.3 全局变量及其作用域和存储类型 124
5.7 函数的作用域 128
5.7.1 内部函数 129
5.7.2 外部函数 129
5.8 函数应用举例 129
本章小结 135
习题五 136
第6章 编译预处理 142
本章学习目标 142
6.1 概述 142
6.2 宏定义 143
6.2.1 不带参数的宏定义 143
6.2.2 带参数的宏定义 145
6.3 文件包含 147
6.4 条件编译 149
6.4.1 #ifdef命令 149
6.4.2 #ifndef命令 150
6.4.3 #if命令 151
本章小结 152
习题六 153
第7章 指针 157
本章学习目标 157
7.1 指针概述 157
7.1.1 指针的基本概念 157
7.1.2 指针变量的定义及初始化 158
7.1.3 指向指针的指针 159
7.2 指针的赋值 160
7.3 指针的运算 162
7.3.1 指针运算符“*” 162
7.3.2 指针的算术运算 162
7.3.3 指针的关系运算 164
7.3.4 指针的强制类型转换 164
7.4.1 一维数组元素的指针访问方式 165
7.4 指针与数组 165
7.4.2 二维数组元素的指针访问方式 167
7.4.3 字符指针与字符串 170
7.4.4 指向一维数组的指针 173
7.4.5 指针数组 174
7.5 指针与函数 177
7.5.1 指针作为函数参数 177
7.5.2 指针函数 179
7.5.3 指向函数的指针 180
7.6 带参数的main函数及其应用 184
7.6.1 命令行参数 184
7.6.2 带参数的main函数 184
7.7 指针应用举例 185
本章小结 187
习题七 188
8.1.1 结构体类型的定义 194
8.1 结构体 194
本章学习目标 194
第8章 结构体、共用体和枚举 194
8.1.2 结构体类型变量的定义和初始化 196
8.1.3 结构体成员的引用 198
8.2 结构体和函数 200
8.2.1 结构体类型的变量作为函数参数 200
8.2.2 结构体类型的变量作为函数返回值 202
8.3 链表 202
8.3.1 链表的定义及基本结构 203
8.3.2 动态存储分配函数 204
8.3.3 链表的基本操作 205
8.4 共用体 209
8.4.1 共用体类型的定义 210
8.4.2 共用体变量的定义 210
8.4.3 共用体成员的引用 211
8.5.1 枚举类型和枚举型变量的定义 213
8.5 枚举 213
8.5.2 枚举型变量的使用 215
8.6 typedef类型定义 216
8.6.1 类型定义的基本格式 216
8.6.2 类型定义的使用说明 217
8.7 综合应用实例 218
本章小结 220
习题八 221
第9章 位运算 226
本章学习目标 226
9.1 概述 226
9.2 位运算 227
9.2.1 按位取反运算符 227
9.2.2 按位与运算符 227
9.2.3 按位或运算符 229
9.2.5 左移运算符 230
9.2.4 按位异或运算符 230
9.2.6 右移运算符 231
9.3 位运算应用举例 232
9.4 位段 233
本章小结 235
习题九 236
第10章 文件 238
本章学习目标 238
10.1 文件概述 238
10.1.1 文件 238
10.1.2 文件系统 240
10.2 文件指针和文件读写指针 241
10.2.1 文件指针 241
10.2.2 文件读写指针 241
10.3 文件的打开和关闭 242
10.3.1 文件的打开 242
10.3.2 文件的关闭 243
10.4 文件的读写 244
10.4.1 fputc函数和fgetc函数 244
10.4.2 fputs函数和fgets函数 247
10.4.3 fprintf函数和fscanf函数 248
10.4.4 fwrite函数和fread函数 250
10.5 文件的定位 252
10.5.1 fseek函数 252
10.5.2 rewind函数 253
10.5.3 ftell函数 253
10.5.4 文件的随机读写 254
10.6 错误处理 255
10.6.1 ferror函数 255
10.6.2 clearerr函数 256
10.7 文件的重定向 256
10.8 文件应用举例 257
本章小结 259
习题十 260
第11章 库函数及其应用 264
本章学习目标 264
11.1 Turbo C标准库 264
11.1.1 库文件和目标文件的比较 264
11.1.2 头文件 264
11.2 数学函数 265
11.2.1 三角函数 266
11.2.2 指数和函数 267
11.2.3 其他数学函数 268
11.3 字符串函数 269
11.3.1 字符串基本处理函数 270
113.2 字符串与数值转换函数 271
11.4 字符屏幕处理函数 272
11.4.1 字符窗口的定义 272
11.4.2 字符窗口颜色的设置 273
11.4.3 窗口字符的输入输出函数 275
11.4.4 窗口字符的其他处理函数 275
11.5 图形处理函数 277
11.5.1 图形模式的初始化 277
11.5.2 屏幕颜色的设置和清屏函数 279
11.5.3 基本图形函数 279
11.5.4 封闭图形的填充 281
11.5.5 图形窗口和图形屏幕操作函数 283
11.5.6 图形模式下的字符输出 285
本章小结 287
习题十一 287
附录Ⅰ 常用字符与ASCII码对照表 288
附录Ⅱ 运算符的优先级和结合方向 289
附录Ⅲ 库函数 290
参考文献 301