第1章 算法及算法描述 1
1.1 问题求解与算法 1
1.1.1 问题求解 1
1.1.2 算法及特点 1
1.1.3 算法优劣标准 2
1.1.4 算法描述 2
1.2 程序设计语言与程序设计 7
1.2.1 程序设计语言的发展史 7
1.2.2 程序设计必备知识 10
1.2.3 结构化程序设计方法 11
1.2.4 程序质量 13
1.3 计算机问题求解的过程 13
1.3.1 算法开发 14
1.3.2 算法实现 14
1.4 练习题 14
第2章 C语言概述 16
2.1 C语言程序的组成及特点 16
2.2 C语言程序上机指导 17
2.3 C程序的调试 19
2.4 练习题 22
第3章 基本数据类型与数据运算 23
3.1 基本标识符 23
3.1.1 保留关键字 23
3.1.2 预定义标识符 23
3.1.3 用户自定义标识符 24
3.2 数据类型 24
3.3 常量 25
3.3.1 直接常量 25
3.3.2 符号常量 27
3.4 变量 28
3.4.1 变量名 28
3.4.2 变量的定义格式 28
3.4.3 变量的值 29
3.4.4 变量的类型 29
3.5 基本数据类型的转换 30
3.5.1 自动类型转换 30
3.5.2 强制类型转换 30
3.6 运算符和表达式 31
3.6.1 运算符和表达式概述 31
3.6.2 算术运算符与算术表达式 32
3.6.3 赋值运算符与赋值表达式 34
3.6.4 关系运算符与关系表达式 35
3.6.5 逻辑运算符与逻辑表达式 36
3.6.6 条件运算符与条件表达式 37
3.6.7 逗号运算符与逗号表达式 37
3.6.8 位运算符与位运算表达式 38
3.6.9 取长度运算符 41
3.6.10 运算符的优先级和结合性 42
3.7 应用举例 43
3.8 练习题 44
第4章 常用库函数 46
4.1 输出函数 46
4.1.1 printf函数 46
4.1.2 putchar函数 49
4.1.3 puts函数 50
4.2 输入函数 50
4.2.1 scanf函数 50
4.2.2 getchar函数 52
4.2.3 gets函数 52
4.3 字符串函数 53
4.3.1 strcat函数 53
4.3.2 strcpy函数 53
4.3.3 strcmp函数 54
4.3.4 strlen函数 54
4.3.5 strlwr函数 54
4.3.6 strupr函数 55
4.4 数学函数 55
4.5 应用举例 58
4.6 练习题 59
第5章 C程序设计的基本结构 62
5.1 基本语句 62
5.2 顺序结构 63
5.3 选择结构 64
5.3.1 if语句 65
5.3.2 switch语句 68
5.4 循环结构 69
5.4.1 while语句 69
5.4.2 do...while语句 70
5.4.3 for语句 71
5.4.4 跳转语句 72
5.4.5 循环的嵌套 74
5.5 应用举例 75
5.6 练习题 79
第6章 数组 83
6.1 一维数组 83
6.1.1 一维数组的定义 83
6.1.2 一维数组的存储 84
6.1.3 一维数组元素的引用 84
6.1.4 一维数组的初始化 85
6.1.5 一维数组的应用 85
6.2 二维数组 92
6.2.1 二维数组的定义 92
6.2.2 二维数组的存储 92
6.2.3 二维数组元素的引用 93
6.2.4 二维数组的初始化 93
6.2.5 二维数组的应用 93
6.3 字符串与字符数组 95
6.3.1 字符串 95
6.3.2 字符数组 96
6.3.3 字符串与字符数组的应用 98
6.4 应用举例 100
6.5 练习题 102
第7章 函数 106
7.1 函数的定义 106
7.1.1 函数定义格式 106
7.1.2 函数返回值 107
7.2 函数的调用 108
7.2.1 不需要进行声明的函数调用 108
7.2.2 需要进行声明的函数调用 110
7.3 嵌套与递归 111
7.3.1 函数的嵌套调用 111
7.3.2 函数的递归调用 113
7.4 数组作为函数参数 115
7.4.1 数组元素作为函数参数 115
7.4.2 数组名作函数参数 116
7.4.3 多维数组作函数参数 118
7.5 变量的作用域与生存期 119
7.5.1 变量的作用域 119
7.5.2 变量的生存期 120
7.6 应用举例 122
7.7 练习题 124
第8章 预处理命令 126
8.1 宏 126
8.1.1 宏定义 126
8.1.2 宏取消 127
8.2 文件包含 128
8.3 条件编译 128
8.4 练习题 130
第9章 指针 131
9.1 指针与指针变量 131
9.1.1 指针的概念 131
9.1.2 指针变量的定义及引用 132
9.1.3 指针变量作为函数参数 136
9.1.4 指针的运算 139
9.1.5 void指针类型 139
9.2 指针与数组 140
9.2.1 数组的指针 140
9.2.2 指向数组元素的指针 141
9.2.3 通过指针引用数组元素 142
9.2.4 指向数组的指针 143
9.2.5 数组指针作参数 144
9.3 指针与字符串 145
9.3.1 字符串的字符指针表示 145
9.3.2 利用字符指针访问字符串 146
9.3.3 字符数组与字符指针的比较 147
9.3.4 字符指针作函数参数 148
9.4 应用举例 149
9.5 练习题 153
第10章 结构体与共用体 156
10.1 结构体 156
10.1.1 结构体类型的定义 156
10.1.2 结构体变量的定义 157
10.1.3 结构体变量的引用 158
10.1.4 结构体变量的初始化 159
10.1.5 结构体应用举例 159
10.2 链表 163
10.2.1 链表概述 163
10.2.2 静态链表 164
10.2.3 动态链表 165
10.3 共用体与枚举 173
10.3.1 共用体的概念 173
10.3.2 共用体定义及使用 173
10.3.3 枚举的概念 174
10.3.4 枚举的使用 175
10.4 应用举例 175
10.5 练习题 178
第11章 文件 180
11.1 文件概述 180
11.2 文件指针 181
11.3 文件的打开与关闭 181
11.3.1 文件的打开 182
11.3.2 文件的关闭 183
11.4 文件的读写 183
11.4.1 字符读写函数 183
11.4.2 字符串的读写函数 185
11.4.3 字读写函数 186
11.4.4 数据块读写函数 187
11.4.5 格式化读写函数 188
11.5 文件的定位 190
11.5.1 重返文件头函数 190
11.5.2 指针位置移动函数 191
11.5.3 取指针当前位置函数 192
11.6 出错的检测 192
11.7 应用举例 194
11.8 练习题 197
第12章 应用案例——学生宿舍卫生管理系统 200
12.1 需求陈述 200
12.2 需求分析 200
12.2.1 功能需求 200
12.2.2 数据需求 201
12.2.3 技术约束 201
12.3 总体设计 201
12.3.1 系统总体结构 201
12.3.2 全局数据结构 202
12.3.3 界面设计 203
12.4 详细设计 208
12.4.1 系统主函数 209
12.4.2 管理员部分 209
12.4.3 普通用户部分 216
12.5 完整代码 217
第13章 应用实验 245
13.1 实验一 熟悉C语言的上机环境 245
13.2 实验二 C语言数据类型与数据运算的应用 247
13.3 实验三 C语言常用库函数 248
13.4 实验四 顺序和选择结构程序设计 250
13.5 实验五 循环结构程序设计 253
13.6 实验六 循环嵌套程序设计 255
13.7 实验七 一维和二维数组的使用 258
13.8 实验八 字符数组及其应用 260
13.9 实验九 函数的基本使用方法 262
13.10 实验十 函数的嵌套和递归 263
13.11 实验十一 指针的定义与使用 265
13.12 实验十二 指针与数组、函数 266
13.13 实验十三 结构体、共用体与链表 267
13.14 实验十四 文件的使用 269
13.15 实验十五 综合性实验 271
附录A 常用字符与ASCII代码对照表 275
附录B C语言ANSI/ISO标准库函数 276
参考文献 280