C语言程序设计(第2版)/蔺德军 本书特色
本书立足于作者近20年的C语言教学经验编写而成,共14章,内容包括概述,数据类型与输入/输出,运算符与表达式,算法与结构化程序设计,选择结构程序设计,循环结构程序设计,数组与字符串,指针,函数,结构体、共用体、枚举、链表,编译预处理,文件,用C语言构造简单数据结构(选学),发展与规范(选学)。全书内容经过精心筛选,按照理解顺序组织,追求由浅入深、步步提高。除涵盖C语言的语法知识外,本书还专门增加了用C语言构造队列、栈、树等实用的数据结构及其相应的常用算法。在第14章中用一个较简单实用的案例解释读者的困惑:与C语言相比,C 增加了什么。本书配有《C语言程序设计上机实验与习题解答》(第2版)(ISBN 978-7-121-37954-3)。此外,本书配套程序源代码、PPT课件、动画演示视频、实验自动阅卷系统等资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。本书特别适合作为大学C语言课程的教材及相关爱好者的自学教材,也适合作为二级C语言考试的参考用书。
C语言程序设计(第2版)/蔺德军 内容简介
本书立足于作者近20年的C语言教学经验编写而成,共14章,内容包括概述,数据类型与输入/输出,运算符与表达式,算法与结构化程序设计,选择结构程序设计,循环结构程序设计,数组与字符串,指针,函数,结构体、共用体、枚举、链表,编译预处理,文件,用C语言构造简单数据结构(选学),发展与规范(选学)。全书内容经过精心筛选,按照理解顺序组织,追求由浅入深、步步提高。除涵盖C语言的语法知识外,本书还专门增加了用C语言构造队列、栈、树等实用的数据结构及其相应的常用算法。在4章中用一个较简单实用的案例解释读者的困惑:与C语言相比,C++增加了什么。本书配有《C语言程序设计上机实验与习题解答》(第2版)(ISBN 978-7-121-37954-3)。此外,本书配套程序源代码、PPT课件、动画演示视频、实验自动阅卷系统等资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。本书特别适合作为大学C语言课程的教材及相关爱好者的自学教材,也适合作为二级C语言考试的参考用书。
C语言程序设计(第2版)/蔺德军 目录
第1章 概述 1
1.1 程序设计语言 1
1.1.1 程序设计语言的概念 1
1.1.2 程序设计语言的发展 1
1.1.3 程序设计的一般步骤 3
1.2 C语言的发展历史和特点 3
1.2.1 C语言的发展历史 3
1.2.2 C语言的特点 4
1.3 第1个C语言程序 5
1.3.1 必要的计算机基础知识——初识内存 5
1.3.2 一个C语言程序从编写到执行的过程 6
1.3.3 使用VC 6.0调试程序 6
1.3.4 使用VC 2010调试程序 10
1.3.5 编译时常见错误 13
1.3.6 链接时常见错误 13
1.3.7 执行时常见错误 14
1.4 C语言程序结构与注意事项 15
1.5 本章小结 17
习题1 17
第2章 数据类型与输入/输出 18
2.1 变量与常量 18
2.2 常量的表示 19
2.2.1 C语言的基本数据类型 19
2.2.2 常量表示一览表 19
2.2.3 字符常量 20
2.2.4 整型常量 21
2.2.5 浮点型常量 22
2.2.6 双精度型常量 22
2.2.7 字符串常量 22
2.3 简单变量类型 23
2.3.1 标识符的要求 23
2.3.2 字符变量、整型变量 24
2.3.3 浮点型变量、双精度型变量 27
2.4 输入/输出 30
2.4.1 getchar()与putchar()函数 30
2.4.2 printf()函数 31
2.4.3 scanf()函数 34
2.5 本章小结 37
习题2 38
第3章 运算符与表达式 41
3.1 表达式 41
3.2 优先级与结合方向 41
3.3 基本算术运算符 42
3.4 自增、自减运算符 43
3.5 赋值运算符 45
3.6 关系运算符 46
3.7 逻辑运算符 47
3.8 条件运算符 48
3.9 逗号运算符 49
3.10 位逻辑运算符 51
3.11 移位运算符 52
3.12 复合运算符 54
3.13 类型转换与混合运算 54
3.14 其他运算符 56
3.15 运算符的优先级与结合性一览表 57
3.16 常用数学函数 58
3.17 本章小结 59
习题3 59
第4章 算法与结构化程序设计 65
4.1 算法及其表示 65
4.1.1 算法的概念 65
4.1.2 算法的特征 65
4.1.3 算法的描述方法 67
4.2 结构化程序设计 68
4.2.1 C语言语句综述 68
4.2.2 goto语句 69
4.2.3 软件危机与结构化程序设计的提出 70
4.2.4 结构化程序设计的核心思想 71
4.2.5 三种基本程序结构的N-S图 73
4.3 顺序结构程序设计 74
4.3.1 顺序结构的含义 74
4.3.2 顺序结构程序设计示例 74
4.4 程序调试 75
4.5 本章小结 77
习题4 77
第5章 选择结构程序设计 79
5.1 if语句 79
5.1.1 if语句的格式 79
5.1.2 if语句的注意事项 80
5.1.3 程序示例 80
5.2 if-else语句 82
5.2.1 if-else语句的格式 82
5.2.2 if-else语句的注意事项 83
5.2.3 缩进结构的书写方式 84
5.2.4 if-else-if语句 86
5.3 switch语句 88
5.3.1 switch语句的格式 88
5.3.2 switch语句的流程图及N-S图 91
5.3.3 switch语句的注意事项 93
5.4 本章小结 93
习题5 93
第6章 循环结构程序设计 98
6.1 循环结构概述 98
6.2 while语句 98
6.3 for语句 100
6.3.1 for语句的格式 100
6.3.2 for语句的注意事项 102
6.4 do语句 102
6.5 break语句与continue语句 104
6.5.1 break语句 104
6.5.2 continue语句 105
6.5.3 break语句与continue语句的替代方法 107
6.6 循环嵌套 108
6.7 常见循环类问题 109
6.8 本章小结 114
习题6 115
第7章 数组与字符串 119
7.1 数组的声明与存储 119
7.1.1 数组的声明与使用 119
7.1.2 数组的存储及数组名中存储的内容 121
7.1.3 数组的初始化 123
7.1.4 使用随机数函数 126
7.2 数组的常用操作 127
7.2.1 查找*大值、*小值 127
7.2.2 排序 128
7.2.3 插入/删除元素 130
7.2.4 查找 131
7.3 字符数组与字符串 132
7.3.1 字符数组 132
7.3.2 字符串 133
7.3.3 字符串的输入/输出 134
7.3.4 字符串的常用处理函数 136
7.4 程序设计示例 138
7.5 本章小结 140
习题7 140
第8章 指针 144
8.1 指针的含义与使用 144
8.1.1 指针与目标单元 145
8.1.2 指针的声明与初始化 145
8.1.3 指针的注意事项 146
8.1.4 指针的使用 147
8.2 指针与一维数组 147
8.3 动态内存分配 152
8.4 复杂指针 154
8.4.1 数组指针及多维数组指针 154
8.4.2 指针数组 157
8.4.3 二级指针 159
8.4.4 数组指针数组 161
8.4.5 三级指针与多级指针 161
8.4.6 指针归纳 162
8.5 本章小结 163
习题8 163
第9章 函数 166
9.1 函数功能 166
9.2 函数的定义与使用 167
9.2.1 函数的定义与调用格式 167
9.2.2 函数的定义与调用注意事项 168
9.2.3 定义一个函数的步骤 169
9.2.4 函数声明与头文件 169
9.2.5 函数的调用与返回 171
9.3 简单参数传递 172
9.3.1 值的传递 172
9.3.2 变量地址的传递 173
9.3.3 参数的处理次序 175
9.4 变量的作用域 176
9.4.1 不同变量的作用域 176
9.4.2 extern关键字 178
9.5 传递数组作为参数 179
9.5.1 传递一维数组 179
9.5.2 传递多维数组 181
9.5.3 传递指针数组 183
9.5.4 const关键字 184
9.6 变量的存储类型 185
9.7 递归 188
9.8 函数指针 191
9.9 主函数的参数 193
9.10 本章小结 194
习题9 194
第10章 结构体、共用体、枚举、链表 200
10.1 结构体 200
10.1.1 结构体的定义 200
10.1.2 关键字typedef的用法 201
10.1.3 结构体变量的定义与初始化 202
10.1.4 结构体与函数 208
10.2 共用体 209
10.3 枚举 211
10.3.1 枚举的定义和枚举变量的声明 211
10.3.2 枚举变量的赋值和使用 212
10.4 链表 213
10.4.1 链表的定义 213
10.4.2 链表的建立与遍历 214
10.4.3 链表节点的插入、删除操作 217
10.4.4 完整程序示例 220
10.5 本章小结 221
习题10 222
第11章 编译预处理 229
11.1 宏定义 229
11.1.1 不带参数的宏定义 229
11.1.2 带参数的宏定义 231
11.1.3 #undef 233
11.2 文件包含 233
11.3 条件编译 234
11.4 本章小结 238
习题11 239
第12章 文件 241
12.1 文件类型 241
12.2 文件的打开与关闭 242
12.2.1 文件的打开 242
12.2.2 文件的关闭 244
12.3 文件的读/写 244
12.3.1 如何判断文件结束 245
12.3.2 fgetc()、fputc()函数 245
12.3.3 fscanf()、fprintf()函数 247
12.3.4 fgets()、fputs()函数 250
12.3.5 fread()、fwrite()函数 251
12.4 文件指针的移动 253
12.4.1 rewind()函数 253
12.4.2 fseek()、ftell()函数 253
12.4.3 随机读/写 254
12.5 本章小结 255
习题12 256
第13章 用C语言构造简单数据结构(选学) 261
13.1 数据结构概述 261
13.1.1 基本概念 261
13.1.2 数据的逻辑结构 261
13.1.3 数据的存储结构 262
13.2 算法复杂度 262
13.2.1 算法的时间复杂度 262
13.2.2 算法的空间复杂度 263
13.3 队列 263
13.4 栈 266
13.5 树 268
13.5.1 树的基本概念 268
13.5.2 二叉树的基本概念 268
13.5.3 二叉树的遍历 269
第14章 发展与规范(选学) 272
14.1 认识C 272
14.2 C语言标准 274
二级C语言笔试真题及答案(一) 276
二级C语言笔试真题及答案(二) 286
附录A ASCII码 296
附录B stdio.h中的常用函数 297
附录C stdlib.h中的常用函数 298
附录D string.h中的常用函数 299
附录E math.h中的常用函数 300
C语言程序设计(第2版)/蔺德军 作者简介
蔺德军,青岛大学教师,从事C语言程序设计课程教学多年,并辅导二级C语言考试,出版教材多部。