目录 1
第1章 C语言概述 1
1.1 C语言简史 1
1.2 C语言的特点 2
1.3 简单C程序举例 3
1.4 C程序的开发和运行环境 5
1.5 程序的算法与基本结构 6
1.5.1 算法 7
1.5.2 结构化程序 8
1.6 小结 10
习题 10
2.1 标识符和保留字 11
第2章 数据类型、运算符和表达式 11
2.2 数据类型 12
2.3 常量与变量 13
2.3.1 常量 13
2.3.2 变量 16
2.3.3 定义只读变量 16
2.4 运算符和表达式 17
2.4.1 概述 17
2.4.2 算术运算 18
2.4.3 关系运算 18
2.4.4 逻辑运算 19
2.4.5 赋值运算 20
2.5 类型自动转换 22
2.5.1 一般算术转换 22
2.4.7 逗号表达式 22
2.4.6 条件表达式 22
2.5.2 赋值转换 23
2.5.3 强制类型显式转换 23
2.6 小结 24
习题 24
第3章 顺序结构程序设计 26
3.1 C语言的基本语句 26
3.1.1 表达式语句 26
3.1.2 空语句 26
3.1.3 复合语句 27
3.1.4 函数调用语句 27
3.1.5 流程控制语句 27
3.2.1 字符输出函数putchar() 28
3.2 数据输出 28
3.2.2 格式输出函数printf() 29
3.3 数据输入 33
3.3.1 字符输入函数getchar() 33
3.3.2 格式输入函数scanf() 33
3.4 程序举例 35
3.5 小结 37
习题 38
第4章 选择结构程序设计 39
4.1 关系运算符与关系表达式 39
4.1.1 关系运算符 39
4.1.2 关系表达式 39
4.2 逻辑运算符与逻辑表达式 40
4.2.1 逻辑运算符 40
4.3.1 if语句的格式 41
4.2.2 逻辑表达式 41
4.3 if语句 41
4.3.2 if语句的嵌套 44
4.4 条件运算符 46
4.5 switch语句 47
4.6 程序举例 49
4.7 小结 51
习题 52
第5章 循环结构程序设计 57
5.1 while语句 57
5.1.1 while语句的一般格式 57
5.1.2 while语句的执行过程 58
5.1.3 while语句程序举例 58
5.2.1 do…while语句的一般格式 59
5.2 do…while语句 59
5.2.2 do…while语句的执行过程 60
5.2.3 do…while语句程序举例 60
5.3 for语句 61
5.3.1 for语句的一般格式 61
5.3.2 for语句的执行过程 62
5.3.3 for语句程序举例 62
5.4 多重循环 64
5.5 break语句和continue语句 66
5.5.1 break语句 66
5.5.2 continue语句 67
5.6.3 goto语句和标号语句程序举例 68
5.6.2 标号语句 68
5.6 goto语句和标号语句 68
5.6.1 goto语句 68
5.7 程序举例 70
5.8 小结 74
习题 74
第6章 函数 83
6.1 概述 83
6.1.1 库函数和用户自定义函数 85
6.1.2 有返回值函数和无返回值函数 86
6.1.3 无参函数和有参函数 86
6.2 函数的定义与说明 86
6.2.1 函数的定义 86
6.2.2 函数的说明 87
6.3.1 函数的调用 89
6.3 函数的调用和参数的传递 89
6.3.2 函数调用的方式 90
6.3.3 函数的返回值 90
6.3.4 函数参数的传递 91
6.4 函数的嵌套与递归 93
6.4.1 函数的嵌套调用 93
6.4.2 函数的递归调用 95
6.5 变量的存储类型与作用域 98
6.5.1 局部变量及其存储类型 99
6.5.2 全局变量 103
6.6 程序举例 106
6.7 小结 109
习题 109
7.1.1 数组的概念 117
7.1 一维数组 117
第7章 数组 117
7.1.2 一维数组的说明、引用和存储 118
7.1.3 一维数组的初始化 119
7.1.4 一维数组程序实例 119
7.2 二维数组 122
7.2.1 二维数组的说明、引用和存储 123
7.2.2 二维数组的初始化 124
7.2.3 二维数组程序举例 125
7.3 字符数组和字符串 127
7.3.1 字符数组 127
7.3.2 字符串 128
7.3.3 字符数组程序举例 131
7.4.1 数组元素作为函数实参 133
7.4 数组作为函数参数 133
7.4.2 数组名作函数参数 134
7.5 小结 137
习题 137
第8章 指针 140
8.1 指针和地址 140
8.1.1 预备知识 140
8.1.2 地址和指针的概念 141
8.2 指针变量 142
8.2.1 指针的指向关系 142
8.2.2 指针变量的说明和初始化 142
8.2.3 指针的运算 143
8.3.1 指针参数的用法 145
8.3 指针参数 145
8.3.2 程序实例 147
8.4 指针与数组 148
8.4.1 指向数组元素的指针 148
8.4.2 通过指针引用数组元素 149
8.4.3 移动指针的运算 152
8.4.4 指针与多维数组 154
8.4.5 指针与字符串 158
8.5 指针数组和指向指针的指针 160
8.5.1 指针数组 160
8.5.2 指针数组作main函数的形参 161
8.5.3 指向指针的指针 162
8.6.1 指针函数 166
8.6 指针与函数 166
8.6.2 指向函数的指针 167
8.7 程序举例 168
8.8 小结 173
习题 174
第9章 预编译处理和动态存储分配 178
9.1 宏定义 178
9.2 文件包含 184
9.3 条件编译 185
9.4 动态存储分配 187
9.5 程序举例 188
9.6 小结 190
习题 191
10.1 结构体和结构体变量 194
10.1.1 结构体定义 194
第10章 构造类型与位运算 194
10.1.2 结构体变量的引用 196
10.2 结构体数组和结构体指针 197
10.2.1 结构体数组的定义 197
10.2.2 结构体数组的初始化 198
10.2.3 指向结构体的指针 199
10.3 链表和链表操作 202
10.3.1 链表 202
10.3.2 链表操作 203
10.4 联合体 206
10.4.1 联合体的概念 206
10.4.2 联合体变量的定义和引用 206
10.5 枚举类型和类型定义 208
10.6 位运算 210
10.7 小结 214
习题 215
第11章 文件 218
11.1 C语言文件的概念 218
11.2 文件的基本操作 219
11.2.1 文件类型指针 219
11.2.2 文件的打开与关闭 220
11.2.3 文件的读写 222
11.2.4 文件格式化输入输出函数 227
11.2.5 文件的定位 228
11.2.6 文件的错误检测 229
11.3 小结 230
习题 231
12.1.1 软件工程概述 234
第12章 综合 234
12.1 软件工程简介 234
12.1.2 软件工程中的有关概念 236
12.1.3 二级C考试对软件工程知识的要求 239
12.2 数据结构简介 239
12.2.1 数据结构概述 239
12.2.2 数据结构的有关概念 240
12.2.3 二级C考试对数据结构知识的要求 243
12.3 二级C上机考试系统简介 243
12.3.1 登录 243
12.3.2 考试界面 244
12.3.3 查看试题要求 245
12.3.4 寻求系统帮助 245
12.3.5 答题 245
12.3.6 交卷 246
12.4 C++简介 247
12.4.1 相关概念 247
12.4.2 C++的词法及词法规则 248
12.4.3 C++程序结构的基本组成部分 248
12.4.4 C++程序的书写格式 249
12.4.5 C++程序的实现 249
附录 250
附录A ASCII码表 250
附录B 运算符的优先级和结合性 251
附录C TurboC2.0常用库函数 252
附录D 错误和警告信息及处理方法 259
附录E 全国计算机等级考试二级(C语言程序设计)考试大纲 264
附录F 全国计算机等级考试二级C语言试题及参考答案(2005年) 267