前言 C语言是一门面向过程的计算机编程语言,功能强大而灵活,简洁高效,广泛用于系统软件与应用软件的开发。C语言语法简单,学习成本小,初学者能在较短的时间内快速掌握编程技术,所以C语言是大部分程序员学习的第一门语言。 但是传统的C语言学习课程都将主要的精力放在对C语言语法细节的介绍上。学生们从一开始就陷入琐碎的细节之中,无法感受到编程的乐趣。即使费了九牛二虎之力掌握了基础知识,也无法写出能解决实际问题的程序,更谈不上掌握编程思维。本书通过“微项目”在简化的环境中介绍编程。本书设计的“模拟电子屏” 构成的“微项目”就像围棋一样,规则虽然非常简单,但却能衍生无数新内容,可以充分激发读者的想象力和创造力。通过“模拟电子屏” 项目学习编程, 读者的学习效率将非常高,能够快速掌握基础知识,并完成很多经典的游戏。整个学习过程体验非常好,就像一场探索旅行。在完成几个经典的游戏之后,读者会发现,只需要掌握少量的基础语法知识,就能完成各种有趣的小游戏。 本书主要内容 本书共分为11章,各章主要内容如下。 第1章介绍了程序及程序设计的基本概念和集成开发环境的使用,并且通过简单的案例介绍C语言程序的基本结构和特点。 第2章介绍了数据类型、运算规则,如何读取和操作数据。 第3、4章分别介绍了选择结构和循环结构。 第5章介绍了数组的定义、引用,以及数组的应用。 第6章介绍了函数的定义和调用,以及利用函数进行模块化设计; 并且介绍了经典游戏设计的框架,利用框架可以快速实现各种小游戏。 第7章介绍了指针的概念以及指针与数组、函数之间的联系。 第8章介绍了结构体的基本概念,结构体的定义、引用和初始化,并介绍了链表的概念和常用操作。 第9章介绍了字符串的定义、存储和使用,以及字符串常用函数,并介绍了字符串与指针之间的联系。 第10章介绍了文件的概念和文件常用操作。 第11章为综合应用,利用C语言第三方图形库设计并完成经典的Flappy Bird游戏。 本书特色 (1) 在本书设计的“模拟电子屏”辅助学习项目中,只需点亮和关闭“屏幕”上的“灯”等4个简单的函数指令,就可以构建“贪吃蛇”“俄罗斯方块”“飞机大战”等经典游戏。 (2) 语言简洁易懂,适合自学。本书给出了一个简单、易于掌握的框架,这个框架能够帮助读者批量地完成各种小游戏,让读者可以快速实现从零基础到游戏设计者的飞跃。 (3) 代码详尽,每个案例都是采用迭代的设计方法,由简单的小项目逐步地演变成复杂的项目,读者可以完整地感受在程序设计时如何将复杂项目分解,分而治之。 配套资源 为了便于教与学,本书配有390分钟微课视频、源代码、教学课件、教学大纲、教案、习题题库。 (1) 微课视频获取方式: 读者可以先扫描书本封底的文泉云盘防盗码,再扫描书中相应的视频二维码,观看教学视频。 (2) 源代码获取方式: 先扫描书本封底的文泉云盘防盗码,再扫描下方二维码,即可获取。 源代码 (3) 其他配套资源获取方式: 扫描书本封底的“书圈”二维码,关注并回复本书号后,即可下载。 读者对象 本书既可以作为全国高等学校本科生“C语言程序设计”课程的教材,又可以作为编程爱好者的自学辅导书。本书以游戏项目为案例逐步介绍程序基础知识,并且介绍程序设计方法,帮助读者从零基础快速提升到独立完成各种经典游戏的水平,本书特别适合想从事软件开发相关工作的广大读者。 本书是由徐舒工程师和周建国副教授合作完成。徐舒曾在著名IT公司和法国LIMOS国家实验室工作,并且受多家公司邀请讲授编程类课程,有着丰富的工程经验和教学经验。周建国是武汉大学电子信息学院副教授,有着丰富的教学和科研经验。本书在策划和出版过程中,得到许多人的帮助,在此表示衷心的感谢。感谢作者的导师武汉大学孙洪教授和易凡教授的指导和帮助; 感谢武汉理工大学刘岚教授的指导和帮助; 感谢LIMOS国家实验室Jean Connier博士对作者在法国工作期间给予的帮助和支持; 感谢张金龙、姚敏、余倩、王健、杨汉、吴俊、杨彬、于满洋、洪自华、陆奎良等众多互联网公司的工程师的帮助和支持。 在本书的编写过程中,参考了诸多相关资料,在此向文献资料的作者表示衷心的感谢。限于编者水平加之时间仓促,书中难免存在疏漏之处,欢迎读者批评指正。 编者 2022年5月