第1章 C语言程序设计概述 1
1.1 程序设计语言 1
1.1.1 “存储程序”原理 1
1.1.2 程序设计语言的发展 3
1.1.3 语言处理程序 4
1.2 C语言的发展和特点 5
1.3 C语言的语法单位 6
1.3.1 C语言的基本符号 6
1.3.2 关键字 6
1.3.3 标识符 6
1.3.4 C语言语句 8
1.4 C语言程序的基本结构 8
1.4.1 简单的C语言程序介绍 8
1.4.2 C程序的结构与书写规则 11
1.5 程序设计与算法 13
1.5.1 程序设计 13
1.5.2 算法概述 14
1.5.3 算法的描述 15
1.5.4 结构化程序设计方法 19
1.6 C语言程序的上机调试 20
1.6.1 C语言的编译环境与运行程序的步骤 20
1.6.2 Turbo C开发环境 21
1.6.3 Win-TC系统上机操作方法 26
1.6.4 Visual C++6.0系统上机操作方法 28
本章小结 34
习题 34
上机实训 36
实训项目:C语言开发环境的使用与程序调试 37
第2章 数据类型、运算符与表达式 39
2.1 C语言数据类型与数据的存储 39
2.1.1 C语言的数据类型 39
2.1.2 数据在内存中的存储形式 41
2.2 变量与常量 43
2.2.1 常量 43
2.2.2 变量 47
2.3 C语言的运算符和表达式 53
2.3.1 概述 53
2.3.2 算术运算符和算术表达式 55
2.3.3 关系运算符和关系表达式 57
2.3.4 逻辑运算符和逻辑表达式 58
2.3.5 赋值运算符和赋值表达式 60
2.3.6 条件运算符和条件表达式 61
2.4 不同类型数据间的混合运算 63
2.5 位运算 64
2.5.1 位逻辑运算 64
2.5.2 位移运算 65
2.5.3 位运算赋值运算符 65
2.6 常用数学库函数的使用 66
本章小结 67
习题 68
上机实训 70
第3章 顺序结构程序设计 72
3.1 C语言简单语句 72
3.2 数据的输入与输出 73
3.3 格式化输入与输出 75
3.3.1 格式化输出函数printf() 75
3.3.2 格式化输入函数scanf() 80
3.4 字符数据的输入与输出 84
3.4.1 字符输出函数putchar() 84
3.4.2 字符输入函数getchar() 85
3.5 顺序结构程序设计举例 87
本章小结 90
习题 90
上机实训 93
第4章 选择结构程序设计 95
4.1 if语句 95
4.1.1 单分支if语句 95
4.1.2 双分支if语句 96
4.1.3 if语句的嵌套 97
4.2 switch语句 100
4.3 选择结构程序设计举例 102
本章小结 106
习题 107
上机实训 110
第5章 循环结构程序设计 112
5.1 循环的概念 112
5.2 for语句 113
5.3 while语句 117
5.4 do…while语句 119
5.5 break与continue语句 121
5.5.1 break语句 121
5.5.2 continue语句 123
5.6 循环的嵌套 124
5.7 程序举例 126
本章小结 128
习题 128
上机实训 134
第6章 数组 136
6.1 概述 136
6.2 一维数组 137
6.2.1 一维数组的定义 137
6.2.2 一维数组的引用 138
6.2.3 一维数组的初始化 139
6.2.4 应用举例 141
6.3 二维数组 145
6.3.1 二维数组的定义 145
6.3.2 二维数组的引用 147
6.3.3 二维数组的初始化 147
6.3.4 二维数组的应用举例 148
6.4 字符数组与字符串 150
6.4.1 字符数组 150
6.4.2 字符串 152
6.4.3 字符串处理函数 153
本章小结 156
习题 157
上机实训 160
第7章 函数 162
7.1 函数的定义与调用 162
7.1.1 函数的分类 162
7.1.2 函数定义的一般形式 164
7.1.3 函数的调用 167
7.1.4 函数的参数传递 168
7.2 函数的嵌套调用与递归调用 172
7.2.1 函数的嵌套调用 172
7.2.2 函数的递归调用 173
7.3 变量的作用域和存储类别 175
7.3.1 变量的作用域 175
7.3.2 变量的存储类别 177
7.4 内部函数与外部函数 178
7.4.1 内部函数 179
7.4.2 外部函数 179
7.5 程序的多文件结构 180
7.6 程序举例 185
本章小结 189
习题 189
上机实训 192
第8章 编译预处理 194
8.1 宏定义命令 194
8.2 文件包含 200
8.3 条件编译 203
本章小结 205
习题 205
上机实训 209
第9章 指针 210
9.1 地址与指针类型 210
9.1.1 地址及取地址运算 210
9.1.2 指针类型与指针运算 211
9.2 指针变量 213
9.2.1 指针变量的定义 213
9.2.2 指针变量的运算 214
9.3 指针与数组 217
9.3.1 指向数组元素的指针 217
9.3.2 用指针法引用数组元素 218
9.3.3 多维数组与指针 220
9.4 指针与字符串 224
9.5 指针与函数 227
9.5.1 指针变量作函数的参数 227
9.5.2 指向函数的指针变量 232
9.5.3 指针型函数 235
9.6 指针型数组 237
9.7 多级指针 240
本章小结 241
习题 242
上机实训 245
第10章 结构体、共用体和枚举类型 247
10.1 结构体类型 247
10.1.1 结构体类型的定义 247
10.1.2 结构体变量的说明与引用 249
10.1.3 位段 253
10.2 结构体数组 255
10.2.1 结构体数组的定义与初始化 255
10.2.2 应用举例 257
10.3 结构体与指针 259
10.3.1 结构体类型的指针变量 259
10.3.2 指向结构体数组的指针 261
10.3.3 结构体类型变量作函数的参数 262
10.4 动态数据结构与链表 264
10.4.1 链表的相关概念 264
10.4.2 动态内存分配函数 265
10.4.3 链表的建立与操作 267
10.5 共用体 272
10.5.1 共用体类型的定义与变量说明 272
10.5.2 共用体变量的引用 273
10.6 枚举类型 275
10.7 用typedef说明一种新类型名 277
本章小结 280
习题 280
上机实训 283
第11章 文件操作 285
11.1 C语言文件概述 285
11.2 文件的打开与关闭 288
11.3 文件的读写 291
11.3.1 字符的输入和输出 291
11.3.2 格式化输入和输出 294
11.3.3 字符串的输入和输出 298
11.4 随机文件的读写 301
11.4.1 文件的定位 301
11.4.2 frcad函数与fwrite函数 302
11.5 出错检测函数 305
11.5.1 ferror()函数 305
11.5.2 clearerror()函数 305
本章小结 306
习题 307
上机实训 311
第12章 课程设计 313
12.1 课程设计的目的 313
12.2 课程设计的选题与实施过程 314
12.2.1 选题 314
12.2.2 实施过程 314
12.3 课程设计报告的内容 315
12.4 课程设计参考题目 315
本章小结 321
综合项目实训 321
附录A C常用库函数 325
附录B 全国计算机等级考试二级C语言考试大纲 333
附录C 计算机二级C语言考试模拟题 336
模拟题参考答案 350
附录D 习题参考答案 351
第1章 习题解答 351
第2章 习题解答 353
第3章 习题解答 354
第4章 习题解答 356
第5章 习题解答 359
第6章 习题解答 364
第7章 习题解答 367
第8章 习题解答 371
第9章 习题解答 372
第10章 习题解答 375
第11章 习题解答 378
参考文献 382