C语言程序设计程序设计概述PPT课件.pptx
1.1 程序设计语言,程序设计语言:程序设计语言是用来编写计算机程序的语言,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。计算机程序:按照程序设计语言的规则组织起来的一组计算机指令。程序设计语言分类:机器语言、汇编语言和高级语言。C 语言属于高级语言,1972年由美国的Dennis Ritchie设计发明。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对 C的发展和扩充,制定了C的标准,称为 ANSI C。1987年ANSI又公布了新的标准87 ANSI C。,第1页/共32页,1.1 程序设计语言,C语言程序示例:计算1到100的所有自然数的和。,#includeint main(void)int i=1,s=0;while(i=100)/*循环控制*/s=s+i;/*数据累加*/i=i+1;/*生成下一个要累加的数*/printf(sum=%dn,s);/*输出结果*/return 0;,第2页/共32页,1.2 算法,1.2.1 算法概念与算法描述 1.2.2 算法的逻辑结构 1.2.4 算法的特性1.2.4 算法评价,第3页/共32页,1.2.1 算法概念与算法描述,算法重要性:程序=数据结构+算法1算法的概念算法是为计算机处理问题所设计的解题步骤。算法的最终实现是计算机程序。2算法的描述方法自然语言流程图N-S图PAD图伪码等。,第4页/共32页,1.2.1 算法概念与算法描述,用自然语言描述算法“计算1到100的所有自然数的和”步骤 i和s赋初值,使i=1,s=0;步骤 判断i的值,若i100 则执行步骤;否则,转步骤;步骤 s加i;步骤 i加1,转步骤;步骤 显示s的值,结束。,第5页/共32页,1.2.1 算法概念与算法描述,用流程图描述算法,第6页/共32页,1.2.1 算法概念与算法描述,“计算1100自然数和”的算法,步骤 i=1,s=0;步骤 若i100 则执行步骤;否则,转步骤;步骤 s+i;步骤 i+1,转步骤;步骤 显示s的值,结束,第7页/共32页,1.2.2 算法的逻辑结构,算法的三种结构顺序结构分支结构循环结构三种结构互相结合,可以实现任何逻辑控制,第8页/共32页,1.2.2 算法的逻辑结构,1、顺序结构特点:各个步骤由前到后依次执行,每个步骤都执行一次。,第9页/共32页,1.2.2 算法的逻辑结构,1、顺序结构举例:输入一个学生的两门课程的成绩,计算并输出平均成绩。,第10页/共32页,1.2.2 算法的逻辑结构,2、选择结构特点:某些步骤是否能够执行,要视当前的条件而定,在同一次处理中,有的步骤可能执行不到。,第11页/共32页,1.2.2 算法的逻辑结构,2、选择结构,举例:输入一个学生两门课程的成绩,若平均成绩不低于90,则输出“优等生”;否则,输出“加油!”。,第12页/共32页,1.2.2 算法的逻辑结构,3、循环结构特点:有些步骤会被有条件地重复执行(被重复执行的步骤每次处理的数据也可能发生变化)。,第13页/共32页,1.2.2 算法的逻辑结构,3、循环结构,举例:计算1100自然数和。,第14页/共32页,1.2.3 算法的特性,算法特性 有穷性:一个算法必须经过有限步骤之后结束。“有限步骤”,既指步骤量有限,同时也要求步骤量合理。确定性:每一个步骤所规定的操作必须是确定的,不能有二义性。有效性:每一个步骤描述的操作必须能够通过已经实现的基本运算有效地执行,并且得到确定的结果。输入和输出特性。每个有意义的算法有零个或多个输入,并且有一个或多个输出。,第15页/共32页,1.2.4 算法评价,时间复杂性算法执行时间与问题规模的关系,是算法执行效率指标。空间复杂性算法对计算机内存的需求程度,需求越少越好。可读性算法可供人们阅读的容易程度。健壮性(容错性)算法对不合理的输入数据的反应能力和处理能力。通用性算法适应一类问题,而不是某个特定问题。正确性算法最根本的评价指标,指算法的执行结果满足预先规定的功能和性能要求。,第16页/共32页,1.3 程序设计与实现,1.3.1 程序设计的基本过程1.3.2 编辑运行C语言程序,第17页/共32页,1.3.1 程序设计的基本过程,分析要处理的问题涉及的各种概念、数据特点、已知条件、所求结果,以及已知条件与所求结果之间的关系等各方面的信息。明确:要做什么?,确定具体的算法,并选择合适的算法表达工具对算法进行描述。,用程序设计语言的语句和命令实现算法的每一个步骤。,第18页/共32页,1.3.2 编辑运行C语言程序,使用VC+6.0实现C程序的基本步骤有4个:1建立源程序文件,3构建可执行文件,2编译源程序,4运行可执行文件,启动VC+6.0系统使用“File”“New”命令,打开VC+6.0的程序编辑窗口录入编辑源程序,保存文件,使用“Build”“Compile”命令对源程序进行编译,生成二进制目标代码文件。,程序通过编译之后,使用“Build”“Build”命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。,使用“Build”“!Execute”命令运行程序,获得执行结果。,第19页/共32页,1.3.2 编辑运行C语言程序,例1-1 使用VC+编辑运行自然数累加程序。,建立源程序文件。启动VC+6.0,使用“File”“New”命令,打开“new”窗口,选用“Files”选项卡,在主窗口中选择“C+Source File”项,在“File”对话框中输入文件名,在“Location”对话框中指定文件的存储位置。,第20页/共32页,1.3.2 编辑运行C语言程序,建立源程序文件 单击“OK”按钮,打开程序编辑窗口录入编辑源程序,并及时存盘。,第21页/共32页,1.3.2 编辑运行C语言程序,建立源程序文件。编译源程序程序编辑完成后,使用“Build”“Compile”命令编译,执行“Build”“Compile”命令后的提示信息,编译结果显示在编译报告窗口,第22页/共32页,1.3.2 编辑运行C语言程序,建立源程序文件。编译源程序。构建可执行文件。程序编译完成后,使用“Build”“Build”构建可执行文件。运行可执行文件。成功构建可执行文件之后,使用“Build”“!Execute”命令即可运行程序。,第23页/共32页,1.4 C语言程序的基本结构,1.4.1 程序的函数化结构 1.4.2 标识符与保留字1.4.3 程序风格,第24页/共32页,1.4 1 程序的函数化结构,1简单C语言程序的结构C语言程序是由函数构成的,任何一个C语言程序都有一个称为主函数的main()函数。main()函数的一般结构:int main()函数体,例1-2 更简单的C程序。#includeint main()printf(Hello!n);return 0;,特别强调:任何一个C语言程序,main()函数都是不可缺少的,当一个C语言程序只有一个函数模块时,这个函数必然是main()函数。,第25页/共32页,1.4.1 程序的函数化结构,2C语言程序的一般结构一个C语言程序,在结构上不仅要有main()函数,还可以包括其他独立的函数,一个函数可以在另一个函数中被使用。,例1-3 输出图案程序。#includeint main(void)/*主函数*/void p_s(void);p_s();p_s();p_s();return 0;void p_s()/*其他函数*/printf($#$n);,第26页/共32页,1.4.1 程序的函数化结构,3C语言程序的基本特点 C语言程序由函数构成,而且每个程序可以有多个函数。一个源程序不论由多少个函数组成,有且只能有一个main()函数,而且main()函数可以放在程序的任何位置。一个源程序无论由多少个函数构成,总是从main()函数开始执行程序,与main()函数在程序中的位置无关。,第27页/共32页,1.4.2 标识符与保留字,1.标识符在程序中使用的变量名、函数名等。标识符构成任何一个标识符只能是由字母(AZ,az)、数字(09)和下划线“_”构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字符必须是字母或下划线。合法标识符a BOOK1 max _add num_1非法标识符3sum 不允许以数字开头ab#cd 使用了非法字符“#”book-1 出现非法字符“-”(减号),注意:两个标识符中的字母相同而大小写形式不同时,C语言认为是两个不同的标识符。标识符命名应尽量有相应的意义,以便阅读理解。建议初学者尽量使用较短而有意义的标识符,既便于上机训练,也会使程序更清晰。,2保留字由语言规定的用于定义变量类型、命令字等具有特定意义的标识符。,第28页/共32页,1.4.3 程序风格,如果一行能够容下一个语句,那么就让这个语句独占一行。用 括起来的部分,通常表示了程序的某一层次结构。“”和“”一般与该结构语句的第一个字母对齐,并单独占一行。低一层次的语句应比高一层次的语句缩进若干列后书写,以便看起来更加清晰。要在程序的开始或者在程序的关键位置使用注释,以提高程序的可读性。,第29页/共32页,小结(1),(1)算法是逐步求解问题的方法,是计算机处理问题所需要的具体步骤。流程图、伪代码是常用的描述算法方法。(2)顺序结构、分支结构和循环结构是算法的三种基本结构。(3)结构化程序设计步骤:问题分析、算法设计、编写程序、调试运行程序。(4)实现C语言程序步骤:建立源程序、编译源程序、构建可执行文件、运行程序。,第30页/共32页,小结(2),(5)函数化结构是C语言程序的特点,main()函数是任何一个C语言程序中必须具有的函数。简单C语言程序结构:#include int main()函数体(6)程序中使用的变量名、函数名等统称为标识符。标识符有一定的命名规则,标识符中字母的大、小写形式是不等价的。,第31页/共32页,感谢您的欣赏!,第32页/共32页,