第1章 C程序设计基本知识 1
1.1 C程序介绍 1
1.1.1 程序设计和程序设计语言 1
1.1.2 简单的C程序 2
1.2 C程序的基本结构 5
1.3 基本输入和输出方法 6
1.3.1 字符输入函数getchar() 6
1.3.2 字符输出函数putchar() 6
1.3.3 格式输出函数printf() 7
1.3.4 格式输入函数scanf() 8
1.4 C程序的上机步骤 9
1.5 C程序的运行环境 11
1.5.1 Visual C+++ 6.0 11
1.5.2 Turbo C 2.0 18
小结 22
实验 23
习题 23
第2章 算法及其描述 26
2.1 算法的概念 26
2.2 简单算法引例 27
2.3 算法的特性 28
2.4 算法的描述 29
小结 37
实验 37
习题 38
第3章 数据类型及表达式 39
3.1 数据类型及表达式引例 39
3.2 C语言的数据类型 41
3.2.1 标识符、关键字及分隔符 41
3.2.2 数据类型 42
3.2.3 常量与变量 43
3.3 运算符及表达式 49
3.3.1 赋值运算符与赋值表达式 50
3.3.2 算术运算符与算术表达式 51
3.3.3 自增与自减运算符 52
3.3.4 关系运算符与关系表达式 53
3.3.5 逻辑运算符与逻辑表达式 54
3.3.6 条件运算符与条件表达式 55
3.3.7 逗号运算符与逗号表达式 56
3.3.8 求字节数运算符 56
3.4 实例解析 57
小结 58
实验 59
习题 61
第4章 结构化程序设计 64
4.1 顺序结构引例 64
4.2 顺序结构 65
4.3 选择结构引例 68
4.4 选择结构 68
4.4.1 单分支选择结构 69
4.4.2 双分支选择结构 70
4.4.3 多分支选择结构 72
4.5 循环结构引例 79
4.6 循环结构 80
4.6.1 while语句 80
4.6.2 do…while语句 82
4.6.3 for语句 83
4.6.4 循环语句的嵌套 86
4.6.5 break语句和continue语句 87
4.7 实例解析 91
4.8 综合实例 94
小结 96
实验 97
习题 100
第5章 数组 104
5.1 数组引例 104
5.2 一维数组的定义和引用 105
5.2.1 一维数组的定义 105
5.2.2 一维数组的引用 106
5.3 二维数组的定义和引用 108
5.3.1 二维数组的定义 108
5.3.2 二维数组的引用 109
5.4 字符数组和字符串 112
5.4.1 一维字符数组 112
5.4.2 一维字符数组与字符串 112
5.4.3 字符数组的引用 112
5.4.4 字符串输入输出函数 113
5.4.5 常用字符串函数 113
5.5 实例解析 117
小结 120
实验 121
习题 122
第6章 函数与预处理 125
6.1 函数应用实例 125
6.1.1 模块化设计 125
6.1.2 函数的基本概念 126
6.1.3 函数的引入实例 126
6.1.4 函数的分类 128
6.2 函数的定义 129
6.2.1 无参函数定义的一般形式 129
6.2.2 有参函数定义的一般形式 129
6.2.3 空函数 130
6.3 函数的参数和返回值 131
6.3.1 形式参数和实际参数 131
6.3.2 函数的返回值 132
6.4 函数调用 133
6.4.1 函数调用的一般形式 133
6.4.2 函数调用的方式 134
6.4.3 对被调用函数的声明和函数原型 135
6.5 函数的嵌套调用和递归调用 136
6.5.1 函数的嵌套调用实例 136
6.5.2 函数的嵌套调用说明 137
6.5.3 函数的递归调用实例 138
6.5.4 函数的递归调用说明 138
6.6 内部函数和外部函数 139
6.6.1 内部函数 139
6.6.2 外部函数 139
6.6.3 多个源文件的编译与连接 143
6.7 变量的作用域 144
6.7.1 局部变量 144
6.7.2 全局变量 145
6.8 变量的存储类别 146
6.8.1 动态存储和静态存储 146
6.8.2 动态存储 147
6.8.3 用static声明的局部变量 148
6.8.4 register变量 149
6.8.5 文件级外部变量和程序级外部变量 150
6.9 编译预处理 151
6.9.1 #include命令 151
6.9.2 宏定义 151
6.9.3 条件编译 158
小结 160
实验 160
习题 161
第7章 指针 165
7.1 关于指针的引例 165
7.2 指针与指针变量 166
7.2.1 指针与指针变量的基本概念 166
7.2.2 指针变量的类型说明 167
7.2.3 指针变量的赋值 168
7.2.4 指针变量的运算 168
7.3 指针与数组 172
7.3.1 一维数组的指针表示方法 172
7.3.2 数组名和数组指针变量作函数参数 173
7.3.3 二维数组的指针表示方法 174
7.4 指针与字符串 176
7.4.1 字符串指针变量的说明和使用 176
7.4.2 使用字符串指针变量与字符数组的区别 178
7.4.3 指针数组 179
7.5 指针与函数 182
7.5.1 函数指针变量 182
7.5.2 指针型函数 184
7.6 指向指针的指针变量 185
7.7 指针的实例 186
小结 189
实验 190
习题 192
第8章 结构体、共用体和枚举类型 198
8.1 结构型类型 198
8.1.1 结构体的实例 198
8.1.2 结构体类型的定义 199
8.2 结构体变量的定义和引用 200
8.2.1 结构型变量的定义和初始化 201
8.2.2 结构型变量成员的引用 202
8.3 结构型数组的定义和引用 206
8.3.1 结构型数组的定义和初始化 206
8.3.2 结构型数组元素成员的引用 207
8.4 指向结构型数据的指针变量的定义和引用 209
8.4.1 指向结构型变量的指针 209
8.4.2 指向结构型数组的指针 210
8.4.3 在函数间传递结构型数据 211
8.5 用指针处理链表 215
8.5.1 什么是链表 215
8.5.2 动态链表的基本操作 218
8.6 共用型 226
8.6.1 共用型的定义 227
8.6.2 共用型变量的定义 228
8.6.3 共用型变量的引用 229
8.7 枚举型 233
8.7.1 枚举型的定义 233
8.7.2 枚举型变量的定义 234
8.7.3 枚举型变量的引用 234
8.8 用户自定义类型 235
小结 238
实验 239
习题 240
第9章 位运算 244
9.1 位运算的C程序实例 244
9.2 二进制位运算 245
9.2.1 位逻辑运算 245
9.2.2 移位运算 249
9.2.3 复合赋值位运算符 250
9.2.4 不同长度的数据进行位运算 251
9.3 位段 251
9.3.1 位段结构类型及位段结构变量的定义 251
9.3.2 位段结构的存储 254
9.3.3 位段结构的使用 254
9.4 综合实训 255
小结 256
实验 257
习题 257
第10章 文件 261
10.1 文件操作的C程序实例 261
10.2 文件的打开与关闭 264
10.2.1 文件的打开 264
10.2.2 文件的关闭 266
10.3 文件的读写 267
10.3.1 字符读写函数 268
10.3.2 数据读写函数 271
10.3.3 字符串读写函数 274
10.3.4 格式化读写函数 275
10.3.5 其他读写函数 276
10.4 文件的定位 278
10.4.1 文件头定位函数 278
10.4.2 文件随机定位函数 278
10.4.3 流式文件的定位函数 279
10.4.4 判断文件结束函数feof 279
10.5 文件的出错检测 279
10.5.1 ferror函数 279
10.5.2 clearerr函数 279
10.6 综合实训 280
10.6.1 实训内容 280
10.6.2 实训说明 280
10.6.3 程序分析 280
10.6.4 程序源码 281
小结 289
实验 289
习题 290
第11章 C语言课程设计 296
11.1 课程设计任务书 296
11.2 学生成绩管理系统 298
11.3 工资管理系统 317
小结 347
实验 348
习题 348
附录 349
参考文献 369