第1章 程序设计引论 1
1.1 程序与程序设计 1
1.1.1 程序 1
1.1.2 程序设计 2
1.2 计算机中数的表示 3
1.2.1 数制的概念 3
1.2.2 数码、基数与位权 3
1.2.3 数制的转换 4
1.3 计算机中的信息单位 7
1.4 数的原码、反码和补码表示 8
1.5 算法 9
第2章 C语言概述 11
2.1 C语言的发展及特点 11
2.1.1 计算机语言的发展 11
2.1.2 C语言的发展 13
2.1.3 C语言的特点 13
2.2 C语言程序的格式与构成 14
2.2.1 C语言程序的格式 14
2.2.2 C语言程序的构成 15
2.3 程序的编译过程 16
2.3.1 程序的编译和运行 16
2.3.2 程序的编译环境 17
2.4 典型案例 20
2.4.1 案例1:Visual C++6.0编译环境的应用 20
2.4.2 案例2:Visual C++2010编译环境的应用 21
2.5 本章小结 21
2.6 习题 22
2.7 综合实验 22
第3章 程序设计的初步知识 24
3.1 数据类型 24
3.2 标识符、常量和变量 24
3.2.1 标识符 25
3.2.2 常量 26
3.2.3 变量 27
3.3 整型数据 28
3.3.1 整型常量 28
3.3.2 整型变量 29
3.4 实型数据 30
3.4.1 实型常量 30
3.4.2 实型变量 31
3.5 字符型数据 31
3.5.1 字符常量 31
3.5.2 字符变量 32
3.5.3 字符串常量 33
3.6 算术运算 34
3.7 赋值运算 35
3.8 特殊运算 36
3.9 类型转换运算 37
3.10 典型案例 38
3.10.1 案例1:编程实现温度转换 38
3.10.2 案例2:赋值表达式的运算过程 40
3.10.3 案例3:编程实现时间换算 40
3.11 本章小结 41
3.12 习题 43
3.13 综合实验 44
第4章 顺序结构程序设计 45
4.1 C语言的语句 45
4.2 数据的输出 46
4.2.1 字符输出函数 46
4.2.2 格式输出函数 47
4.3 数据的输入 50
4.3.1 字符输入函数 51
4.3.2 格式输入函数 51
4.4 典型案例 54
4.4.1 案例1:两数的交换 54
4.4.2 案例2:整数的逆序输出 55
4.5 本章小结 56
4.6 习题 58
4.7 综合实验 60
第5章 选择结构程序设计 61
5.1 逻辑值 61
5.2 关系运算 61
5.3 逻辑运算 62
5.4 if语句 64
5.4.1 单分支if语句 64
5.4.2 双分支if语句 65
5.4.3 多分支if语句 66
5.4.4 if语句的嵌套 67
5.5 switch语句 69
5.6 典型案例 70
5.6.1 案例1:使用流程图描述算法 70
5.6.2 案例2:编程实现两个数的排序 71
5.6.3 案例3:编程实现奇偶数的判断 72
5.6.4 案例4:编程实现成绩级别的判断 73
5.6.5 案例5:编程实现直角三角形的判断 73
5.6.6 案例6:switch语句的应用 75
5.7 本章小结 76
5.8 习题 77
5.9 综合实验 79
第6章 循环结构程序设计 81
6.1 while语句 81
6.2 do…while语句 83
6.3 for语句 84
6.4 break和continue语句 86
6.4.1 break语句 87
6.4.2 continue语句 87
6.5 goto语句 88
6.6 循环结构的嵌套 89
6.7 常见循环类问题 92
6.8 典型案例 95
6.8.1 案例1:求12~n2的累加(while语句) 95
6.8.2 案例2:求π的近似值(while语句) 96
6.8.3 案例3:求斐波那契数列项(do…while语句) 97
6.8.4 案例4:实现一行字符的输入输出(do…while语句) 98
6.8.5 案例5:求1~10累乘积(for语句) 99
6.8.6 案例6:谁是凶手问题(for语句) 99
6.8.7 案例7:实现图形的输出(循环嵌套) 100
6.8.8 案例8:输出九九乘法表(循环嵌套) 101
6.8.9 案例9:输出2~100以内的素数(循环嵌套) 102
6.9 本章小结 104
6.10 习题 105
6.11 综合实验 108
第7章 函数 111
7.1 库函数 111
7.2 函数的定义 112
7.3 函数的返回值 114
7.4 函数的声明 115
7.5 函数的调用 116
7.6 函数的参数传递方式 117
7.7 函数的嵌套调用 118
7.8 函数的递归调用 120
7.9 变量的作用域和存储类型 121
7.10 函数的作用范围 125
7.11 典型案例 126
7.11.1 案例1:库函数的应用 126
7.11.2 案例2:函数实现素数的判断 127
7.11.3 案例3:计算分数序列前n项之和 128
7.11.4 案例4:判定月份的天数 129
7.11.5 案例5:编写递归函数 130
7.11.6 案例6:利用全局变量传递数据 131
7.12 本章小结 132
7.13 习题 133
7.14 综合实验 138
第8章 数组 140
8.1 一维数组 140
8.1.1 一维数组的定义 140
8.1.2 一维数组的引用 141
8.1.3 一维数组的初始化 141
8.2 二维数组 144
8.2.1 二维数组的定义 144
8.2.2 二维数组的引用 144
8.2.3 二维数组的初始化 145
8.3 字符数组 147
8.3.1 字符数组的定义及初始化 148
8.3.2 字符数组的引用 149
8.3.3 字符串处理函数 151
8.4 数组与函数 154
8.5 数组常用操作 157
8.5.1 排序 157
8.5.2 查找最大值、最小值 160
8.5.3 查找数组元素 161
8.5.4 插入数组元素 163
8.5.5 删除数组元素 164
8.5.6 数组在字符串中的应用 165
8.6 典型案例 167
8.6.1 案例1:编程求一维数组的平均值 167
8.6.2 案例2:编程求二维数组主对角线元素的累加和 168
8.6.3 案例3:运用函数改变数组元素 169
8.6.4 案例4:运用函数求数组的平均值 170
8.6.5 案例5:字符数组的处理 171
8.6.6 案例6:杨辉三角 172
8.6.7 案例7:信息加密处理 173
8.7 本章小结 174
8.8 习题 175
8.9 综合实验 178
第9章 编译预处理 180
9.1 宏定义 180
9.2 文件包含 182
9.3 条件编译 183
9.4 典型案例 186
9.4.1 案例1:带参宏的应用 186
9.4.2 案例2:条件编译的应用 187
9.5 本章小结 188
9.6 习题 189
9.7 综合实验 191
第10章 指针 192
10.1 指针概述 192
10.2 指针变量 193
10.2.1 指针变量的定义 193
10.2.2 指针变量的引用 193
10.2.3 指针变量的运算 196
10.3 指针与数组 198
10.3.1 指针与一维数组 198
10.3.2 指针与二维数组 200
10.3.3 行指针 202
10.4 指针与字符串 203
10.5 指针数组 206
10.6 指针与函数 208
10.6.1 指针变量作为函数的参数 208
10.6.2 数组名作为函数的参数 211
10.6.3 函数的返回值为指针 212
10.7 指向指针的指针 213
10.8 典型案例 214
10.8.1 案例1:指针与数组的应用 214
10.8.2 案例2:利用指针修改字符串内容 215
10.8.3 案例3:利用指针移动字符串前导符 216
10.8.4 案例4:利用指针传递数据 217
10.8.5 案例5:指针与函数的综合应用 218
10.8.6 案例6:二级指针的应用 219
10.9 本章小结 220
10.10 习题 222
10.11 综合实验 226
第11章 构造数据类型 228
11.1 结构体 228
11.1.1 结构体定义 228
11.1.2 结构体变量 230
11.1.3 结构体变量的应用 231
11.2 结构体与函数 234
11.2.1 结构体变量作函数的参数 234
11.2.2 结构体数组作函数的参数 236
11.2.3 结构体变量作为函数的返回值 237
11.3 结构体与指针 239
11.3.1 结构体变量指针 239
11.3.2 结构体数组指针 240
11.4 链表 241
11.4.1 链表概述 241
11.4.2 链表的基本操作 242
11.5 共用体 246
11.6 枚举类型 248
11.7 typedef类型声明 250
11.8 典型案例 251
11.8.1 案例1:结构体的应用 251
11.8.2 案例2:链表的应用 252
11.9 本章小结 254
11.10 习题 255
11.11 综合实验 259
第12章 文件 261
12.1 文件概述 261
12.2 文件类型指针 262
12.3 文件的基本操作 263
12.3.1 文件的打开 263
12.3.2 文件的关闭 264
12.3.3 文件的读写 265
12.4 文件的定位 269
12.5 文件的出错检测 271
12.6 典型案例 273
12.6.1 案例1:文件打开和关闭的应用 273
12.6.2 案例2:文件定位的应用 273
12.7 本章小结 274
12.8 习题 275
12.9 综合实验 277
第13章 位运算 279
13.1 位运算 279
13.1.1 按位与(&) 280
13.1.2 按位或(|) 281
13.1.3 按位异或(^) 281
13.1.4 按位取反(~) 283
13.1.5 左移(﹤﹤) 283
13.1.6 右移(﹥﹥) 283
13.1.7 复合位运算符 284
13.2 位段 286
13.3 典型案例 288
13.3.1 案例1:十进制的二进制表示法 288
13.4 本章小结 288
13.5 习题 290
13.6 综合实验 291
附录 293
附录1 C语言的关键字 293
附录2 运算符的优先级和结合性 294
附录3 常用字符与ASCII码对照表 295
附录4 库函数 296
附录5 全国计算机等级考试二级C语言程序设计考试大纲(2022年版) 301
附录6 全国计算机等级考试二级C语言程序设计考试环境 303
附录7 习题参考答案 307
参考文献 311