《C语言程序设计与计算思维》通过系统地介绍C语言语法和程序设计方法,培养学生计算思维能力。
《C语言程序设计与计算思维》有以下特点:一是讲清楚基于冯·诺依曼结构问题的解决过程,并以此为基础讨论计算机语言的组成与特点;二是详细描述C语言的组成和语法;三是给出描述计算机解决问题的方法步骤,即算法设计方法;四是给出用C语言描述算法的方法,即程序设计方法;五是总结出程序设计过程中所涵盖的计算思维;六是对于每一个知识点都有帮助读者理解该知识点的大量实例。
本书以通俗易懂、循序渐进的方式叙述C语言语法和程序设计方法,并通过大量的例子来加深读者对C语言语法和程序设计方法的理解,是一本理想的大学本科“C语言程序设计”课程教材,对于想要了解C语言本质、掌握C语言程序设计方法的软件人员,也是一本非常好的C语言入门书籍。
语言程序设计”作为一门大学基础课程,主要教学目标如下: 一是让学生在“计算机基础”课程的基础上进一步理解计算机实现计算的过程,了解计算机语言的作用及计算机语言的发展过程;二是让学生了解计算机语言的发展脉络,理解如此设计C语言语句、语法的必要性;三是结合计算机工作原理,让学生理解C语言语句功能的本质和实现过程;四是让学生掌握计算机解决实际问题的流程,即“问题→数学模型→算法→程序设计”;五是总结出C语言语句功能设计、C语言程序结构设计、C语言数组和链表等数据结构实现过程中的一些普遍性方法,培养学生将这些方法应用到其他专业问题解决过程中的能力。因此,“C语言程序设计”不是一门C语言语法注释课程,不是通过罗列各种范例让学生模仿语句使用方法的课程。
基于上述教学目标,一本好的讨论C语言程序设计的教材应该具有以下要素: 一是C语言的发展背景,清楚回答“为什么计算机语言是这种形式?”、“为什么用计算机语言编写解决问题的程序的过程是这样的?”等问题;二是C语言的组成和语法,由于C语言是一门集高级语言和低级语言特点于一身的计算机语言,因此,清楚阐述数据的二进制表示方式、各种数据类型在存储器中的组织方式、指针的本质含义等对读者深入了解C语言的组成和语法十分重要;三是C语言解决问题的过程,这个过程涉及算法设计和程序设计,算法设计给出解决问题的步骤,程序设计完成用C语言描述解决问题的步骤的过程;四是总结出程序设计过程中所涵盖的计算思维,清楚回答“计算机能够做什么?”、 “如何做?”、“计算机不能做什么?”、“C语言程序设计方法能给人们什么启示?”等问题。
目前,学生学习C语言无法深入的主要原因在于: 一是缺乏计算机背景知识,不了解计算机解决问题的方法,因而无法理解C语言语法和组成;二是只是通过罗列各种程序设计实例让学生模仿程序设计过程,没有讲清楚语句的本质含义和实现过程,学生只能知其然,而无法知其所以然;三是只是简单介绍C语言语句功能,没有讨论C语言设置这些语句的必要性,也没有对相似语句功能进行比较分析,无法让学生完整、系统地掌握C语言语句功能,因此无法在程序设计中灵活地运用语句;四是不对C语言程序设计方法进行总结,不能让学生举一反三、触类旁通。
本教材与以往C语言教材相比有以下特点: 一是讲清楚基于冯·诺依曼结构问题的解决过程,并以此为基础讨论计算机语言的组成与特点;二是详细描述C语言的组成和语法,讲清楚语句功能的本质含义和实现过程;三是给出描述计算机解决问题步骤的方法,[1]〖3〗C语言程序设计与计算思维前言〖3〗[3]即算法设计方法;四是给出用C语言描述算法的方法,即程序设计方法;五是总结出程序设计过程中所涵盖的计算思维;六是对于每一个知识点都有帮助读者理解该知识点的大量实例。因此,本书是一本理想的大学本科“C语言程序设计”课程教材,对于想要了解C语言本质、掌握C语言程序设计方法的软件人员,也是一本非常好的C语言入门书籍。
本教材的全部例子都在Visual C++ 6.0集成开发环境下调试通过,附录A给出了在Visual C++ 6.0集成开发环境下编辑、编译、连接、运行和调试程序的方法和过程。
作为一本无论在内容组织、叙述方法还是在教学目标上都和传统C语言程序设计教材有一定区别的新教材,本教材错误和不足之处在所难免,殷切地希望使用本教材的老师和学生批评指正,也殷切地希望读者能够对教材内容和叙述方式提出宝贵的建议和意见,以便进一步完善本教材内容。
作者2014年10月于南京
第1章 概述
1.1计算机运算过程
1.1.1冯·诺依曼结构
1.1.2核心部件功能和指令执行过程
1.2计算机语言与程序设计
1.2.1机器语言与程序设计
1.2.2汇编语言与程序设计
1.2.3高级语言与程序设计
1.3 C语言的特点与发展过程
1.3.1 C语言的特点
1.3.2 C语言的发展过程
1.4 C语言的学习内容
1.4.1 了解C语言的背景知识
1.4.2掌握C语言语句
1.4.3掌握算法设计过程
1.4.4掌握程序设计过程
1.4.5培养计算思维能力
1.5 C语言程序的开发过程
1.5.1编辑
1.5.2编译
1.5.3连接
1.5.4运行
1.5.5集成开发环境
本章小结
习题l
第2章 变量与表达式
2.1数值编码
2.1.1整型数
2.1.2实数
2.1.3对c语言数值表示的几点说明
2.2字符编码
2.2.1 ASCIl
2.2.2 C语言中字符的表示方式
2.3变量的含义及类型
2.3.1变量的含义
2.3.2标识符
2.3.3变量的类型
2.3.4对变量的几点说明
2.4运算符和表达式
2.4.1算术运算符和算术表达式
2.4.2赋值运算符和赋值表达式
2.4.3逗号运算符和逗号表达式
2.4.4位运算符和位运算表达式
2.5语句和程序
2.5.1语句
2.5.2程序
2.5.3输入/输出函数
2.6变量与表达式的启示
本章 小结
习题2
第3章 选择和循环结构
3.1控制语句的作用
3.1.1实现选择结构控制语句的功能
3.1.2实现循环结构控制语句的功能
3.2条件和表示条件的表达式
3.2.1关系运算符和关系表达式
3.2.2逻辑运算符和逻辑表达式
3.3 if语句
3.3.1 if语句的3种形式
3.3.2 if语句的嵌套
3.3.3条件运算符
3.4 switch语句
3.4.1 switch语句的格式
3.4.2完整程序举例
……
第4章 函数
第5章 数组
第6章 指针
第7章 结构体与共用体
第8章 预处理命令
第9章 文件
附录A Visual C 6.0使用教程
附录B C语言中的关键字
附录C 运算符的优先级和结合性
附录D 数学函数
参考文献