第1章 程序设计基本概念 1
1.1 程序和程序设计 1
1.2 算法 2
1.3 结构化程序设计和模块化结构 3
1.3.1 结构化程序 3
1.3.2 模块化结构 4
1.4 应试加油站 5
1.4.1 考试重点整理 5
1.4.2 解题技巧 5
1.5 过关练习与答案 6
1.5.1 过关练习 6
1.5.2 参考答案 6
第2章 C程序设计的初步知识 7
2.1 简单C语言程序的构成和格式 7
2.2 标识符、常量和变量 9
2.2.1 标识符 9
2.2.2 常量 10
2.2.3 变量 11
2.3 整型数据 11
2.3.1 整型常量 11
2.3.2 整型变量 12
2.3.3 整型数据的分类 13
2.3.4 整数在内存中的存储形式 13
2.4 实型数据 13
2.4.1 实型常量 13
2.4.2 实型变量 14
2.5 算术表达式 15
2.5.1 基本的算术运算符 15
2.5.2 运算符的优先级、结合性和算术表达式 16
2.5.3 强制类型转换表达式 17
2.6 赋值表达式 17
2.6.1 赋值运算符和赋值表达式 17
2.6.2 复合的赋值表达式 18
2.6.3 赋值运算中的类型转换 19
2.7 自增、自减运算符和逗号运算符 19
2.7.1 自增运算符(++)和自减运算符(--) 19
2.7.2 逗号运算符和逗号表达式 20
2.8 应试加油站 20
2.8.1 考试重点整理 20
2.8.2 解题技巧 20
2.9 过关练习与答案 22
2.9.1 过关练习 22
2.9.2 参考答案 23
第3章 顺序结构 24
3.1 赋值语句 24
3.2 数据输出 24
3.2.1 printf函数的一般调用形式 24
3.2.2 printf函数中常用的格式说明 24
3.2.3 调用printf函数时的考试重点整理 27
3.3 数据输入 28
3.3.1 scanf函数的一般调用格式 28
3.3.2 scanf函数中常用的格式说明 29
3.3.3 通过scanf函数从键盘输入数据 29
3.4 复合语句和空语句 30
3.4.1 复合语句 30
3.4.2 空语句 30
3.5 程序举例 31
3.6 应试加油站 33
3.6.1 考试重点整理 33
3.6.2 解题技巧 33
3.7 过关练习与答案 34
3.7.1 过关练习 34
3.7.2 参考答案 35
第4章 选择结构 36
4.1 关系运算和逻辑运算 36
4.1.1 关系运算符和关系表达式 36
4.1.2 逻辑运算符和逻辑表达式 37
4.2 if语句和嵌套if语句 39
4.2.1 if语句 39
4.2.2 嵌套if语句 41
4.3 条件运算符和条件表达 44
4.4 switch语句 45
4.5 语句标号和goto语句 50
4.5.1 语句标号 50
4.5.2 goto语句 50
4.6 应试加油站 51
4.6.1 考试重点整理 51
4.6.2 解题技巧 51
4.7 过关练习与答案 52
4.7.1 过关练习 52
4.7.2 参考答案 53
第5章 循环结构 54
5.1 while语句构成的循环结构 54
5.1.1 while循环的一般形式 54
5.1.2 while循环的执行过程 54
5.2 do-while语句构成的循环结构 56
5.2.1 do-while语句构成的循环结构 56
5.2.2 do-while循环的执行过程 56
5.3 for语句构成的循环结构 58
5.3.1 for语句构成的循环结构 58
5.3.2 for循环的执行过程 58
5.3.3 有关for语句的说明 58
5.4 循环结构的嵌套 61
5.5 break和continue语句的作用 65
5.5.1 break语句 65
5.5.2 continue语句 65
5.6 程序举例 66
5.7 应试加油站 68
5.7.1 考试重点整理 68
5.7.2 解题技巧 69
5.8 过关练习与答案 71
5.8.1 过关练习 71
5.8.2 参考答案 72
第6章 字符型数据 73
6.1 字符型常量 73
6.1.1 字符常量 73
6.1.2 转义字符常量 73
6.1.3 字符串常量 74
6.1.4 对字符常量进行的运算 74
6.2 字符变量 75
6.3 字符的输入和输出 76
6.3.1 调用printf和scanf函数输出和输入字符 76
6.3.2 调用putchar和getchar函数输出和输入字符 76
6.4 程序举例 78
6.5 应试加油站 79
6.5.1 考试重点整理 79
6.5.2 解题技巧 79
6.6 过关练习与答案 80
6.6.1 过关练习 80
6.6.2 参考答案 81
第7章 函数 82
7.1 库函数 82
7.2 函数的定义和返回值 83
7.2.1 函数的定义 83
7.2.2 函数的返回值 84
7.3 函数的调用 86
7.3.1 函数的两种调用方式 86
7.3.2 函数调用时的语法要求 86
7.4 函数的说明 88
7.4.1 函数说明的形式 88
7.4.2 函数说明的位置 89
7.5 函数间的数据传递 90
7.6 程序举例 93
7.7 应试加油站 95
7.7.1 考试重点整理 95
7.7.2 解题技巧 95
7.8 过关练习与答案 96
7.8.1 过关练习 96
7.8.2 参考答案 97
第8章 指针 98
8.1 变量的地址和指针 98
8.2 指针变量的定义和指针变量的基类型 99
8.3 给指针变量赋值 100
8.3.1 给指针变量赋地址值 100
8.3.2 给指针变量赋“空”值 100
8.4 对指针变量的操作 101
8.4.1 通过指针来引用一个存储单元 101
8.4.2 移动指针 103
8.4.3 指针比较 104
8.5 函数之间地址值的传递 104
8.6 应试加油站 107
8.6.1 考试重点整理 107
8.6.2 解题技巧 107
8.7 过关练习与答案 109
8.7.1 过关练习 109
8.7.2 参考答案 110
第9章 数组 111
9.1 一维数组的定义和一维数组元素的引用 111
9.1.1 一维数组的定义 111
9.1.2 一维数组元素的引用 112
9.1.3 一维数组的初始化 112
9.1.4 通过赋初值定义数组的大小 112
9.1.5 一维数组的定义和数组元素引用举例 113
9.2 一维数组和指针 114
9.2.1 一维数组和数组元素的地址 114
9.2.2 通过数组的首地址引用数组元素 115
9.2.3 通过指针及带下标的指针变量引用一维数组元素 115
9.2.4 指针变量的运算 116
9.3 函数之间对一维数组和数组元素的引用 118
9.3.1 数组名作为实参 118
9.3.2 数组元素地址作为实参 119
9.3.3 函数的指针形参和函数体中数组的区别 120
9.4 一维数组应用举例 121
9.5 二维数组的定义和二维数组元素的引用 125
9.5.1 二维数组的定义 125
9.5.2 二维数组元素的引用 126
9.5.3 二维数组的初始化 126
9.5.4 通过赋初值定义二维数组的大小 127
9.6 二维数组和指针 128
9.6.1 二维数组和数组元素的地址 128
9.6.2 通过地址来引用二维数组元素 128
9.6.3 通过建立一个指针数组来引用二维数组元素 129
9.6.4 通过建立一个行指针来引用二维数组元素 129
9.7 二维数组名和指针数组作为实参 131
9.7.1 二维数组名作为实参 131
9.7.2 指针数组作为实参 131
9.8 二维数组应用举例 132
9.9 应试加油站 134
9.9.1 考试重点整理 134
9.9.2 解题技巧 134
9.10 过关练习与答案 137
9.10.1 过关练习 137
9.10.2 参考答案 138
第10章 字符串 139
10.1 利用一维字符数组存放字符串 139
10.1.1 字符串的相关概念 139
10.1.2 通过赋初值的方式给一维字符数组赋字符串 139
10.1.3 在赋初值时直接赋字符串常量 140
10.2 使指针指向一个字符串 141
10.3 字符串的输入和输出 143
10.3.1 字符串的输入 143
10.3.2 字符串的输出 144
10.4 字符串数组 144
10.5 用于字符串处理的函数 145
10.6 字符数组和字符串应用举例 149
10.7 应试加油站 150
10.7.1 考试重点整理 150
10.7.2 解题技巧 150
10.8 过关练习与答案 153
10.8.1 过关练习 153
10.8.2 参考答案 154
第11章 对函数的进一步讨论 155
11.1 传给main函数的参数 155
11.2 通过实参向函数传递函数名或指向函数的指针变量 156
11.3 函数的递归调用 157
11.4 函数的嵌套调用 161
11.5 应试加油站 162
11.5.1 考试重点整理 162
11.5.2 解题技巧 162
11.6 过关练习与答案 163
11.6.1 过关练习 163
11.6.2 参考答案 164
第12章 C语言中用户标识符的作用域和存储类 165
12.1 局部变量和全局变量 165
12.2 局部变量的作用域和生存期 167
12.2.1 auto变量 167
12.2.2 register变量 167
12.2.3 静态存储类的局部变量 168
12.3 全局变量的作用域和生存期 169
12.3.1 在同一编译单位内扩展全局变量的作用域 170
12.3.2 在不同编译单位内扩展全局变量的作用域 170
12.3.3 静态全局变量 170
12.4 函数的存储分类 171
12.4.1 利用extern说明函数 171
12.4.2 利用static说明函数 171
12.5 应试加油站 172
12.5.1 考试重点整理 172
12.5.2 解题技巧 172
12.6 过关练习与答案 173
12.6.1 过关练习 173
12.6.2 参考答案 175
第13章 编译预处理和动态存储分配 176
13.1 编译预处理 176
13.1.1 宏替换 176
13.1.2 文件包含 179
13.2 动态存储分配 180
13.2.1 malloc函数和free函数 180
13.2.2 calloc函数 181
13.3 应试加油站 182
13.3.1 考试重点整理 182
13.3.2 解题技巧 182
13.4 过关练习与答案 183
13.4.1 过关练习 183
13.4.2 参考答案 184
第14章 结构体、共用体和用户自定义类型 185
14.1 利用typedef说明一种新类型名 185
14.2 结构体类型 186
14.2.1 结构体类型的说明 186
14.2.2 结构体类型的变量定义 187
14.2.3 结构体类型变量的引用 189
14.2.4 结构体类型变量的赋值和初始化 189
14.2.5 结构体类型数组的定义和赋值 190
14.2.6 结构体指针变量 192
14.2.7 通过结构体变量构成链表 197
14.3 共用体 201
14.3.1 共用体类型的说明和变量定义 201
14.3.2 共用体变量的引用 202
14.4 应试加油站 204
14.4.1 考试重点整理 204
14.4.2 解题技巧 204
14.5 过关练习与答案 206
14.5.1 过关练习 206
14.5.2 参考答案 207
第15章 位运算 208
15.1 位运算符 208
15.2 位运算符的运算功能 209
15.3 应试加油站 212
15.3.1 考试重点整理 212
15.3.2 解题技巧 212
15.4 过关练习与答案 212
15.4.1 过关练习 212
15.4.2 参考答案 213
第16章 文件 214
16.1 C语言文件的概念 214
16.2 文件指针 215
16.3 fopen函数 215
16.4 fclose函数 217
16.5 fgetc和fputc函数 218
16.6 feof函数 220
16.7 fscanf和fprintf函数 220
16.8 fgets和fputs函数 221
16.9 fread和fwrite函数 221
16.10 文件定位函数 223
16.10.1 fseek函数 223
16.10.2 ftell函数 223
16.10.3 rewind函数 224
16.11 应试加油站 224
16.11.1 考试重点整理 224
16.11.2 解题技巧 224
16.12 过关练习与答案 226
16.12.1 过关练习 226
16.12.2 参考答案 227
第17章 无纸化考试指导 228
17.1 考试重点整理 228
17.2 常考知识点指导 228
17.3 过关练习与答案 240
17.3.1 过关练习 240
17.3.2 参考答案 242
第18章 无纸化考试样卷与答案解析 243
18.1 无纸化考试样卷 243
18.1.1 样卷一 243
18.1.2 样卷二 249
18.2 无纸化考试样卷答案与解析 255
18.2.1 样卷一答案与解析 255
18.2.2 样卷二答案与解析 258