第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-whilc语句构成的循环结构 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.1.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样卷二 248
18.2无纸化考试样卷答案与解析 254
18.2.1样卷一答案与解析 254
18.2.2样卷二答案与解析 256