第1章程序设计概述_第1页
第1章程序设计概述_第2页
第1章程序设计概述_第3页
第1章程序设计概述_第4页
第1章程序设计概述_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高等教育出版社高等教育出版社张磊张磊n1.1 程序设计的基本概念程序设计的基本概念n1.2 C语言概述语言概述n1.3 使用使用VC+6.0实现实现C语言程序语言程序计算机能够理解和识别的一种语言体系,它按照特定的规则计算机能够理解和识别的一种语言体系,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。组织计算机指令,使计算机能够自动进行各种操作处理。机器语言、汇编语言、高级语言。机器语言、汇编语言、高级语言。C C语言属于高级语言。语言属于高级语言。按照计算机语言规则组织起来的一组命令。按照计算机语言规则组织起来的一组命令。 n工作方法工作方法u首先编译进行首先编译进行语法分

2、析语法分析,也就是要把那,也就是要把那些字符串分离出来。些字符串分离出来。 u然后进行然后进行语义分析语义分析,就是把各个由,就是把各个由语法语法分析分析分析出的语法单元的意义搞清楚。分析出的语法单元的意义搞清楚。 u最后生成的是目标文件,也称为最后生成的是目标文件,也称为obj文文件。件。 u再经过再经过链接器链接器的链接就可以生成最后的的链接就可以生成最后的可执行代码可执行代码了。了。 n链接器(链接器(Linker)是一个程序,将一个或多个)是一个程序,将一个或多个由由编译器编译器生成的目标文件外加库链接为一个生成的目标文件外加库链接为一个可可执行文件执行文件。n目标文件是包括目标文件是

3、包括机器码机器码和链接器可用信息的和链接器可用信息的程程序模块序模块。n链接器的工作就是解析未定义的符号引用,将链接器的工作就是解析未定义的符号引用,将目标文件中的占位符替换为符号的地址。目标文件中的占位符替换为符号的地址。n链接器还要完成程序中各目标文件的链接器还要完成程序中各目标文件的地址空间地址空间的组织,这可能涉及的组织,这可能涉及重定位重定位工作。工作。 /* program e1-0.c */#includevoid main()int i=1,s=0;while(i=100)s=s+i; i=i+1; printf(sum=%dn,s); /* 循环控制循环控制 */* 数据累加

4、数据累加 */* 生成下一个要累加的数生成下一个要累加的数 */* 输出结果输出结果 */n算法特性算法特性 有穷性:有穷性:经过有限步骤解决问题。经过有限步骤解决问题。 确定性:确定性:每个步骤所规定的操作必须是确定的。每个步骤所规定的操作必须是确定的。 有效性:有效性:每一个步骤必须能够有效地执行每一个步骤必须能够有效地执行 。 输入和输出特性。输入和输出特性。有零个或多个输入,有一个或多个输出。有零个或多个输入,有一个或多个输出。 算法求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义算法求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义明确的规则,是计算机处理问题所需要

5、的具体步骤。明确的规则,是计算机处理问题所需要的具体步骤。 算法的最终实现是计算机程序。算法的最终实现是计算机程序。n 还应注意还应注意算法的多样性:一算法的多样性:一个具体问题可以有不同的解决方法,因此可以设计解决问题个具体问题可以有不同的解决方法,因此可以设计解决问题的不同算法。的不同算法。 算法的通用性算法的通用性:一个算法应是适用于某类问题,而不只是适用于某一个问题。一个算法应是适用于某类问题,而不只是适用于某一个问题。 u步骤步骤 i=1,s=0;u步骤步骤 若i100 则执行步骤;否则,转步骤;u步骤步骤 s+i;u步骤步骤 i+1,转步骤;u步骤步骤 显示s的值,结束。 n“计算

6、计算1100自然数和自然数和”的算法的算法 步骤步骤 i=1,s=0;步骤步骤 若若i100 则执则执行步骤;否则,转行步骤;否则,转步骤;步骤;步骤步骤 s+i;步骤步骤 i+1,转步骤,转步骤; 步骤步骤 显示显示s的值的值,结束。,结束。n1.2.1 C语言的产生和发展n1.2.2 C语言程序的基本结构n1.2.3 C语言的基本语句n1.2.4 标识符与保留字nC 语言是语言是1972年由美国的年由美国的Dennis Ritchie设计设计发明的,发明的,1983年,美国国家标准化协会(年,美国国家标准化协会(ANSI)根据根据C语言问世以来各种版本对语言问世以来各种版本对 C的发展和扩

7、充,的发展和扩充,制定了制定了C的标准,称为的标准,称为 ANSI C。1987年年ANSI又又公布了新的标准公布了新的标准87 ANSI C。目前流行的。目前流行的C编编译系统都是以它为基础的。译系统都是以它为基础的。n在在C的基础上,的基础上,1983年又由贝尔实验室的年又由贝尔实验室的Bjarne Strou-strup推出了推出了C+。 C+进一步扩充和完进一步扩充和完善了语言,成为一种面向对象的程序设计语言。善了语言,成为一种面向对象的程序设计语言。n例例1-1 1-1 一个加法程序一个加法程序。/* program e1-1.c */#includevoid main() int

8、a,b,c; a=8; b=2000; c=a+b; printf(%dn,c);n 概念概念程序行程序行、主函数主函数、数据类型数据类型、变量变量、赋值赋值、表达式表达式、系统函系统函数数、输出输出、输出格式输出格式、函数体函数体、注释注释。1 1简单简单C C语言程序及相关概念语言程序及相关概念例例1-2 1-2 一个改进的加法程序。一个改进的加法程序。/ /* * program e1-2.c program e1-2.c * */ /#include#includevoid main()void main() int a,b,c;int a,b,c;printf(Input a,b:)

9、;printf(Input a,b:);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);c=a+b;c=a+b;printf(a+b=%dn,c);printf(a+b=%dn,c); 程序的算法程序的算法: 从键盘输入两个整数,并且从键盘输入两个整数,并且在需要输入数据时首先给出一个在需要输入数据时首先给出一个提示信息;提示信息; 进行加法运算;进行加法运算; 输出清楚明了的运算结果。输出清楚明了的运算结果。例例1-3 最简单最简单C程序程序/* program e1-3.c */#includevoid main()printf(

10、Hello!n);n程序结构程序结构#include#includevoid main()void main() 函数体函数体 n每个程序都由函数构成,由于函数的函数体内容不同,每个程序都由函数构成,由于函数的函数体内容不同,程序也就各自具有了不同的功能。程序也就各自具有了不同的功能。n基本特点基本特点uC语言程序由函数构成,每个程序可以语言程序由函数构成,每个程序可以有多个函数。(模块化)有多个函数。(模块化)u一个源程序不论有多少个函数组成,有一个源程序不论有多少个函数组成,有且只有一个且只有一个main()函数,位置任意。函数,位置任意。u一个源程序不论有多少个函数组成,总一个源程序不论

11、有多少个函数组成,总是从是从main()函数开始执行。函数开始执行。n程序风格程序风格u如果一行能容纳一条语句,则该语句独如果一行能容纳一条语句,则该语句独占一行占一行u扩起来的部分,通常表示程序的某扩起来的部分,通常表示程序的某一层次结构一层次结构u低层次要比高层次语句缩进低层次要比高层次语句缩进u合理使用注释合理使用注释n按照功能划分按照功能划分3类类n数据定义语句数据定义语句n流程控制语句流程控制语句n数据处理语句数据处理语句对程序中使用的变量名称、数据类型等进行说明。例如,对程序中使用的变量名称、数据类型等进行说明。例如,程序程序e1-1.c的的“int a,b,c;”语句。语句。对程

12、序中的数据进行运算、输入、输出等。例如,程序对程序中的数据进行运算、输入、输出等。例如,程序e1-1.c的的“b=2000;”、“c=a+b;”“printf(%dn,c);” 等等语句。语句。对程序的执行流程进行控制,分为分支控制和循环控制两对程序的执行流程进行控制,分为分支控制和循环控制两类。例如,程序类。例如,程序e1-0.c中的中的while语句。语句。1. 标识符标识符在程序中使用的变量名、函数名等统称。除库函数的函数在程序中使用的变量名、函数名等统称。除库函数的函数名由系统定义外,其余都由用户自定义。名由系统定义外,其余都由用户自定义。n标识符构成标识符构成任何一个标识符只能是由字

13、母(任何一个标识符只能是由字母(AZ,az)、数字)、数字(09)和下划线)和下划线“_”构成的字符串,其他符号不能出现构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字符必须是字母或下划在标识符中,并且标识符的第一个字符必须是字母或下划线。线。n合法标识符合法标识符a BOOK1 max _add num_1n非法标识符非法标识符3sum 不允许以数字开头不允许以数字开头ab#cd 使用了非法字符使用了非法字符“#”book-1 出现非法字符出现非法字符“-”(减号)(减号)2保留字保留字保留字(也称关键字)是由语言规定的用于定保留字(也称关键字)是由语言规定的用于定义变量类型、

14、命令字等具有特定意义的标识符。义变量类型、命令字等具有特定意义的标识符。例如例如: int 专门用于定义数据类型专门用于定义数据类型 while 是循环控制命令。是循环控制命令。 C语言的保留字都具有一定的使用规则,必须语言的保留字都具有一定的使用规则,必须按相应的规则使用保留字。按相应的规则使用保留字。 程序中定义的标识符不能与系统的保留字同名。程序中定义的标识符不能与系统的保留字同名。n1.3.1 使用使用VC+ 6.0实现实现C程序的基本步骤程序的基本步骤n1.3.2 程序设计示例程序设计示例n使用使用VC+ 6.0实现实现C程序的基本步骤程序的基本步骤有有4 4个个:n1 1建立源程序

15、文件建立源程序文件n3 3构建可执行文件构建可执行文件n2 2编译源程序编译源程序n4 4运行可执行文件运行可执行文件启动启动VC+ 6.0系统系统使用使用“File”“New”命令,打开命令,打开VC+ 6.0的程序编辑窗口的程序编辑窗口录入编辑源程序,保存文件录入编辑源程序,保存文件程序通过编译之后,使用程序通过编译之后,使用“Build”“Build”命令将编译阶段生成的目标文命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。的可执行文件。使用使用“Build”“!Execute”命令运行程序,获得

16、执行结果。命令运行程序,获得执行结果。 设矩形的边长为设矩形的边长为a和和b、矩形面积为、矩形面积为s,则,则s=ab。 通过键盘输入等方式为矩形边长通过键盘输入等方式为矩形边长a、b提供数据。提供数据。 程序执行后要输出计算结果。程序执行后要输出计算结果。 输入输入a、b的值。的值。 计算计算ab,并存储到,并存储到s中。中。 输出输出s。 假设该矩形都是整型数据,因此,要使用假设该矩形都是整型数据,因此,要使用int对对a、b、s进行说明。进行说明。 使用使用scanf()函数输入数据函数输入数据a、b。 使用使用“s=a*b”计算矩形面积,并存储到计算矩形面积,并存储到s中。中。 使用使

17、用printf()函数输出计算结果函数输出计算结果s。 把上面的一些具体语句放在把上面的一些具体语句放在main()函数中。函数中。 假设该矩形都是整型数据,因此,假设该矩形都是整型数据,因此,要使用要使用int对对a、b、s进行说明。进行说明。 使用使用scanf()函数输入数据函数输入数据a、b。 使用使用“s=a*b”计算矩形面积,并计算矩形面积,并存储到存储到s中。中。 使用使用printf()函数输出计算结果函数输出计算结果s。 把上面的一些具体语句放在把上面的一些具体语句放在main()函数中。函数中。/* program area.c */#includevoid main()

18、。 启动启动VC+ 6.0,使,使用用“File”“New”命令,命令,打开打开 “new”窗口,选用窗口,选用“Files”选项卡,在主窗选项卡,在主窗口中选择口中选择“C+ Source File”项,在项,在“File”对话对话框中输入文件名,在框中输入文件名,在“Location”对话框中指对话框中指定文件的存储位置。定文件的存储位置。 单击单击“OK”按钮,按钮,打开程序编辑窗口录入打开程序编辑窗口录入编辑源程序,并及时存编辑源程序,并及时存盘。盘。程序编辑完成后,使程序编辑完成后,使用用“Build”“Compile ”命令编译命令编译 执行“Build”“Compile”命令后的提示信息编译结果显示在编译报告窗口 。 4 4标识符和保留字标识符和保留字 标识符是由字母、数字标识符是由字母、数字(0 09 9)和下划线)和下划线“_ _”构构成的字符串,用于标识程成的字符串,用于标识程序中的变量名、函数名等序中的变量名、函数名等。标识符的大小写形式具。标识符的大小写形式具有不等价性。系统保留字有不等价性。系统保留字不能用作程序中定义的标不能用作程序中定义的标识符。识符。 5 5 C C语言程序的上机实现语言程序的上机实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论