图书简介:
目 录
第1章 程序设计基础知识 1
1.1 计算思维与自动化计算 1
1.1.1 科学思维及其分类 1
1.1.2 计算思维的概念与特征 2
1.1.3 计算思维的举例—自动化计算 3
1.2 计算机内的数据表示 4
1.2.1 数制及其转换 4
1.2.2 原码、反码及补码 6
1.2.3 定点数及浮点数 8
1.3 程序与算法 9
1.3.1 程序及算法的概念 9
1.3.2 算法的特点及评价标准 10
1.3.3 算法的表示 10
1.4 C语言简介 13
1.4.1 程序设计语言 13
1.4.2 C语言的历史 14
1.4.3 C语言的特点 14
1.4.4 C程序的结构 15
1.4.5 C程序的运行步骤 17
习题 19
第2章 C程序设计初步 20
2.1 常量和变量 20
2.1.1 C语言的基本词法 20
2.1.2 常量 21
2.1.3 变量 23
2.2 简单的数据类型 24
2.2.1 整型 24
2.2.2 实型 26
2.2.3 字符型 26
2.3 输入/输出函数 27
2.3.1 字符输出函数 27
2.3.2 字符输入函数 28
2.3.3 格式输出函数 30
2.3.4 格式输入函数 34
2.4 运算符及表达式 36
2.4.1 算术运算符 37
2.4.2 赋值运算符 39
2.4.3 自增、自减运算符 41
2.4.4 关系运算符 44
2.4.5 逻辑运算符 46
2.4.6 条件运算符 49
2.4.7 逗号运算符 51
2.4.8 位运算符 52
2.5 类型转换 55
2.5.1 自动类型转换 56
2.5.2 强制类型转换 56
习题 57
第3章 结构化程序设计及控制语句 62
3.1 C语句概述 62
3.1.1 表达式语句 62
3.1.2 控制语句 62
3.1.3 函数调用语句 63
3.1.4 空语句 63
3.1.5 复合语句 63
3.2 顺序结构及实现 63
3.2.1 顺序结构程序设计思想 63
3.2.2 赋值语句 64
3.2.3 顺序结构程序设计举例 65
3.3 选择结构及实现 66
3.3.1 选择结构程序设计思想 66
3.3.2 if语句 66
3.3.3 if-else语句 67
3.3.4 嵌套的if语句 68
3.3.5 switch语句 71
3.3.6 选择结构程序设计举例 72
3.4 循环结构及实现 77
3.4.1 循环结构程序设计思想 77
3.4.2 while循环 78
3.4.3 do-while循环 79
3.4.4 for循环 80
3.4.5 循环的嵌套 82
3.4.6 转向语句 86
3.4.7 循环结构程序设计举例 89
3.5 结构化程序设计风格 93
3.5.1 程序设计的步骤 93
3.5.2 结构化程序设计方法 94
3.5.3 程序的设计风格 94
习题 95
第4章 函数及变量的存储类别 101
4.1 函数的定义 101
4.1.1 函数定义的一般形式 101
4.1.2 函数参数和返回值 102
4.2 函数的声明和调用 104
4.2.1 函数的声明 104
4.2.2 函数的调用 104
4.2.3 函数调用的数据传递方式 106
4.3 变量的作用域和存储类别 107
4.3.1 变量的作用域、内部变量和外部变量 107
4.3.2 变量的存储类别 109
4.3.3 内部变量的存储类别 110
4.3.4 外部变量的存储类别 112
4.4 外部函数和内部函数 113
4.4.1 外部函数 113
4.4.2 内部函数 114
4.5 函数的嵌套调用和递归调用 115
4.5.1 函数的嵌套调用 115
4.5.2 函数的递归调用 116
4.6 编译预处理 119
4.6.1 宏定义 119
4.6.2 文件包含 122
4.6.3 条件编译 123
习题 124
第5章 数组 130
5.1 一维数组 130
5.1.1 一维数组的定义 130
5.1.2 一维数组的访问 130
5.1.3 一维数组的初始化 131
5.1.4 一维数组应用举例 131
5.2 二维数组 133
5.2.1 二维数组的定义 133
5.2.2 二维数组的访问 134
5.2.3 二维数组的初始化 134
5.2.4 二维数组应用举例 135
5.3 字符数组 136
5.3.1 字符数组的定义和使用 136
5.3.2 字符串和字符数组 137
5.3.3 常用字符串处理函数 138
5.3.4 字符数组应用举例 140
5.4 数组作为函数参数 141
5.4.1 数组元素作为实参 141
5.4.2 数组名作为实参 142
习题 143
第6章 指针 147
6.1 指针类型和指针变量 147
6.1.1 地址和指针的概念 147
6.1.2 指针变量的定义 148
6.1.3 指针变量的使用 149
6.2 指针和函数 152
6.2.1 指针变量作函数参数 152
6.2.2 返回指针值的函数 154
6.2.3 指向函数的指针变量 155
6.3 指针与数组 159
6.3.1 一维数组和指针 159
6.3.2 二维数组和指针 162
6.3.3 字符串和指针 166
6.3.4 数组名作为实参 169
6.3.5 指针数组及带参main( )函数 172
习题 177
第7章 其他构造数据类型 183
7.1 结构体 183
7.1.1 结构体类型 183
7.1.2 结构体变量 184
7.1.3 结构体数组 186
7.1.4 向函数传递结构体型数据 189
7.2 链表 189
7.2.1 动态存储分配与回收 189
7.2.2 链表的特点 190
7.2.3 链表的生成和输出 191
7.2.4 链表的插入与删除 195
7.3 共用体 197
7.3.1 共用体类型 197
7.3.2 共用体变量 198
7.4 枚举类型 200
7.4.1 枚举类型 200
7.4.2 枚举类型变量 201
7.5 用户自定义类型 201
7.5.1 用户自定义类型的定义 202
7.5.2 用户自定义类型的应用 204
习题 204
第8章 文件 210
8.1 C文件的基础知识 210
8.1.1 C文件的基本格式 210
8.1.2 缓冲文件和非缓冲文件系统 210
8.1.3 C文件操作的一般过程 211
8.1.4 文件类型与文件类型指针 211
8.2 文件的打开与关闭 212
8.2.1 文件的打开 212
8.2.2 文件的关闭 213
8.3 文件的读/写 213
8.3.1 字符读/写函数 214
8.3.2 数据块读/写函数 215
8.3.3 格式化读/写函数 217
8.3.4 字读/写函数 218
8.3.5 字符串读/写函数 218
8.3.6 读/写其他类型数据 219
8.4 文件的定位 219
8.4.1 fseek( )函数 219
8.4.2 rewind( )函数 220
8.4.3 ftell( )函数 220
8.5 文件的错误检测及处理 220
8.5.1 ferror( )函数 220
8.5.2 clearerr( )函数 220
8.5.3 feof( )函数 221
8.6 应用举例 221
习题 224
参考文献 230
展开
前 言
程序设计作为计算机科学的载体,对于提高学生的计算思维能力、培养学生运用计算机语言和相关开发工具解决问题的技能,有着重要的作用。
20世纪70年代,贝尔实验室在B语言的基础上设计出C语言,多年来C语言被迅速传播,目前已成为世界上最流行、使用最广泛的高级程序设计语言之一。C语言是一种通用的、结构化的程序设计语言。无论是系统软件、应用软件,还是数据处理、数值计算等,都可以很方便地使用C语言来开发。
基于思维训练和技能培养的基本思路,在本书的编写过程中主要遵循了以下原则。
(1)知识讲授和技能培养并重的原则。程序设计不仅是一种知识,同时还是一种技能,因此程序设计课程的教学内容在注重知识讲授的同时,还应注重学生技能(如编程能力、编程风格等)方面的培养。
(2)循序渐进的原则。知识的掌握和技能的训练都是一个循序渐进的过程,学生学习程序设计的知识和技能的培养应该分三步走:掌握基本知识,能够读懂实例,模仿编写程序,逐步达到能够独立编写程序的目的。
(3)分解与综合的原则。人们认识复杂事物的一个基本方法是分解。对学生来说,一门新课程相当于一个需要接受的新事物,采用“分解与综合”的方法可以使他们感觉到学习更容易。因此本书内容的安排基本遵循“模块大小适中”的原则,即每一章、一节乃至一个知识点都尽可能保持适中,将难点适当分解,便于学生掌握。
(4)规范化的原则。程序设计是软件开发过程的一个基本阶段,一开始就注意培养学生良好的程序习惯十分重要,因此本书中的每个例题程序都尽可能有良好的程序风格。
本书是工业和信息产业科技与教育专著出版资金项目的规划教材。本书内容共分8章,第1、2章介绍程序与算法、C语言的数据类型、输入/输出函数、运算符及表达式等基础知识;第3章介绍C语言的控制结构及结构化的程序设计方法;第4章介绍函数及变量的存储类别;第5~7章介绍数组、结构体等构造数据类型及指针的应用;第8章介绍C语言的文件操作。其中第1、3、4、6、7章由王苗编写,第2、5章由林皓波编写,第8章由徐建民编写。最后由王苗和徐建民共同完成定稿。
本书作者都是长期从事大学计算机相关课程教学工作的一线教师,具有多年的C语言程序设计和相关专业课程的教学经验。但由于作者水平、精力所限,再加上时间紧迫,书中难免有不足甚至错误之处,敬请读者批评指正。
作者
展开