第1章 引言 3
1.1一个C语言程序 3
第一部分 基础篇 3
1.2程序与程序设计语言 5
1.2.1程序设计语言的功能 5
1.2.2程序设计语言的语法 6
1.2.3程序的编译与编程环境 9
1.3C语言的发展历史与特点 9
1.4实现问题求解的过程 10
习题1 14
第2章 用C语言编写程序 15
2.1在屏幕上显示HelloWorld! 15
2.2.2常量、变量和数据类型 17
2.2求华氏温度100°F对应的摄氏温度 17
2.2.1程序解析 17
2.2.3算术运算和赋值运算 18
2.2.4格式化输出函数printf() 19
2.3计算分段函数 20
2.3.1程序解析 20
2.3.2关系运算 21
2.3.3if-else语句 22
2.3.4格式化输入函数scanf() 23
2.3.5常用数学库函数 24
2.3.6else-if语句 25
2.4.1程序解析 27
2.4输出华氏—摄氏温度转换表 27
2.4.2for语句 28
2.4.3指定次数的循环程序设计 32
2.5计算12!/(5!+7!) 35
2.5.1程序解析 35
2.5.2函数的定义 37
2.5.3函数的调用 40
2.5.4使用函数编写程序 43
习题2 45
第3章 分支结构 47
3.1输入一批字符,统计各类字符的数量 47
3.1.1程序解析 47
3.1.2字符类型 48
3.1.3逻辑运算 49
3.1.4字符输入函数getchar()和字符输出函数putchar() 50
3.2使用switch语句统计字符 51
3.2.1程序解析 51
3.2.2switch语句 53
3.3分支结构程序设计 55
3.3.1二分支结构和基本的if语句 56
3.3.2多分支结构和嵌套的if语句、switch语句 58
习题3 61
第4章 循环结构 62
4.1用格里高利公式求π的近似值 62
4.1.1程序解析 62
4.1.2while语句 64
4.1.3输入一批学生的成绩,统计平均分 65
4.2统计一个整数的位数 66
4.2.1程序解析 66
4.2.2do-while语句 67
4.2.3循环语句的选择 68
4.3判断素数 69
4.3.1程序解析 69
4.3.2break语句和continue语句 70
4.4求1!+2!+…+100! 71
4.4.1程序解析 71
4.4.2嵌套循环 72
4.5循环结构程序设计 75
习题4 82
第5章 数据类型和表达式 85
5.1数据的存储和基本数据类型 86
5.1.1数据的存储 86
5.1.2基本数据类型 87
5.2常量和变量 89
5.2.1常量 89
5.2.2变量 92
5.3数据的输入和输出 94
5.3.1整型数据的输入和输出 94
5.3.2实型数据的输入和输出 95
5.3.3字符型数据的输入和输出 97
5.4.1自动类型转换 99
5.4类型转换 99
5.4.2强制类型转换 100
5.5表达式 101
5.5.1算术表达式 101
5.5.2赋值表达式 104
5.5.3关系表达式 105
5.5.4逻辑表达式 107
5.5.5条件表达式 109
5.5.6逗号表达式 110
5.5.7其他运算 110
5.5.8程序解析 111
习题5 112
6.1.1程序解析 118
第6章 数组 118
6.1排序问题 118
6.1.2一维数组的定义和引用 120
6.1.3一维数组的初始化 121
6.1.4使用一维数组编程 121
6.2找出矩阵中最大值所在的位置 127
6.2.1程序解析 127
6.2.2二维数组的定义和引用 128
6.2.3二维数组的初始化 129
6.2.4使用二维数组编程 130
6.3进制转换 133
6.3.1程序解析 133
6.3.2一维字符数组 134
6.3.3字符串 135
习题6 138
第7章 指针基础 142
7.1指针变量的定义 144
7.2指针的基本运算 146
7.3指针变量的初始化 150
7.4指针作为函数的参数 152
习题7 156
第8章 结构 161
8.1使用结构表示学生信息 162
8.1.1结构变量的定义 163
8.1.2结构变量的引用 165
8.1.3结构变量赋值 166
8.1.4结构的嵌套定义 168
8.2按成绩从高到低输出学生的信息 169
8.2.1程序解析 169
8.2.2结构数组 172
习题8 173
第二部分 提高篇 179
第9章 函数与程序结构 179
9.1函数的组织 179
9.1.1结构化程序设计方法 180
9.1.2函数的嵌套调用 183
9.1.3文件包含 183
9.1.4函数与程序文件模块 185
9.2递归函数 186
9.2.1递归函数基本概念 186
9.2.2递归程序设计 189
9.3变量与函数 191
9.3.1局部变量和全局变量 191
9.3.2变量生命周期和静态局部变量 194
9.3.3寄存器变量和外部变量 196
9.3.4全局变量与程序文件模块 197
9.4宏定义 197
9.4.1宏基本定义 197
9.4.2带参数的宏定义 199
9.5编译预处理 201
习题9 202
第10章 指针和数组 207
10.1指针和数组 207
10.1.1指针、数组和地址间的关系 208
10.1.2数组名作为函数的参数 210
10.1.3排序算法:冒泡排序 213
10.2指针和字符串 214
10.2.1常用的字符串处理函数 214
10.2.2字符串的指针表示 219
10.2.3字符数组和字符指针 221
10.3指针数组和指向指针的指针 227
10.3.1指针数组 227
10.3.2指向指针的指针 229
10.3.3指针数组、二维字符数组和字符串 232
*10.3.4命令行参数 239
10.4指针和函数 242
10.4.1指针作为函数的返回值 242
*10.4.2指向函数的指针 243
习题10 246
第11章 指针和结构及其他抽象数据类型 250
11.1指针和结构 251
11.1.1结构指针的概念和使用 251
11.1.2结构指针作为函数的参数 253
11.2.1单向链表的定义 257
11.2.2单向链表的常用操作 257
11.2单向链表 257
11.3关于结构的进一步说明 267
*11.4联合 268
11.4.1联合的定义 268
11.4.2联合变量的定义和引用 269
*11.5枚举 274
11.5.1枚举类型的定义 274
11.5.2枚举变量的定义和引用 274
11.6自定义类型(typedef) 276
11.7位运算与位段 278
11.7.1位运算及位运算符 278
*11.7.2位段 280
习题11 284
12.1文件的基本概念 291
第12章 文件 291
12.1.1文本文件和二进制文件 292
12.1.2缓冲文件系统 292
12.1.3缓冲文件与文件类型指针 293
12.2文件的打开与关闭 294
12.2.1打开文件 294
12.2.2关闭文件 296
12.3文件的读写 296
12.3.1字符文件读写 297
12.3.2数值文件读写 301
12.3.3二进制文件读写 302
12.3.4文件程序设计 302
习题12 303
*第13章 基本算法 305
13.1算法 305
13.2贪心法 309
13.3分治算法 311
13.4动态规划 313
13.5回溯法 318
附录1C语言上机操作指导 321
附录1.1C语言程序的上机步骤 321
附录1.2VisualC语言集成环境 322
附录2ASCII码集 329
附录3C语言中的关键字 330
附录4运算符优先级 331
附录5C语言常用库函数 332