第一篇 C语言程序设计及实践(基础篇) 2
第1章 程序设计及C语言 2
1.1计算机、程序、语言 2
1.1.1计算机 2
1.1.2计算机软件和程序 3
1.1.3计算机编程语言 3
1.2 C语言程序基本框架 5
习题 7
真题链接 7
第2章 程序中的数据 9
2.1变量 9
2.1.1变量的定义 9
2.1.2变量的类型 10
2.1.3变量赋值 10
2.1.4从键盘输入数据到变量 11
2.1.5变量的引用 11
2.2常量 12
2.2.1整型常量 13
2.2.2浮点型常量 13
习题 13
真题链接 14
第3章 运算符、表达式、数学函数和语句 18
3.1运算符与表达式 18
3.1.1运算的实现 18
3.1.2运算符的优先级和结合性 19
3.2常用的运算符及表达式 19
3.2.1算术运算符及算术表达式 19
3.2.2赋值运算符及赋值表达式 22
3.2.3关系运算符及关系表达式 23
3.2.4逻辑运算符及逻辑表达式 24
3.2.5类型转换 27
3.2.6逗号运算符及逗号表达式 28
3.3数学函数的使用 28
3.3.1常用的数学函数 28
3.3.2数学函数的使用 28
3.4 C语言的语句 31
3.4.1声明语句 31
3.4.2执行语句 31
3.4.3空语句 32
3.4.4复合语句 32
习题 32
真题链接 34
第4章 算法及程序控制结构 39
4.1算法及控制结构 39
4.1.1程序设计与问题求解 39
4.1.2算法 39
4.1.3结构化程序设计与程序控制结构 41
4.2顺序结构 41
4.3选择结构 42
4.3.1 if语句 42
4.3.2条件运算符与条件表达式 47
4.3.3 switch语句 48
4.4循环结构 52
4.4.1 3种循环语句 52
4.4.2 break语句和continue语句 58
4.4.3循环的嵌套 61
4.4.4 break语句与goto语句 63
4.4.5循环结构例子 64
习题 69
真题链接 72
第5章 函数 89
5.1函数概述 89
5.2函数的定义及调用 90
5.2.1函数的定义 90
5.2.2函数参数 92
5.2.3函数的返回值 94
5.2.4函数的调用 95
5.2.5函数的嵌套调用 96
5.3函数的设计 97
5.4递归及递归函数 102
5.4.1什么是递归 102
5.4.2例题解析及递归函数设计 104
5.4.3递归存在的问题 112
习题 112
真题链接 114
第6章 数组 121
6.1数组概述 121
6.2一维数组的定义与引用 121
6.2.1定义一维数组 121
6.2.2引用一维数组的元素 122
6.2.3一维数组的初始化 123
6.2.4一维数组程序举例 123
6.3二维数组的定义和引用 125
6.3.1定义二维数组 125
6.3.2引用二维数组的元素 126
6.3.3二维数组的初始化 126
6.3.4二维数组程序举例 127
6.4数组名作函数参数 128
6.5编写数组应用的综合程序 130
习题 133
真题链接 134
第7章 指针与指针变量 143
7.1指针概述 143
7.1.1变量的地址 143
7.1.2直接存取与间接存取 144
7.2指针与指针变量 145
7.2.1定义指针变量 145
7.2.2使指针变量指向其他变量 145
7.2.3引用指针变量 146
7.3指针变量作函数参数 148
7.4数组与指针变量 152
7.4.1指向数组元素的指针变量 152
7.4.2用指针变量作函数参数接收数组地址 154
7.5编写指针应用的综合程序 156
习题 157
真题链接 159
第8章 字符及字符串基础知识 172
8.1字符型数据 172
8.1.1字符型变量 172
8.1.2字符型常量 173
8.1.3字符型数据的输入/输出 175
8.2字符串常量 177
8.3字符数组 178
8.3.1字符数组的定义与初始化 178
8.3.2字符数组元素的引用 179
8.3.3字符数组的输入/输出 180
8.3.4字符数组与字符串常量的区别与联系 182
8.4字符指针变量 183
8.4.1字符指针变量的定义与引用 183
8.4.2字符指针变量、字符数组与字符串常量 183
8.5字符及字符串处理函数 186
8.5.1字符串连接函数strcat 186
8.5.2字符串复制函数strcpy 187
8.5.3字符串比较函数strcmp 188
8.5.4字符串长度函数strlen 189
8.5.5存储空间赋值函数memset 189
8.5.6存储空间拷贝函数memcpy 190
8.5.7字符处理函数 190
8.6编写处理字符型数据的程序 191
习题 193
真题链接 196
第二篇 C语言程序设计及实践(提高篇) 221
第9章 二进制及位运算 221
9.1二进制相关基础知识 221
9.1.1进位计数制 221
9.1.2有符号整数在计算机中的表示——补码 223
9.2位运算符 224
9.2.1位运算符 224
9.2.2位运算符与赋值运算符组合 225
9.3位运算符的功能 225
9.3.1按位与运算 225
9.3.2按位或运算 226
9.3.3按位异或运算 226
9.3.4求反运算 226
9.3.5左移运算 226
9.3.6右移运算 227
真题链接 227
第10章 对指针的进一步讨论 230
10.1动态存储分配 230
10.1.1 malloc函数和free函数 230
10.1.2 calloc函数 232
10.2指针数组 232
10.3指针与二维数组 233
10.3.1二维数组中的地址 233
10.3.2通过指针数组引用二维数组元素 233
10.3.3通过行指针引用二维数组元素 234
10.4指针的指针 234
10.5返回指针的函数 235
10.6函数指针 235
10.7指针小结 236
真题链接 237
第11章 结构体、共用体和用户自定义类型 242
11.1用typedef声明一种新类型名 242
11.2结构体类型 243
11.2.1结构体概述 243
11.2.2结构体类型的声明 243
11.2.3结构体变量、指针、数组的定义 244
11.2.4结构体变量、数组的初始化 246
11.2.5结构体变量及成员的引用 246
11.2.6利用结构体构造链表 247
11.3共用体 252
11.3.1共用体类型的声明、变量定义及引用 252
11.3.2共用体的应用例子 253
真题链接 254
第12章 C语言中用户标识符的作用域和存储类别 266
12.1作用域和存储类别概述 266
12.1.1变量的作用域 266
12.1.2变量的存储类别 267
12.2局部变量及其作用域和生存期 268
12.2.1 auto变量 268
12.2.2 register变量 269
12.2.3静态存储类的局部变量 269
12.3全局变量及其作用域和生存期 270
12.4函数的存储分类 271
真题链接 271
第13章 编译预处理 276
13.1编译预处理概述 276
13.2宏定义 276
13.2.1一般形式的宏定义 276
13.2.2带参数的宏定义 277
13.2.3终止宏定义 278
13.3文件包含 278
真题链接 278
第14章 文件及文件输入/输出 283
14.1基本概念 283
14.1.1文件概念 283
14.1.2 ASCII文件和二进制文件 283
14.2文件基本操作 284
14.2.1文件指针 285
14.2.2打开文件 285
14.2.3关闭文件 286
14.3 ASCII文件的输入/输出 286
14.3.1fprintf函数 287
14.3.2 fscanf函数 287
14.3.3其他输入/输出函数 288
14.4二进制文件的输入/输出 288
14.4.1 fwrite函数 289
14.4.2 fread函数 289
14.5判断文件结束函数feof 290
14.6文件定位函数 291
14.6.1 fseek函数 292
14.6.2 ftell函数 292
14.6.3 frewind函数 292
真题链接 293
第三篇 附录 300
附录A 全国计算机等级考试二级C语言程序设计考试大纲 300
A.1公共基础知识考试大纲 300
A.2二级C语言考试大纲 301
附录B全国计算机等级考试二级C语言程序设计考试指导 304
B.1上机考试系统使用说明 304
B.1.1上机考试环境及题型 304
B.1.2上机考试登录及操作 304
B.1.3如何答题 307
B.1.4考生文件夹和文件的恢复 308
B.1.5文件名的说明 308
B.2考试例题解析 309
B.2.1程序填空题 309
B.2.2程序修改题 310
B.2.3程序设计题 312
习题 314
附录C 二级C语言考试公共基础知识历年真题 321
C.1选择题 321
C.2填空题 334
C.3参考答案 337
附录D 各章真题参考答案 339
附录E C程序的编写及运行 343
E.1 C程序的编写及运行 343
E.2 Visual C++++6.0开发环境简介 344
附录F 程序测试与调试 349
F.1常见的错误原因 349
F.1.1录入错误 349
F.1.2语法错误 349
F.1.3算法逻辑错误 349
F.2编译检测 350
F.2.1编译错误 350
F.2.2编译警告 351
F.3程序测试 351
F.3.1程序测试的目标 351
F.3.2测试方法 352
F.4程序调试 354
F.4.1调试的目的 354
F.4.2调试方法 354
F.4.3函数调用过程的调试 357
F.4.4指针程序的调试 359
F.4.5调试技巧 361
附录G C语言常用知识 363
G.1 C语言输入/输出函数 363
G.1.1 printf函数 363
G.1.2 scanf函数 366
G.1.3 puts函数 369
G.1.4 gets函数 370
G.2 C语言关键字 370
G.3 C语言中的数据类型 371
G.4运算符及其优先级与结合性 372
G.5 ASCII编码表 373
G.6 C语言库函数 374
参考文献 378