第1章 C语言程序设计概述 1
学习意义 1
学习目标 1
1.1编程的预备工作 1
1.1.1学习编程的心理准备 1
1.1.2认识编程 2
1.1.3数据在计算机中的存储形式 2
1.2程序设计语言的基础 5
1.2.1程序设计语言的发展 5
1.2.2程序设计语言的特点及发展趋势 8
1.2.3程序设计的基本过程 9
1.3结构化程序设计 12
1.3.1什么是结构化程序设计 12
1.3.2结构化程序设计的基本原则 13
1.3.3结构化程序设计的基本结构 13
1.3.4结构化程序设计的基本特点 14
1.4 C语言的发展历史及特点 14
1.4.1 C语言的发展历史 14
1.4.2 C语言的特点 16
1.4.3 C语言的应用 17
1.5开发环境简介 17
1.5.1 Turbo C开发环境 17
1.5.2 Dev-C++开发环境 18
1.5.3 VC++6.0开发环境 18
1.6编制C语言程序的基本步骤 19
1.7本章小结 22
习题 22
第2章 C语言源程序的基本结构 24
学习意义 24
学习目标 24
2.1源程序的基本结构 24
2.1.1认识C语言源程序 24
2.1.2源程序的基本结构 26
2.2源程序的标识符 27
2.3源程序的基本语句 28
2.4带参数的main函数 29
2.5由多个文件构成的源程序 30
2.6本章小结 33
2.6.1知识梳理 33
2.6.2如何编程 33
习题 33
第3章 基本数据类型、运算符和表达式 36
学习意义 36
学习目标 36
3.1 C语言的数据类型 36
3.2数据的表现形式 37
3.2.1常量 37
3.2.2变量 39
3.3基本数据类型 39
3.3.1整型数据 40
3.3.2实型数据 43
3.3.3字符型数据 44
3.3.4字符串常量 46
3.4常用运算符与表达式 47
3.4.1算术运算符及其表达式 47
3.4.2自增自减运算符、负号运算符 48
3.4.3赋值运算符及其表达式 49
3.4.4强制类型转换运算符 50
3.4.5逗号运算符及其表达式 51
3.4.6 sizeof运算符 51
3.5常见数学运算表达式在C语言中的表示 52
3.6本章小结 52
3.6.1知识梳理 52
3.6.2常见错误集锦 52
习题 54
第4章 顺序结构程序设计 57
学习意义 57
学习目标 57
4.1程序的3种基本结构 57
4.2顺序结构程序设计的思想 58
4.3实现顺序结构程序设计的基本语句 59
4.3.1赋值语句 59
4.3.2数据的基本输入与输出 59
4.4顺序结构程序设计的典型应用 66
4.4.1数字分离问题 66
4.4.2图形的面积等计算问题 67
4.4.3数的交换问题 68
4.4.4大小写转换问题 69
4.5本章小结 69
4.5.1知识梳理 69
4.5.2常见错误集锦 70
习题 71
第5章 选择结构程序设计 73
学习意义 73
学习目标 73
5.1关系运算符、逻辑运算符和条件运算符 73
5.1.1关系运算符及其表达式 73
5.1.2逻辑运算符及其表达式 74
5.1.3条件运算符及其表达式 76
5.2选择结构程序设计 76
5.2.1 if语句 76
5.2.2 switch语句 82
5.3选择结构程序设计的典型应用 84
5.3.1数的最值问题 84
5.3.2方程根问题 85
5.3.3奖金问题 87
5.3.4运算器问题 89
5.4本章小结 91
5.4.1知识梳理 91
5.4.2常见错误集锦 93
习题 96
第6章 循环结构程序设计 102
学习意义 102
学习目标 102
6.1循环结构程序设计 102
6.1.1 for语句 103
6.1.2 while语句 105
6.1.3 do-while语句 107
6.1.4 goto语句 108
6.1.5 for语句的其他格式 109
6.1.6循环嵌套 111
6.1.7 break语句与continue语句 114
6.2循环结构语句的选择 117
6.3循环结构程序设计的典型应用 118
6.3.1累加或累乘问题 118
6.3.2数的判断问题 120
6.3.3经典数学问题 121
6.3.4图形输出问题 123
6.4本章小结 126
6.4.1知识梳理 126
6.4.2常见错误集锦 126
习题 127
第7章 数组 132
学习意义 132
学习目标 132
7.1一维数组 132
7.1.1一维数组的定义和引用 132
7.1.2一维数组的初始化 133
7.2二维数组 136
7.2.1二维数组的定义和引用 136
7.2.2二维数组的初始化 137
7.3字符串与字符数组 144
7.3.1字符数组的定义和引用 144
7.3.2字符数组的赋值 144
7.3.3常用字符串处理函数 144
7.4数组的典型应用 147
7.4.1最大值和最小值问题 147
7.4.2杨辉三角形问题 148
7.4.3矩阵运算问题 150
7.4.4字符串处理问题 152
7.5本章小结 153
7.5.1知识梳理 153
7.5.2常见错误集锦 154
习题 154
第8章 函数 159
学习意义 159
学习目标 159
8.1函数概述 159
8.2函数的定义与调用 160
8.2.1无参数无返回值的函数 161
8.2.2无参数有返回值的函数 164
8.2.3有参数无返回值的函数 165
8.2.4有参数有返回值的函数 166
8.3函数参数的传递方式 168
8.4函数的嵌套与递归调用 170
8.5变量的作用域与生存期和存储类型 174
8.5.1变量的作用域和生存期的概念 174
8.5.2局部变量的作用域和生存期 175
8.5.3 全局变量的作用域和生存期 176
8.6变量的存储类型 176
8.7函数的作用域 180
8.8 函数的典型应用 181
8.8.1数的最值问题 181
8.8.2最大公约数和最小公倍数问题 182
8.8.3阶乘问题 183
8.8.4汉诺塔问题 184
8.9本章小结 186
8.9.1知识梳理 186
8.9.2常见错误集锦 186
习题 187
第9章 指针 194
学习意义 194
学习目标 194
9.1指针的基本概念 194
9.1.1指针与指针变量的概念 194
9.1.2指针变量的定义和引用 195
9.1.3指针的基本运算 197
9.1.4变量的指针与指向变量的指针变量 199
9.1.5一维数组的指针与指向一维数组的指针变量 200
9.1.6字符数组的指针与指向字符数组的指针变量 201
9.1.7指针作为函数的参数 203
9.2指针进阶 205
9.2.1指针与动态内存分配 205
9.2.2数组指针 206
9.2.3指针数组 208
9.2.4指针函数与函数指针 210
9.2.5多级指针 211
9.3指针的典型应用 212
9.3.1任意个整数求和问题 212
9.3.2冒泡排序问题 213
9.3.3多个城市地名排名问题 215
9.4本章小结 216
9.4.1知识梳理 216
9.4.2常见错误集锦 217
习题 218
第10章 用户自定义数据类型 223
学习意义 223
学习目标 223
10.1结构体 223
10.1.1结构体类型的定义 223
10.1.2结构体变量的定义 224
10.1.3结构体变量的引用和赋值 225
10.1.4结构体数组 229
10.1.5结构体和指针 233
10.2线性链表 234
10.2.1线性链表及其结构 234
10.2.2线性链表的基本操作 235
10.3共用体 237
10.3.1共同体类型的定义 237
10.3.2共用体变量的定义和引用 238
10.3.3共用体变量的赋值 239
10.4枚举类型变量的定义和引用 241
10.5类型定义 245
10.6用户自定义数据类型的典型应用——学生信息的基本操作 247
10.7本章小结 253
10.7.1知识梳理 253
10.7.2常见错误集锦 254
习题 254
第11章 文件 257
学习意义 257
学习目标 257
11.1文件概述 257
11.1.1文件的概念 257
11.1.2文件的分类 258
11.1.3文件的处理方法 259
11.2文件的打开与关闭 259
11.2.1文件指针 259
11.2.2文件的打开 260
11.2.3文件的关闭 261
11.2.4 exit()函数 262
11.3文件读写 262
11.3.1文件读写函数 262
11.3.2文件读写函数选用原则 271
11.4文件的定位与随机读写 271
11.5文件的出错检测 274
11.6文件的典型应用——文件复制 275
11.7本章小结 277
11.7.1知识梳理 277
11.7.2常见错误集锦 277
习题 278
第12章 预处理命令 280
学习意义 280
学习目标 280
12.1文件包含命令 280
12.2宏定义 282
12.3条件编译 284
12.4本章小结 286
12.4.1知识梳理 286
12.4.2常见错误集锦 287
习题 287
附录 288
附录1 ASCII码对照表 288
附录2 C语言的保留字 290
附录3 常见的C语言库函数 291
附录4 编译常见错误中英文对照表 297
参考文献 302