第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 算法的表示 6
1.3 构化程序设计方法 9
1.3.1 程序的三种基本结构 9
1.3.2 自顶而下的设计方法 10
1.3.3 程序设计的风格 10
1.4 本章小结 12
习题一 13
第2章 C语言概述 14
2.1 C语言概况 14
2.1.1 C语言的发展 14
2.1.2 C语言的特点 15
2.2 C程序的基本结构 16
2.2.1 两个简单的C程序实例 16
2.2.2 C程序的基本组成 17
2.3 C语言的基本组成 18
2.3.1 基本字符集 19
2.3.2 标识符 19
2.3.3 关键宇 20
2.3.4 语句 20
2.3.5 标准库函数 20
2.4 C程序的上机执行过程 21
2.4.1 C程序的上机执行过程 21
2.4.2 WinTC使用初步 22
2.5 本章小结 24
习题二 24
第3章 数据类型与运算规则 26
3.1 数据与数据类型 26
3.1.1 什么是数据和数据类型 26
3.1.2 C语言中的数据类型 26
3.2 常量与变量 27
3.2.1 常量 27
3.2.2 符号常量 28
3.2.3 变量 28
3.2.4 变量的定义 29
3.3 C语言的基本数据类型及其表示 30
3.2.1 整型数据及其表示 31
3.2.2 实型数据及其表示 35
3.2.3 字符型数据及其表示 37
3.4 算术运算与赋值运算 40
3.4.1 C语言中的运算规则 40
3.4.2 算术运算符与算术表达式 42
3.4.3 自加、自减运算 43
3.4.4 赋值运算符和赋值表达式 44
3.4.5 组合赋值运算符和组合赋值表达式 45
3.5 关系运算与逻辑运算 46
3.5.1 关系运算符与关系表达式 46
3.5.2 逻辑运算符与逻辑表达式 47
3.5.3 条件运算符与条件表达式 48
3.6 位运算 49
3.6.1 位运算符 50
3.6.2 按位逻辑运算 50
3.6.3 移位运算 51
3.6.4 位运算赋值运算符 52
3.7 其他运算 52
3.7.1 逗号运算符 52
3.7.2 “.”和“->”运算符 52
3.7.3 “()”和“[]”运算符 53
3.7.4 “*”和“&”运算符 53
3.7.5 (type)运算符 53
3.7.6 sizeof运算符 54
3.8 混合运算及数据类型转换 54
3.8.1 混合运算 54
3.8.2 数据类型转换 54
3.9 本章小结 55
习题三 56
第4章 顺序结构程序设计 60
4.1 语句和注释 60
4.2 顺序结构程序设计 61
4.2.1 变量定义及初始化 61
4.2.2 赋值语句和表达式语句 61
4.2.3 格式化输出函数printf 62
4.2.4 格式化输入函数scanf 65
4.2.5 字符输入输出函数 66
4.3 程序举例 67
4.4 本章小结 68
习题四 69
第5章 选择结构程序设计 71
5.1 if语句 71
5.1.1 if语句的一般结构 71
5.1.2 if语句的嵌套 73
5.2 switch语句结构 75
习题五 79
第6章 循环结构程序设计 83
6.1 while循环结构 83
6.2 do…while循环 84
6.3 for循环 85
6.4 循环结构嵌套 87
6.5 continue语句和break语句 90
6.5.1 comtinue 90
6.5.2 break语句 90
6.6 goto语句 91
习题六 91
第7章 数组 98
7.1 一维数组 98
7.1.1 一维数组的定义 98
7.1.2 数组元素的赋值 99
7.1.3 一维数组元素的引用 99
7.1.4 一维数组的应用 100
7.2 二维数组 102
7.2.1 二维数组的定义和赋值 102
7.2.2 二维数组的引用 103
7.3 字符数组 105
7.3.1 字符数组的定义和赋值 105
7.3.2 字符串与字符数组 105
7.3.3 字符数组的引用 107
7.3.4 字符串处理函数 108
7.3.5 二维字符数组 110
7.4 本章小结 111
习题七 112
第8章 函数 118
8.1 函数定义和函数调用 118
8.1.1 函数定义 118
8.1.2 return语句 120
8.1.3 函数调用 120
8.1.4 函数声明 122
8.2 函数间的参数传递 123
8.2.1 函数调用过程及参数传递 123
8.2.2 传数值 124
8.2.3 传地址 126
8.2.4 参数求值顺序 130
8.3 函数嵌套调用和递归调用 131
8.3.1 函数嵌套调用 131
8.3.2 递归调用 132
8.4 变量的作用域和变量存储类别 136
8.4.1 全局变量和局部变量 136
8.4.2 变量的存储类别 139
8.5 本章小结 142
习题八 144
第9章 指针 147
9.1 地址和指针的基本概念 147
9.1.1 地址和指针 147
9.1.2 指针变量的定义和初始化 148
9.1.3 指针的间接引用 149
9.1.4 指针的基本运算 151
9.2 指针与函数参数 155
9.2.1 指针变量作为函数参数的引用举例 155
9.3 指针与一维数组 158
9.3.1 指向数组元素的指针 158
9.3.2 通过指针引用数组元素 158
9.3.3 数组名作函数参数 162
9.3.4 程序举例 164
9.4 指针与二维数组 165
9.5 指针与字符串 167
9.6 指针数组和多级指针 171
9.6.1 指针数组的概念 171
9.6.2 指向指针的指针 172
9.6.3 程序举例 173
9.7 函数与指针 174
9.7.1 指针作为函数的返回值 174
9.7.2 指向函数的指针 173
9.7.3 函数指针作为函数的参数 177
9.8 本章小结 178
习题九 178
第10章 结构体和共用体 182
10.1 结构体 182
10.1.1 结构体的定义 182
10.1.2 结构体变量的定义 183
10.1.3 结构体变量的引用 185
10.1.4 结构体数组 187
10.1.5 结构体指针 192
10.1.6 结构体类型的数据在函数间的传递 195
10.2 共用体 197
10.2.1 共用体类型定义 197
10.2.2 共用体类型变量 198
10.2.3 共用体类型的特点 198
10.2.4 共用体变量的引用 199
10.3 枚举类型和自定义类型 201
10.3.1 枚举类型的定义和枚举变量的说明 202
10.3.2 枚举类型变量的赋值和使用 202
10.3.3 自定义类型 204
10.4 具体应用实例 205
10.5 本章小结 211
习题十 211
第11章 文件 214
11.1 文件概述 214
11.1.1 文件的分类 214
11.1.2 文件指针 215
11.2 文件的打开与关闭 215
11.2.1 文件打开函数fopen 215
11.2.2 文件关闭函数fclose 217
11.3 文件的读写操作 218
11.3.1 字符读写函数:fgetc和fpute 218
11.3.2 字符串读写函数:fgets和fputs 222
11.3.3 数据块读写函数:fread和fwrite 224
11.3.4 格式化读写函数:fscanf和fprinf 225
11.4 文件的其他常用函数 227
11.4.1 文件的随机读写rewind函数和fseek函数 227
11.4.2 文件检测函数 229
11.4.3 C库文件 229
11.5 本章小结 230
习题十一 231
附录一 ASCII码表 233
附录二 运算符的优先级和结合性 234
附录三 常用函数库 236
参考文献 240