联系方式:语言是现在世界上应用最广泛,最受欢迎的计算机语言之一。在本章的学习中需要掌握以下知识点:数据结构的概念和作用;算法的概念和作用;结构化程序设计的方法;三种基本结构;程序流程图和N-S流程图。联系方式:语言已经经历了几十年的发展。在学习C语言之前,应该要先了解C语言是如何诞生的,它的历史是怎么样的。本节将介绍C言语的诞生、C语言的标准化过程及其重要特点,最后还将展示一个标准的“Hello,world!”的程序。联系方式:创造的,其历史可以追溯到ALGOL60。ALGOL60,也称为A语言,是纯粹的面向描述计算过程的语言。C语言的直接前身B语言就是从BCPL发展而来的。在1972~1973年间,DenisRitchie改进了B语言,为其添加了数据类型的概念,并将原来的解释程序改写为可以在直接生成机器代码的编译程序,并将其命名为C。现在,C语言已成为用途最为广泛的计算机高级语言,不仅可以用于编写系统软件,还可以用于构建各个领域的应用软件。联系方式:个标准,分别为K&RC、C89和C99。1.K&RC2.C89或ANSIC3.C99联系方式:语言之所以得到如此迅速的发展,并成为应用最广泛、最受欢迎的计算机语言之一,主要是因为它语法灵活、使用方便,并能实现高效而强大的功能。C语言具有以下特点:1.使用方便,功能强大2.便于结构化编程3.C语言是中级语言4.执行效率高5.C程序可移植性好联系方式:!作为结构性语言,C程序的结构十分严整。下面来认识一下第一个C程序,这是十分著名的“Hello,world!”程序。这个程序经常被用作介绍各种语言的第一个程序,其功能是向屏幕打印一个字符串“Hello,world!”。联系方式:数据结构与算法一般来说,程序由数据结构和算法两个部分组成。数据结构是一个一个的实体,而算法是将它们联系在一起的各种手段。学习程序首先要了解数据结构和算法的概念,以及它们之间的关系。由于篇幅有限,本小节将只是简要地介绍数据结构和算法的一些基本知识,要想深入了解数据结构和算法,还需要读者去学习其他专门的材料。联系方式:小结所述,C语言是一门便于结构化编程的语言。结构化编程,也就是结构化程序设计。那么,什么是结构化程序设计呢?结构化程序设计有什么好处?通过本小节的学习,读者可以得到这些问题的答案,同时会为学习以结构化程序设计为指导思想的C语言程序设计打下一个良好的铺垫。联系方式:年提出的,其主要思想是通过分解复杂问题为若干简单问题的方式降低程序的复杂性。它的主要观点是采用自顶向下、逐步细化的程序设计方法,同时严格使用三种基本控制结构构造程序。三种基本控制结构是指顺序结构、选择结构和循环结构。所有的程序结构都可以分解为这三个基本控制结构。联系方式:三种基本结构按照操作的执行顺序,程序可以分为三类基本结构:顺序结构、选择结构和循环结构。1996年,计算机科学家Bohm和Jacopini证明:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构,也是结构化程序设计建议采用的结构。联系方式:.顺序结构在顺序结构的程序里,各操作是按照它们出现的先后顺序执行的。如下图所示,操作1和操作2按自上而下地顺序执行。这是最简单的一种基本结构。这个结构里只有一个入口点A和一个出口点B,其特点是从入口点A开始,按顺序执行所有操作,直至出口点B处。事实上,所有的程序的总流程总是一个顺序结构。联系方式:.选择结构选择结构,也叫分支结构。选择结构的程序里存在一些分支,程序通过对一些条件的判断选择执行的分支。按照分支数,选择结构又可以分为单选择、双选择和多选择三种形式。联系方式:北京源智天下科技有限公司双选择结构是最常见的,如下图所示,结构中有两个分支,必须要执行其中一支;如果满足条件则执行操作1,否则执行操作2。2.选择结构联系方式:.选择结构单选择结构如下图所示,当双选择结构中某个分支为空时,就称为单选择结构。联系方式:北京源智天下科技有限公司多选择结构如下图所示,有多个分支共存,程序根据Type值来选择其中之一执行。2.选择结构联系方式:.循环结构在循环结构中,是反复地执行一系列操作,直到某条件为假(或为真)时才终止循环。按照判断条件出现的位置,可以分为while循环结构和until循环结构。联系方式:循环结构中,先判断条件,如下图所示。如果A不大于1,则直接退出循环体到达流程出口处;如果满足A大于1,执行操作1,并且在操作1结束后返回到循环入口,重新判断条件;如果A还是大于1,再次执行操作1,再返回结构入口……,如此反复。3.循环结构联系方式:型循环结构中,在结构入口处先执行循环体,然后再判断条件,如下图所示。当程序执行完操作1后,判断A是否大于1。如果是,则再执行操作1;然后再次判断A是否大于1;如果结果仍然为是,则再次执行操作1……3.循环结构联系方式:.循环结构在这两种结构中,操作1都可能被反复执行,直到A的值不大于1,才结束程序。同样,循环型结构也只有一个入口点A和一个出口点B。合理地使用这三种基本结构,可以组合成复杂的高级结构;而所有的复杂结构都可以分解为这三种基本结构。联系方式:算法描述方法当算法过程比较复杂时,单靠自然语言来描述算法将显得十分困难,让人难以准确理解。此时,需要借助其他的算法描述手段,主要有:算法语言,有伪代码、各种程序设计语言、计算机语言等。图形描述,如流程图和N-S图,图的描述应与算法语言的描述对应;形式语言,用数学的方法,可以避免自然语言的二义性。联系方式:.伪代码伪代码是介于程序语言和自然语言之间的算法描述,即要具有自然语言通俗易懂的特点,还要能很容易地被转换为程序语言,这就要求伪代码具有清晰地逻辑结构,并且有准确的算法步骤。伪代码的形式有很多种,没有通用的规则,根据需要可以自行决定伪码的形式。在本书使用的伪代码一般为类C伪码,书写注重可读性和逻辑性。下面是上一小节直接排序算法的伪代码。该段伪代码已经细化到编程的每一小步,可以很容易使用C语言代替。联系方式:.伪代码算法开始:设i值为0;当iN–1{设j值为i+1;设min等于i;当jN{如果stuArray[min]stuArray[j]{设min的值为j;}j自增1;}交换第i个元素和第min个元素;i自增1;}算法结束联系方式:.伪代码技巧:在编程时,当设计好一个算法后,要都先将它们使用伪代码描述出来,再使用程序语言来实现。这样有利于更有条理更有逻辑地书写程序语言,其作用就像写文章要先列好提纲一样。联系方式:程序流程图程序流程图是算法的图形描述方式。它使用一些简单的几何图形来表示各种不同性质的程序操作,使用流程线将各个图形连接起来,指示算法的执行过程。由于流程图的符号统一,且画法简单,结构清晰,逻辑性强,便于理解,因此成为描述程序流程的主要方法。下图中的图形是流程图中常用的一些标志。联系方式:程序流程图联系方式:小节介绍三种基本程序结构时,已经接触了流程图的部分图形。将1.2.2小节中的直接排序算法使用流程图来表示,如下图所示。联系方式:程序流程图联系方式:程序流程图由于本书中的程序都较短小,而程序流程图描述小型程序时,能够发挥其简单灵活的优势,因此本书主要使用程序流程图来描述算法流程。联系方式:.N-S流程图由于程序流程图使用流程线的导向来引导程序流程。当程序流程较复杂时,框图中会常常有很多的流程线,导致逻辑杂乱无章,失去了流程图简洁清晰的优点。后来,当结构化程序设计方法日益流行后,两个美国学者I.Nassi和B.Shneiderman基于结构化思想提出了一种新的流程图形式,被称为N-S流程图,N和S是两个发明人名字的首字母。按照结构化设计的思想,所有的程序都可以分解成三种基本结构的组合。N-S流程图为三种基本结构设计了特殊的结构图,并以它们为基础来描述其余所有的算法。联系方式:表示图。先执行操作1,再执行操作2;操作1的方框上方为结构入口,操作2的方框下方为结构出口。3.N-S流程图联系方式:.N-S流程图下图为双选择结构,省略其中之一即可得单选择结构。联系方式:.N-S流程图下图中,左图为while循环结构,右图为until循环结构。联系方式:.N-S流程图N-S使用这几种图形的组合便可以得到所有算法的N-S流程图。所以,在N-S流程图中去掉了程序流程图中眼花缭乱的流程线,并将整个程序流程放在一个大方框内,使程序流程更清楚。下图是直接排序算法的N-S流程图。联系方式:.N-S流程图联系方式:、使用伪码描述使用冒泡排序法将序列从小到大排序的算法,并画出其程序流程图或N-S流程图。【提示