第1章 程序及其执行 1
本章知识结构图 1
本章学习导读 1
1.1 程序 2
1.2 程序设计语言 3
1.2.1 几种常用的高级语言 3
1.2.2 C语言的词法记号 4
1.3 C语言程序的基本结构 8
1.4 C语言程序上机运行四部曲 10
1.5 习题1 11
1.6 实验1 学习Dev-C++开发环境实验(2学时) 12
1.7 阅读延伸 12
1.7.1 为什么要学习C语言 12
1.7.2 Dev-C+4集成开发环境 15
第2章 如何设计C程序 19
本章知识结构图 19
本章学习导读 19
2.1 程序设计的关键——设计一个好的算法 20
2.1.1 算法及其特性 20
2.1.2 算法、数据结构和程序 23
2.1.3 算法的分类 25
2.1.4 算法的表示形式 26
2.2 结构化程序设计方法 28
2.3 程序设计过程——程序开发5步骤 29
2.4 习题2 31
2.5 实验2 C程序开发过程实验(2学时) 32
2.6 阅读延伸 33
2.6.1 程序设计风格 33
2.6.2 学习程序设计的目的——培养计算思维能力 36
2.6.3 怎样学好程序设计 37
第3章 顺序结构 39
本章知识结构图 39
本章学习导读 40
3.1 顺序结构的思想方法 40
3.2 C语言的数据及其运算 41
3.2.1 常量 41
3.2.2 变量 44
3.2.3 运算表达式 48
3.3 数据处理——赋值语句 51
3.4 数据输出——格式化输出库函数printf 53
3.5 数据输入——格式化输入库函数scanf 55
3.6 顺序结构的应用 58
3.6.1 职工工资问题 58
3.6.2 两个数交换问题 59
3.7 习题3 59
3.8 实验3 顺序结构程序设计实验(2学时) 60
3.9 阅读延伸 62
3.9.1 字符数据的输入和输出库函数 62
3.9.2 各种基本类型的变量定义 64
3.9.3 数据的机内形式和机外形式 65
3.9.4 sizeof运算符 66
3.9.5 数据类型转换 67
3.9.6 C语言程序预处理命令 68
第4章 选择结构 72
本章知识结构图 72
本章学习导读 72
4.1 逻辑选择的思想方法 73
4.2 if语句与条件判断 75
4.2.1 if语句的一般形式 75
4.2.2 关系运算 76
4.2.3 逻辑运算 77
4.3 三种选择结构 80
4.3.1 用if语句实现单路选择结构 80
4.3.2 用if语句实现双路选择结构 81
4.3.3 用if语句实现多路选择结构 82
4.4 switch语句与多路选择结构 84
4.5 选择结构的应用 87
4.5.1 书店收银问题 87
4.5.2 三个数的排序问题 88
4.6 习题4 90
4.7 实验4 选择结构程序设计实验(4学时) 91
4.8 阅读延伸 96
第5章 循环结构 98
本章知识结构图 98
本章学习导读 98
5.1 循环控制的思想方法 99
5.2 三种循环控制语句 100
5.2.1 while语句 100
5.2.2 do…while语句 102
5.2.3 for语句 103
5.3 两种循环结构——计数型和非计数型 105
5.4 循环结构的嵌套 107
5.5 循环结构中的两个辅助控制语句 108
5.6 循环结构的应用 111
5.6.1 出租车计价问题 111
5.6.2 图形输出问题 112
5.7 习题5 114
5.8 实验5 循环结构程序设计实验(6学时) 117
5.9 阅读延伸 121
5.9.1 迭代问题 121
5.9.2 递推问题 121
5.9.3 穷举问题 124
第6章 数组变量 129
本章知识结构图 129
本章学习导读 129
6.1 为什么要使用数组 130
6.2 一维数组的定义和使用 131
6.3 一维数组编程举例 133
6.4 二维数组的定义和使用 136
6.5 二组数组编程举例 139
6.6 字符数组的定义和使用 141
6.6.1 字符数组和字符串 141
6.6.2 字符数组的定义 142
6.6.3 字符数组的使用 143
6.7 字符数组编程举例 147
6.8 习题6 148
6.9 实验6 数组与字符串实验(6学时) 150
6.10 阅读延伸 154
6.10.1 数组综合应用——歌手评分问题 154
6.10.2 二维数组的物理结构 156
第7章 函数 158
本章知识结构图 158
本章学习导读 158
7.1 为什么要使用函数 159
7.2 如何使用函数 161
7.2.1 函数定义 161
7.2.2 函数调用 162
7.2.3 函数原型 164
7.3 函数嵌套调用 165
7.4 数组名做函数参数问题 166
7.4.1 数组名参数的传址方式 166
7.4.2 参数中不指定数组元素个数 168
7.4.3 多维数组作为函数参数 171
7.5 变量的作用域和生存期 172
7.6 习题7 174
7.7 实验7 模块化程序设计实验(6学时) 175
7.8 阅读延伸 178
7.8.1 模块化程序设计应用——歌手评分问题 178
7.8.2 函数的递归调用 180
7.8.3 变量的存储类别 184
7.8.4 函数的存储类别 191
7.8.5 C语言程序的内存布局 192
第8章 指针变量 196
本章知识结构图 196
本章学习导读 196
8.1 指针变量概述 197
8.1.1 什么是指针变量 197
8.1.2 如何定义和使用指针变量 197
8.2 数组指针变量 201
8.2.1 一维数组元素的指针变量 201
8.2.2 二维数组元素的指针变量 205
8.3 字符串指针变量 207
8.4 指针变量做函数参数 209
8.5 指针函数 218
8.6 指针数组 220
8.7 习题8 223
8.8 实验8 指针编程实验(4学时) 226
8.9 阅读延伸 228
8.9.1 二维数组的行指针变量 228
8.9.2 函数指针变量 231
8.9.3 多级指针变量 233
8.9.4 main函数参数 235
8.9.5 动态内存分配问题 236
第9章 用户构造数据类型 239
本章知识结构图 239
本章学习导读 239
9.1 结构类型 240
9.1.1 结构类型的定义 240
9.1.2 结构变量的定义 241
9.1.3 结构变量的使用 243
9.1.4 结构指针变量 246
9.2 结构数组 248
9.2.1 定义结构数组 248
9.2.2 结构数组的初始化 249
9.2.3 结构数组的指针变量 249
9.2.4 结构数组指针做函数参数 251
9.3 用户自定义类型 252
9.4 习题9 253
9.5 实验9 结构数组的应用实验(4学时) 255
9.6 阅读延伸 259
9.6.1 基础数据结构之链表 259
9.6.2 联合类型 265
9.6.3 枚举类型 268
第10章 数据文件 270
本章知识结构图 270
本章学习导读 270
10.1 文件类型 271
10.2 文件的打开与关闭 272
10.2.1 文件的打开函数fopen 273
10.2.2 文件关闭函数fclose 275
10.3 文件的顺序读写 275
10.3.1 字符读写函数fgetc和fputc 276
10.3.2 字符串读写函数fgets和fputs 280
10.3.3 数据块读写函数fread和fwtrite 282
10.3.4 格式化读写函数fscanf和fprintf 285
10.4 文件的随机读写 287
10.5 文件的检测 290
10.6 习题10 292
10.7 实验10 文件的应用实验(2学时) 293
10.8 阅读延伸 295
10.8.1 文件的应用——用户登录检测问题 295
10.8.2 文件使用中的几个问题 298
附录A ASCII码表 299
附录B C语言常用标准函数库 300
附录C C语言的关键字和运算符 303
参考文献 304