第1章 引言 2
1.1一个C语言程序 2
1.2程序与程序设计语言 3
1.2.1程序与指令 3
1.2.2程序设计语言的功能 5
1.2.3程序设计语言的语法 7
1.2.4程序的编译与编程环境 10
1.3 C语言的发展历史与特点 11
1.4实现问题求解的过程 12
习题1 16
第2章 用C语言编写程序 18
2.1在屏幕上显示Hello World! 18
2.2求华氏温度100?对应的摄氏温度 20
2.2.1程序解析 20
2.2.2常量、变量和数据类型 21
2.2.3算术运算和赋值运算 22
2.2.4格式化输出函数printf () 23
2.3计算分段函数 24
2.3.1程序解析 24
2.3.2关系运算 25
2.3.3 if-else语句 26
2.3.4格式化输入函数scanf () 27
2.3.5常用数学函数 28
2.4输出华氏-摄氏温度转换表 30
2.4.1程序解析 30
2.4.2 for语句 32
2.4.3指定次数的循环程序设计 34
2.5生成乘方表与阶乘表 38
习题2 41
第3章 分支结构 44
3.1简单的猜数游戏 44
3.1.1程序解析 44
3.1.2二分支结构和if-else语句 45
3.1.3多分支结构和else-if语句 47
3.2四则运算 49
3.2.1程序解析 49
3.2.2字符型数据 50
3.2.3字符型数据的输入和输出 51
3.2.4逻辑运算 52
3.3查询自动售货机中商品的价格 55
3.3.1程序解析 55
3.3.2 switch语句 57
3.3.3多分支结构 60
习题3. 63
第4章 循环结构 68
4.1用格雷戈里公式求π的近似值 68
4.1.1程序解析 68
4.1.2 while语句 69
4.2统计一个整数的位数 72
4.2.1程序解析 72
4.2.2 do-while语句 73
4.3判断素数 74
4.3.1程序解析 74
4.3.2 break语句和continue语句 75
4.4求1!+2!+…+100! 78
4.4.1程序解析 78
4.4.2嵌套循环 79
4.5循环结构程序设计 82
习题4 88
第5章 函数 96
5.1计算圆柱体积 96
5.1.1程序解析 96
5.1.2函数的定义 97
5.1.3函数的调用 98
5.1.4函数程序设计 101
5.2数字金字塔 103
5.2.1程序解析 103
5.2.2不返回结果的函数 104
5.2.3结构化程序设计思想 105
5.3复数运算 107
5.3.1程序解析 107
5.3.2局部变量和全局变量 108
5.3.3变量生存周期和静态局部变量 112
习题5 115
第6章 回顾数据类型和表达式 120
6.1数据的存储和基本数据类型 120
6.1.1数据的存储 120
6.1.2基本数据类型 122
6.2数据的输入和输出 125
6.2.1整型数据的输入和输出 125
6.2.2实型数据的输入和输出 127
6.2.3字符型数据的输入和输出 128
6.3类型转换 129
6.3.1自动类型转换 130
6.3.2强制类型转换 130
6.4表达式 131
6.4.1算术表达式 131
6.4.2赋值表达式 133
6.4.3关系表达式 134
6.4.4逻辑表达式 136
6.4.5条件表达式 139
6.4.6逗号表达式 139
6.4.7位运算 140
6.4.8其他运算 142
6.4.9程序解析 143
习题6. 144
第7章 数组 148
7.1输出所有大于平均值的数 148
7.1.1程序解析 148
7.1.2一维数组的定义和引用 149
7.1.3一维数组的初始化 151
7.1.4使用一维数组编程 152
7.2找出矩阵中最大值所在的位置 159
7.2.1程序解析 159
7.2.2二维数组的定义和引用 160
7.2.3二维数组的初始化 161
7.2.4使用二维数组编程 162
7.3判断回文 166
7.3.1程序解析 166
7.3.2一维字符数组 167
7.3.3字符串 168
7.3.4使用字符串编程 169
习题7 174
第8章 指针 180
8.1密码开锁 180
8.1.1程序解析 180
8.1.2地址和指针 181
8.1.3指针变量的定义 182
8.1.4指针的基本运算 184
8.1.5指针变量的初始化 186
8.2角色互换 187
8.2.1程序解析 187
8.2.2指针作为函数的参数 188
8.3冒泡排序 191
8.3.1程序解析 191
8.3.2指针、数组和地址间的关系 192
8.3.3数组名作为函数的参数 196
8.3.4冒泡排序算法分析 199
8.4电码加密 200
8.4.1程序解析 200
8.4.2字符串和字符指针 201
8.4.3常用的字符串处理函数 203
8.5任意个整数求和 208
8.5.1程序解析 208
8.5.2用指针实现内存动态分配 209
习题8. 211
第9章 结构 218
9.1输出平均分最高的学生信息 218
9.1.1程序解析 218
9.1.2结构的概念与定义 219
9.1.3结构的嵌套定义 220
9.1.4结构变量的定义和初始化 221
9.1.5结构变量的使用 223
9.2学生成绩排序 224
9.2.1程序解析 224
9.2.2结构数组操作 226
9.3修改学生成绩 227
9.3.1程序解析 227
9.3.2结构指针的概念 229
9.3.3结构指针作为函数参数 230
习题9. 230
第10章 函数与程序结构 236
10.1圆形体体积计算器 236
10.1.1程序解析 236
10.1.2函数的嵌套调用 238
10.2汉诺塔问题 240
10.2.1问题解析 240
10.2.2递归函数基本概念 241
10.2.3递归程序设计 244
10.3长度单位转换 246
10.3.1程序解析 246
10.3.2宏基本定义 247
10.3.3带参数的宏定义 248
10.3.4文件包含 249
10.3.5编译预处理 252
10.4大程序构成——多文件模块的学生信息库系统 253
10.4.1分模块设计学生信息库系统 253
10.4.2程序文件模块 257
10.4.3文件模块间的通信 257
习题10. 259
第11章 指针进阶 264
11.1奥运五环色 264
11.1.1程序解析 264
11.1.2指针数组的概念 265
11.1.3指向指针的指针 266
11.1.4用指针数组处理多个字符串 269
11.1.5命令行参数 273
11.2字符定位 276
11.2.1程序解析 276
11.2.2指针作为函数的返回值 278
11.2.3指向函数的指针 278
11.3用链表构建学生信息库 281
11.3.1程序解析 281
11.3.2链表的概念 285
11.3.3单向链表的常用操作 286
习题11. 290
第12章 文件 298
12.1学生成绩文件统计 298
12.1.1程序解析 298
12.1.2文件的概念 299
12.1.3文本文件和二进制文件 300
12.1.4缓冲文件系统 300
12.1.5文件结构与文件类型指针 301
12.1.6文件控制块 303
12.1.7文件处理步骤 304
12.2用户信息加密和校验 305
12.2.1程序解析 305
12.2.2打开文件和关闭文件 306
12.2.3文件读写 309
12.2.4其他相关函数 317
12.3文件综合应用:资金账户管理 318
12.3.1顺序文件和随机文件 318
12.3.2个人资金账户管理 319
习题12 323
附录A C语言基本语法 325
附录B ASCII码集 353
附录CPTA使用说明 357
参考文献 362