第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 整型数据的分类 12
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 运算符的优先级、结合性和算术表达式 15
2.5.3 强制类型转换表达式 16
2.6 赋值表达式 17
2.6.1 赋值运算符和赋值表达式 17
2.6.2 复合的赋值表达式 18
2.6.3 赋值运算中的类型转换 18
2.7 自增、自减运算符和逗号运算符 19
2.7.1 自增运算符(++)和自减运算符(--) 19
2.7.2 逗号运算符和逗号表达式 19
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 空语句 31
3.5 程序举例 31
3.6 应试加油站 33
3.6.1 考试重点整理 33
3.6.2 解题技巧 33
3.7 过关练习与答案 34
3.7.1 过关练习 34
3.7.2 参考答案 36
第4章 选择结构 37
4.1 关系运算和逻辑运算 37
4.1.1 关系运算符和关系表达式 37
4.1.2 逻辑运算符和逻辑表达式 38
4.2 if语句和嵌套if语句 40
4.2.1 if语句 40
4.2.2 嵌套if语句 42
4.3 条件运算符和条件表达 45
4.4 switch语句 46
4.5 语句标号和goto语句 51
4.5.1 语句标号 51
4.5.2 goto语句 51
4.6 应试加油站 51
4.6.1 考试重点整理 51
4.6.2 解题技巧 51
4.7 过关练习与答案 53
4.7.1 过关练习 53
4.7.2 参考答案 55
第5章 循环结构 56
5.1 while语句构成的循环结构 56
5.1.1 while循环的一般形式 56
5.1.2 while循环的执行过程 56
5.2 do-while语句构成的循环结构 59
5.2.1 do-while语句构成的循环结构 59
5.2.2 do-while循环的执行过程 59
5.3 for语句构成的循环结构 61
5.3.1 for语句构成的循环结构 61
5.3.2 for循环的执行过程 61
5.3.3 有关for语句的说明 61
5.4 循环结构的嵌套 64
5.5 break和continue语句的作用 68
5.5.1 break语句 68
5.5.2 continue语句 69
5.6 程序举例 69
5.7 应试加油站 72
5.7.1 考试重点整理 72
5.7.2 解题技巧 72
5.8 过关练习与答案 75
5.8.1 过关练习 75
5.8.2 参考答案 77
第6章 字符型数据 78
6.1 字符型常量 78
6.1.1 字符常量 78
6.1.2 转义字符常量 78
6.1.3 字符串常量 79
6.1.4 对字符常量进行的运算 79
6.2 字符变量 80
6.3 字符的输入和输出 81
6.3.1 调用printf和scanf函数输出和输入字符 81
6.3.2 调用putchar和getchar函数输出和输入字符 81
6.4 程序举例 83
6.5 应试加油站 84
6.5.1 考试重点整理 84
6.5.2 解题技巧 84
6.6 过关练习与答案 85
6.6.1 过关练习 85
6.6.2 参考答案 86
第7章 函数 87
7.1 库函数 87
7.2 函数的定义和返回值 88
7.2.1 函数的定义 88
7.2.2 函数的返回值 89
7.3 函数的调用 90
7.3.1 函数的两种调用方式 90
7.3.2 函数调用时的语法要求 91
7.4 函数的说明 93
7.4.1 函数说明的形式 93
7.4.2 函数说明的位置 94
7.5 函数间的数据传递 95
7.6 程序举例 98
7.7 应试加油站 100
7.7.1 考试重点整理 100
7.7.2 解题技巧 100
7.8 过关练习与答案 101
7.8.1 过关练习 101
7.8.2 参考答案 103
第8章 指针 104
8.1 变量的地址和指针 104
8.2 指针变量的定义和指针变量的基类型 105
8.3 给指针变量赋值 106
8.3.1 给指针变量赋地址值 106
8.3.2 给指针变量赋“空”值 106
8.4 对指针变量的操作 107
8.4.1 通过指针来引用一个存储单元 107
8.4.2 移动指针 109
8.4.3 指针比较 110
8.5 函数之间地址值的传递 110
8.6 应试加油站 113
8.6.1 考试重点整理 113
8.6.2 解题技巧 114
8.7 过关练习与答案 116
8.7.1 过关练习 116
8.7.2 参考答案 117
第9章 数组 118
9.1 一维数组的定义和一维数组元素的引用 118
9.1.1 一维数组的定义 118
9.1.2 一维数组元素的引用 119
9.1.3 一维数组的初始化 119
9.1.4 通过赋初值定义数组的大小 119
9.1.5 一维数组的定义和数组元素引用举例 120
9.2 一维数组和指针 121
9.2.1 一维数组和数组元素的地址 121
9.2.2 通过数组的首地址引用数组元素 122
9.2.3 通过指针及带下标的指针变量引用一维数组元素 122
9.2.4 指针变量的运算 123
9.3 函数之间对一维数组和数组元素的引用 125
9.3.1 数组名作为实参 125
9.3.2 数组元素地址作为实参 126
9.3.3 函数的指针形参和函数体中数组的区别 127
9.4 一维数组应用举例 128
9.5 二维数组的定义和二维数组元素的引用 134
9.5.1 二维数组的定义 134
9.5.2 二维数组元素的引用 135
9.5.3 二维数组的初始化 135
9.5.4 通过赋初值定义二维数组的大小 135
9.6 二维数组和指针 136
9.6.1 二维数组和数组元素的地址 136
9.6.2 通过地址来引用二维数组元素 137
9.6.3 通过建立一个指针数组来引用二维数组元素 137
9.6.4 通过建立一个行指针来引用二维数组元素 138
9.7 二维数组名和指针数组作为实参 139
9.7.1 二维数组名作为实参 139
9.7.2 指针数组作为实参 139
9.8 二维数组应用举例 140
9.9 应试加油站 142
9.9.1 考试重点整理 142
9.9.2 解题技巧 142
9.10 过关练习与答案 146
9.10.1 过关练习 146
9.10.2 参考答案 148
第10章 字符串 149
10.1 利用一维字符数组存放字符串 149
10.1.1 字符串的相关概念 149
10.1.2 通过赋初值的方式给一维字符数组赋字符串 149
10.1.3 在赋初值时直接赋字符串常量 150
10.2 使指针指向一个字符串 151
10.3 字符串的输入和输出 152
10.3.1 字符串的输入 153
10.3.2 字符串的输出 154
10.4 字符串数组 154
10.5 用于字符串处理的函数 155
10.6 字符数组和字符串应用举例 159
10.7 应试加油站 160
10.7.1 考试重点整理 160
10.7.2 解题技巧 160
10.8 过关练习与答案 164
10.8.1 过关练习 164
10.8.2 参考答案 166
第11章 对函数的进一步讨论 167
11.1 传给main函数的参数 167
11.2 通过实参向函数传递函数名或指向函数的指针变量 168
11.3 函数的递归调用 169
11.4 函数的嵌套调用 173
11.5 应试加油站 174
11.5.1 考试重点整理 174
11.5.2 解题技巧 174
11.6 过关练习与答案 175
11.6.1 过关练习 175
11.6.2 参考答案 177
第12章 C语言中用户标识符的作用域和存储类 178
12.1 局部变量和全局变量 178
12.2 局部变量的作用域和生存期 180
12.2.1 auto变量 180
12.2.2 register变量 180
12.2.3 静态存储类的局部变量 181
12.3 全局变量的作用域和生存期 182
12.3.1 在同一编译单位内扩展全局变量的作用域 183
12.3.2 在不同编译单位内扩展全局变量的作用域 183
12.3.3 静态全局变量 184
12.4 函数的存储分类 185
12.4.1 利用extern说明函数 185
12.4.2 利用static说明函数 185
12.5 应试加油站 185
12.5.1 考试重点整理 185
12.5.2 解题技巧 185
12.6 过关练习与答案 187
12.6.1 过关练习 187
12.6.2 参考答案 189
第13章 编译预处理和动态存储分配 190
13.1 编译预处理 190
13.1.1 宏替换 190
13.1.2 文件包含 193
13.2 动态存储分配 194
13.2.1 malloc函数和free函数 194
13.2.2 calloc函数 195
13.3 应试加油站 196
13.3.1 考试重点整理 196
13.3.2 解题技巧 196
13.4 过关练习与答案 197
13.4.1 过关练习 197
13.4.2 参考答案 198
第14章 结构体、共用体和用户自定义类型 199
14.1 利用typedef说明一种新类型名 199
14.2 结构体类型 200
14.2.1 结构体类型的说明 200
14.2.2 结构体类型的变量定义 201
14.2.3 结构体类型变量的引用 203
14.2.4 结构体类型变量的赋值和初始化 203
14.2.5 结构体类型数组的定义和赋值 204
14.2.6 结构体指针变量 207
14.2.7 通过结构体变量构成链表 212
14.3 共用体 216
14.3.1 共用体类型的说明和变量定义 216
14.3.2 共用体变量的引用 218
14.4 应试加油站 219
14.4.1 考试重点整理 219
14.4.2 解题技巧 219
14.5 过关练习与答案 222
14.5.1 过关练习 222
14.5.2 参考答案 225
第15章 位运算 226
15.1 位运算符 226
15.2 位运算符的运算功能 227
15.3 应试加油站 230
15.3.1 考试重点整理 230
15.3.2 解题技巧 230
15.4 过关练习与答案 230
15.4.1 过关练习 230
15.4.2 参考答案 231
第16章 文件 232
16.1 C语言文件的概念 232
16.2 文件指针 233
16.3 fopen函数 233
16.4 fclose函数 235
16.5 fgetc和fputc函数 236
16.6 feof函数 238
16.7 fscanf和fprintf函数 238
16.8 fgets和fputs函数 239
16.9 fread和fwrite函数 239
16.10 文件定位函数 241
16.10.1 fseek函数 241
16.10.2 ftell函数 241
16.10.3 rewind函数 242
16.11 应试加油站 242
16.11.1 考试重点整理 242
16.11.2 解题技巧 242
16.12 过关练习与答案 244
16.12.1 过关练习 244
16.12.2 参考答案 246
第17章 上机指导 247
17.1 考试重点整理 247
17.2 常考知识点指导 247
17.3 过关练习与答案 259
17.3.1 过关练习 259
17.3.2 参考答案 261
第18章 模拟试题与解析 262
18.1 笔试全真试题 262
18.1.1 笔试试题一 262
18.1.2 笔试试题二 267
18.1.3 笔试试题一参考答案与解析 273
18.1.4 笔试试题二参考答案与解析 276
18.2 上机全真模拟试题 279
18.2.1 上机全真模拟试题一 279
18.2.2 上机全真模拟试题二 280
18.2.3 上机全真模拟试题三 281
18.2.4 上机全真模拟试题一参考答案及解析 282
18.2.5 上机全真模拟试题二参考答案及解析 282
18.2.6 上机全真模拟试题三参考答案及解析 283