《C语言程序设计教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:冯林主编;姚远,吕连生,张璨副主编
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2015
  • ISBN:9787040414653
  • 页数:354 页
图书介绍:本书为高教类2014国家级教学成果一等奖“研究型大学拔尖创新人才培养体系的构建与实践”的研究成果之一。全书以俄罗斯方块程序为主线,在分模块讲解C语言的基础知识,共分为11章,前8章内容主要介绍C语言的基础知识,包括C语言组成结构、基本数据类型、逻辑控制语句、函数和数组等知识;第9至11章着重介绍C语言中的难点内容,指针、结构体和共用体、文件操作,属于进阶内容。通过使用大量示例,加深读者对相关知识点的理解与把握。本书采用纸质教材与网络资源相融合的新形式。网络教学专栏有 “扫一扫”(二维码扫描显示程序运行结果)、“扩展阅读”、“扩展实例”,“想一想”专栏有助于启发学生思考,激发学生学习兴趣。 本书可以作为电子信息类专业的本科教材,特别适合用于“卓越工程师计划”试点或教改班课程的改革教材,也可供相关工程技术人员参考学习。

第1章 C语言概述 1

1.1 程序和算法 2

1.2 C语言简介 2

1.2.1 C语言的产生与发展 2

1.2.2 C语言的主要特点 4

1.2.3 C语言程序的基本结构 4

1.3 C语言开发环境 7

1.3.1 编辑器、编译器和调试器 7

1.3.2 集成开发环境 9

1.4 Code∷Blocks开发环境 10

1.4.1 Code∷Blocks简介 10

1.4.2 使用Code∷Blocks开发环境运行C语言程序 10

1.5 案例:俄罗斯方块的欢迎界面 16

本章小结 17

习题 17

第2章 数据类型、运算符和表达式 19

2.1 C语言标识符与关键字 20

2.1.1 标识符 20

2.1.2 关键字 21

2.2 变量与常量 21

2.2.1 变量 21

2.2.2 常量 24

2.3 数据类型 25

2.3.1 整型数据 26

2.3.2 实型数据 27

2.3.3 字符型数据 28

2.3.4 字符串 29

2.3.5 转义字符 30

2.4 数据类型转换 31

2.4.1 选择正确数据类型的方法 31

2.4.2 强制类型转换 33

2.4.3 隐式类型转换 34

2.5 运算符与表达式 35

2.5.1 算术运算符与算术表达式 35

2.5.2 赋值运算符与赋值表达式 37

2.5.3 移位操作符 39

2.5.4 逗号运算符 40

2.6 多类型数据混合运算 41

2.7 案例:俄罗斯方块——计算玩家等级 42

本章小结 43

习题 43

第3章 顺序结构程序设计及输入/输出 46

3.1 结构化程序设计思想 47

3.2 C语句 49

3.2.1 简单语句 49

3.2.2 复合语句 50

3.3 数据的输入/输出 50

3.3.1 字符输出函数putchar 51

3.3.2 字符输入函数getchar 52

3.3.3 格式输出函数printf 53

3.3.4 格式输入函数scanf 58

3.4 案例:俄罗斯方块——信息提示面板 61

本章小结 63

习题 63

第4章 选择结构程序设计及其应用 67

4.1 二分支选择结构 68

4.1.1 关系运算符与关系表达式 68

4.1.2 逻辑运算符与逻辑表达式 70

4.1.3 基本if语句 74

4.2 多分支选择结构 78

4.2.1 嵌套的if-else语句 78

4.2.2 并列的if-else语句 82

4.2.3 switch语句 84

4.3 条件运算符与条件表达式 88

4.4 案例:俄罗斯方块——得分统计 90

本章小结 94

习题 94

第5章 循环结构程序设计及其应用 97

5.1 自增、自减运算符 98

5.1.1 简介及应用 98

5.1.2 自增、自减运算符的前置形式和后置形式 99

5.2 循环结构 101

5.3 前侧循环语句 102

5.3.1 while循环语句 102

5.3.2 for循环语句 104

5.4 后侧循环语句 109

5.5 循环嵌套 112

5.6 break语句和continue语句 114

5.6.1 break语句 114

5.6.2 continue语句 117

5.7 案例:俄罗斯方块——绘制边框 119

本章小结 121

习题 121

第6章 数组 125

6.1 数组 126

6.2 一维数组 126

6.2.1 一维数组的定义 127

6.2.2 一维数组元素的引用 128

6.2.3 一维数组的初始化 131

6.2.4 一维数组的应用 132

6.3 二维数组 138

6.3.1 二维数组的定义 138

6.3.2 二维数组元素的引用 139

6.3.3 二维数组的初始化 140

6.3.4 二维数组的应用 141

6.4 字符数组 144

6.4.1 字符数组和字符串 144

6.4.2 字符串的初始化 146

6.4.3 字符串的输入/输出 146

6.4.4 字符串处理函数 149

6.4.5 字符数组的应用 157

6.5 案例:俄罗斯方块——绘制具体图形 161

本章小结 163

习题 164

第7章 函数 167

7.1 模块化设计思想 168

7.1.1 模块划分标准 169

7.1.2 模块划分方法 170

7.2 函数概念 171

7.2.1 什么是函数 171

7.2.2 数类型 173

7.3 函数定义与返回值 176

7.3.1 函数定义的方法 176

7.3.2 函数的返回值 178

7.4 函数声明方法 179

7.4.1 函数的声明格式 179

7.4.2 函数声明和函数定义的区别 181

7.5 函数调用 181

7.5.1 函数调用方法 182

7.5.2 函数的执行过程 183

7.6 数组作为函数参数 185

7.6.1 数组元素作为函数参数 185

7.6.2 一维数组作为函数参数 187

7.6.3 二维数组作为函数参数 192

7.7 函数的嵌套与递归调用方法 195

7.7.1 函数的嵌套调用 195

7.7.2 函数的递归调用 198

7.8 变量的作用域和存储方式 204

7.8.1 变量的作用域 204

7.8.2 变量的存储类型 209

7.9 C语言编译预处理 213

7.9.1 文件包含(#include预处理语句) 213

7.9.2 宏定义 214

7.9.3 条件编译 220

7.10 多文件程序设计 221

7.11 案例:俄罗斯方块——绘制完整的初始化界面 223

本章小结 228

习题 229

第8章 俄罗斯方块游戏的总体设计 234

8.1 俄罗斯方块游戏的总体框架 234

8.1.1 游戏界面元素 235

8.1.2 游戏事件检测 236

8.1.3 游戏控制 237

8.2 游戏相关知识介绍 238

8.2.1 随机数 238

8.2.2 程序运行时间 240

8.2.3 键盘响应操作 240

8.2.4 设置隐藏光标 242

8.3 程序流程与框架结构 243

8.3.1 主函数流程 243

8.3.2 Run函数流程 243

8.3.3 其他函数的流程 245

本章小结 246

第9章 指针 247

9.1 地址和指针 248

9.1.1 变量地址与变量值 248

9.1.2 变量的间接访问 249

9.1.3 指针变量的声明 250

9.2 指针变量的引用 252

9.2.1 指针运算符 252

9.2.2 指针运算 254

9.2.3 用指针做函数参数 256

9.3 指针与数组 259

9.3.1 一维数组指针 259

9.3.2 二维数组指针 262

9.3.3 数组指针与函数参数 264

9.4 指针与字符串 267

9.5 指针数组与数组指针 271

9.6 指针与函数 277

9.6.1 指向函数的指针 277

9.6.2 函数返回指针 279

9.7 指向指针的指针 281

9.8 案例:俄罗斯方块程序的改进 283

本章小结 285

习题 285

第10章 结构体和共用体 290

10.1 结构体 291

10.1.1 结构体类型和结构体变量 291

10.1.2 结构体变量的初始化与引用 294

10.1.3 结构体变量作为函数参数 296

10.2 结构体数组 297

10.2.1 结构体数组的定义 298

10.2.2 结构体数组的初始化 298

10.3 结构体指针 301

10.3.1 结构体类型指针定义与引用 301

10.3.2 指向结构体数组的指针 303

10.3.3 结构体指针作为函数参数 305

10.4 共用体 306

10.4.1 共用体类型的定义 307

10.4.2 共用体与结构体的区别 308

10.5 枚举类型 310

10.6 typedef机制 312

10.7 案例:俄罗斯方块程序的改进——整合变量 314

本章小结 315

习题 315

第11章 文件操作 321

11.1 文件介绍 322

11.2 文件指针 322

11.3 文件的打开与关闭 323

11.3.1 文件打开 323

11.3.2 文件关闭 325

11.4 文件读/写 326

11.4.1 字符读/写函数——fgetc/fputc 326

11.4.2 数据块读/写函数——fread/fwrite 331

11.4.3 格式读/写函数——fprintf/fscanf 334

11.4.4 字符串读/写函数——fgets/fputs 337

11.5 文件定位 340

11.5.1 位置指针复位函数rewind 341

11.5.2 随机读/写与指针定位函数fseek 342

11.6 案例:俄罗斯方块程序的完善——英雄榜系统 344

本章小结 347

习题 347

附录A 常用字符与ASCII代码对照表 351

附录B 运算符的优先级与结合性 352

参考文献 353