本书采用按课时、卡片化的设计理念,融合成果导向OBE的教育理念,从编程知识和能力的学习需求出发,聚焦学习成果的达成,并力求突出重点,深入浅出、希冀读者在项目实践与应用中掌握C语言基本知识和程序设计的基础知识、编程技能,提高程序设计素养。
本书共17课,内容涵盖了C语言基本程序设计语法,每课时都有明确的学习成果目标、提供热身问题引发思考、精练的知识点等,提供了较丰富的例程,并为每课提供了有一定趣味性的实践项目。
本书是立体化教材,书上有辅助教学资源二维码,包括教学视频和程序代码等;每课结束时均配套成果测评单元,部分编程类题型还提供参考代码,并以此检验学习成果的达成度,利于读者持续改进。
本书适合于各类高等本科院校和高职高专院校作为计算机类专业C语言编程课程的教材。
杨亦红,浙江工业职业技术学院,教研室主任,2000.8---2003.4 华为技术有限公司 电气维修和管理
2003.5---至今 浙江工业职业技术学院 电子系教师
一..教育背景
2001.4—2004.3 浙江大学测试计量技术及仪器专业研究生,获工学硕士学位。
二.著译作品
(1) 杨亦红 主编,《嵌入式应用技术与实践》,化学工业出版社,2014年
(2)杨亦红 副主编,《STM32单片机应用与全案例实践》,电子工业出版社,2017年
三.业务成果
主持完成科研课题2项,主研完成(或在研)科研课题6项,主持和参与2项在线开放课程建设。
在全国性刊物上发表学术论文近10篇,均为独著。
主编、参编教材2本。
第1课 认识计算机和计算机语言 1
1.1 计算机的组成和工作原理 1
1.2 计算机语言的发展历史 3
1.3 程序员要做的事 4
1.4 编程实践活动的步骤 5
小结 6
成果测评 7
第2课 熟悉编程环境 8
2.1 集成开发环境简介和初步认识 8
2.2 在集成开发环境中进行程序的调试 13
项目实践 电池充电的动画 15
小结 17
成果测评 18
第3课 熟悉标识符规则和C语言中的数据 21
3.1 一切皆有名——标识符 21
3.2 内存与数据类型 22
3.3 计算机中数的表示方法 23
项目实践 数字电子钟 29
小结 33
成果测评 34
第4课 与计算机的互动——信息的输入和输出 36
4.1 以文本方式互动 36
4.2 文本信息的输出 37
4.3 文本信息的输入 39
项目实践 电子元器件库存清单 39
小结 40
成果测评 41
第5课 熟知运算1——赋值、算术和关系运算 44
5.1 专长是运算 44
5.2 赋值运算符 45
5.3 简单的算术题——算术运算 46
5.4 比比看——关系运算符 48
5.5 类型转换 49
项目实践 弹跳运动小球 51
小结 52
成果测评 53
第6课 熟知运算2——逻辑与决策 55
6.1 流程控制语句和流程图 55
6.2 逻辑运算符 56
6.3 沾沾if语句的“仙气” 57
6.4 条件运算符 60
项目实践 标准体重判断 61
小结 62
成果测评 63
第7课 熟知运算3——位运算与其他运算 67
7.1 位运算符 67
7.2 特殊的变量,特殊的运算——指针变量与*、&运算符 69
7.3 逗号运算符 71
项目实践 模拟LED屏点阵文字的显示 71
小结 73
成果测评 74
第8课 循环使程序生动起来 76
8.1 while循环 76
8.2 for循环 78
8.3 do…while循环 80
8.4 对于循环和循环语法的思考 81
项目实践 模拟LED屏显示——野火烧不尽1 82
小结 84
成果测评 85
第9课 流程控制的多种姿态 89
9.1 姿态一——多分支流程之switch语句 89
9.2 姿态二——循环嵌套 91
9.3 姿态三——提前终止循环 92
项目实践 键控小人 94
小结 96
成果测评 97
第10课 定制化的数据类型——结构体struct和数组 102
10.1 结构体struct和结构体变量的定义 102
10.2 结构体变量的内存分布、初始化、成员的访问 103
10.3 数组的定义与初始化 105
项目实践 统计字符个数 107
小结 108
成果测评 109
第11课 定制化的数据类型——联合、位域与枚举 112
11.1 联合union 112
11.2 位域bit-fields 113
11.3 枚举enum 116
项目实践 模拟单片机的LED流水灯显示 118
小结 120
成果测评 121
第12课 借我一把金钥匙——指针 124
12.1 指针的概念 124
12.2 用指针来操作数组 127
12.3 用指针来操作结构体 130
项目实践 模拟LED屏显示——野火烧不尽2 131
小结 134
成果测评 134
第13课 功能封装的利器——函数1 137
13.1 函数的概念、定义与声明 137
13.2 函数的调用和栈帧 138
13.3 函数调用时的参数传递 140
13.4 变量的作用域和存储类型 141
项目实践 “石头—剪刀—布”游戏 144
小结 145
成果测评 146
第14课 功能封装的利器——函数2 150
14.1 递归 150
14.2 指针在函数中的应用 153
14.3 常见的库及库函数 155
项目实践 用递归方法解猴子吃桃问题 156
小结 157
成果测评 158
第15课 数据的再认识——使用链表 162
15.1 内存的动态分配 162
15.2 使用链表 165
项目实践 约瑟夫问题——死里逃生 170
小结 173
成果测评 174
第16课 定制编译过程——预编译 177
16.1 预定义符号 177
16.2 宏 178
16.3 条件编译 181
16.4 #include包含头文件 183
项目实践 计算几何图形的面积 183
小结 185
成果测评 186
第17课 利用文件保存数据 188
17.1 文件与流 188
17.2 打开和关闭文件 189
17.3 读写文件 191
17.4 文件的定位 193
项目实践 输出全年的日历 194
小结 196
成果测评 197
附录 199
附录A ASCII码字符表 199
附录B C程序格式规范提要 200
附录C 各种运算符的结合性和优先级 202
参考文献 204