1、2022-8-15程序设计-2005秋1提要提要n程序设计基本概念n结构化程序设计nC语言基础知识n高级语言程序开发环境基本知识n小结2022-8-15程序设计-2005秋2提要提要n程序设计基本概念程序设计基本概念n结构化程序设计nC语言基础知识n高级语言程序开发环境基本知识n小结2022-8-15程序设计-2005秋3什么是程序?什么是程序?n程序程序(Program)就是供计算机执行后,能完供计算机执行后,能完成特定功能的指令序列(成特定功能的指令序列(Instructions sequence)n程序=计算机指令序列n程序包含两方面的内容n数据对象(Objects)及数据对象之间关系n
2、数据结构(Data structure)n对这些对象的处理过程n算法(Algorithm)2022-8-15程序设计-2005秋4程序数据结构算法程序数据结构算法n程序程序 数据结构数据结构 算法算法nProgram Data Structure Algorithm 这个公式由Niklaus Wirth首先提出。Niklaus Wirth 是PASCAL之父和结构化程序 设计的首创者,1984图灵奖获得者。2022-8-15程序设计-2005秋5数据结构数据结构n数据结构由由某一数据对象某一数据对象及及该对象中所该对象中所有数据成员有数据成员之间的关系组成。记为:之间的关系组成。记为:Data
3、_Structure=D,Rn其中,其中,D是数据对象,是数据对象,R是该对象中所有数是该对象中所有数据成员之间的关系的有限集合据成员之间的关系的有限集合2022-8-15程序设计-2005秋6数据结构(续)数据结构(续)n程序的处理对象是描述客观事物的数据n由于客观事物的多样性,会有不同形式的数据n整数、实数、字符,以及所有计算机能够接收和处理的各种各样符号集合n在程序中,形式不同的数据采用数据类型来标识n变量的数据类型说明变量可能取的值的集合、施于变量的操作的集合2022-8-15程序设计-2005秋7数据结构(续)数据结构(续)n数据类型数据类型n一组形式相同的数据集,对这组数据可施行的
4、一组一组形式相同的数据集,对这组数据可施行的一组操作集操作集n对数据结构的总括对数据结构的总括n数据结构是指数据对象及其相互关系和构造方法数据结构是指数据对象及其相互关系和构造方法n程序的数据结构描述了程序中的数据间的组织形式程序的数据结构描述了程序中的数据间的组织形式和结构关系和结构关系2022-8-15程序设计-2005秋8算法算法n算法即问题的求解方法问题的求解方法n算法由一系列求解步骤组成。算法的描述由经明确说明的一组简单指令和规则组成,计算机按规则执行其中的指令能在有限的步骤内解决一个问题或者完成一个函数的计算n算法要求组成算法的规则和步骤的意义应是唯一确定的,是没有二义性的2022
5、-8-15程序设计-2005秋9算法(续)算法(续)n算法中的操作是有序的,必须按算法指定的操作顺序执行,能在有限步骤后给出问题的结果n求解同一问题可能有多种算法,选择算法主要考虑n正确性n可靠性n简单性n易理解性n执行效率n空间(内存和磁盘)代价等2022-8-15程序设计-2005秋10算法(续)算法(续)n描述算法的常用工具有流程图(又称框图)n流程图是算法的图形描述,流程图往往比程序更直观清晰,容易阅读和理解,它不仅可以作为编写程序的依据,也是交流算法思想的重要工具n在逐步求精的结构化程序设计方法中,目前多数采用结构化的伪代码(pseudo code)来描述算法2022-8-15程序设
6、计-2005秋11数据结构数据结构vs.算法算法n明确了问题的算法,才能较好设计数据结构n要选择好算法,又常常依赖于合理的数据结构n程序是和数据结构不可分割的。程序在描述算法同时,也必须完整地描述作为算法的操作对象的数据结构。对于一些复杂的问题,常有因数据的表示方式和结构的差异,问题的抽象求解算法也会完全不同2022-8-15程序设计-2005秋12程序的性质程序的性质n目的性n程序有明确的目的,程序运行时能完成赋予它的功能程序有明确的目的,程序运行时能完成赋予它的功能n分步性n程序为完成其复杂的功能,由一系列计算机可执行的步骤组成程序为完成其复杂的功能,由一系列计算机可执行的步骤组成n有序性
7、n程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序n有限性n程序是有限的指令序列,程序所包含的步骤是有限的程序是有限的指令序列,程序所包含的步骤是有限的n操作性n有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能2022-8-15程序设计-2005秋13什么是程序设计什么是程序设计?n程序设计(Program design):设计和编制程序的过程n设计程序:数据结构设计和算法设计n编制程序:把设计转化为某种程序语言的代码n程序设计需要n程序设计方法 软件工程(Sof
8、tware Engineering)方法学n结构化设计方法、面向对象方法n程序设计语言 程序语言学nBasic,Pascal,C,C+,Java,C#2022-8-15程序设计-2005秋14什么是好的程序?什么是好的程序?n高效(Efficient)n可靠(Reliable)n易读(Easy to read)n可维护(Maintainable)n可重用(Re-usable)n可移植(Portable)n2022-8-15程序设计-2005秋15什么是程序设计语言?什么是程序设计语言?n程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言n人机语言(human-machine lan
9、guage)n程序设计语言分三类n机器语言(Machine language)n汇编语言(Assembly language)n高级语言(High-level language)2022-8-15程序设计-2005秋16程序设计语言程序设计语言High-level languageMachine languageAssembly language2022-8-15程序设计-2005秋17机器语言机器语言n机器语言:计算机的指令系统n计算机都只能直接执行由其自身机器语言编写的程序n机器语言与计算机的硬件密切相关n机器语言中的计算机指令通常用一个二进制形式的代码,由若干位1和0组成n一条计算机指令
10、指示计算机一次完成一个最基本的操作2022-8-15程序设计-2005秋18汇编语言汇编语言n汇编语言:用类英语单词缩写的符号指令代替机器语言的二进制代码指令n用汇编语言编写的程序在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序。称完成这个转换功能的程序为“汇编程序“(assembler)2022-8-15程序设计-2005秋19高级程序高级程序n最接近自然语言的程序设计语言n主要由语句(statements)构成,语句是要计算机完成任务的命令n有统一的语法,独立于具体机器,便于人们编码,阅读和理解n用高级语言编写的程序(源程序)在计算机上执行,先要由编译器(也称为编译程序)将源
11、程序转换成机器语言程序n既能方便地描述客观对象,又能借助于编译器为计算机所接受的语言2022-8-15程序设计-2005秋20机器语言机器语言/汇编语言汇编语言/高级语言高级语言机器语言计算机汇编程序解释器编译器高级语言汇编语言AssemblerInterpreterCompiler2022-8-15程序设计-2005秋21高级语言分类高级语言分类n目前的高级语言可分三类n面向过程的语言(Procedural language)n面向问题的语言(Declarative language)n描述语言n面向对象的语言(Object-oriented language)2022-8-15程序设计-2
12、005秋22面向过程的语言面向过程的语言n早期最流行最常用的程序设计语言为面向过程型的语言nCobol,Fortran,Basic,C,n可独立于计算机编写程序,但编写程序时,程序不仅要说明做什么做什么(what),更重要的是非常详细地告诉计算机如何做如何做(how),程序需要详细描述解题的过程和细节2022-8-15程序设计-2005秋23面向问题的语言面向问题的语言n不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果n数据库查询和操纵语言:SQL(Structured Query Language)语言n逻辑语言专家系统语言:Prolog,Li
13、sp等2022-8-15程序设计-2005秋24面向对象的语言面向对象的语言n目的是克服面向过程语言过分强调求解过程细节,程序不易复用的缺点n引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念n用面向对象语言进行程序设计时,以问题中的对象为基础,将具有类似性质的对象抽象成类,利用继承机制,对差异进行程序设计n是目前的主流编程语言:C+,Java2022-8-15程序设计-2005秋25程序设计语言分类程序设计语言分类n与自然语言亲密关系n机器语言、汇编语言、高级语言n描述/求解问题方式n面向过程语言:Basic,Pascal,Cn面向问题语言:SQL,Lisp,Prologn面向对象语
14、言:C+,Javan程序设计风格n结构化语言nPascal,C,C+,Javan非结构化语言nCobol,Fortran,Basic2022-8-15程序设计-2005秋26提要提要n程序设计基本概念n结构化程序设计结构化程序设计n语言基础知识n高级语言程序开发环境基本知识n小结2022-8-15程序设计-2005秋27结构化程序设计方法n程序结构自顶向下模块化设计方法n模块算法的逐步求精(stepwise refinement)设计方法n用结构化控制结构描述算法和编写程序2022-8-15程序设计-2005秋28自顶向下模块化设计方法自顶向下模块化设计方法n限制程序复杂性是程序设计核心n程序
15、结构自顶向下模块化设计方法就是把大程序按功能划分成一些较小的部分,每个完成独立功能n分解模块的原则是简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护2022-8-15程序设计-2005秋29自顶向下模块化设计方法(续)自顶向下模块化设计方法(续)n在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质:n模块具有单一入口和单一出口n模块不宜过大,模块功能单一n模块的执行不对环境产生副作用n让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无关n尽量用模块的名字调用模块2022-8-15程序设计-2005秋30模块算法
16、逐步求精设计方法模块算法逐步求精设计方法n程序设计的基本方法是n抽象、枚举、归纳n抽象包括算法抽象和数据抽象n算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法n数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作2022-8-15程序设计-2005秋31逐步求精设计方法(续)逐步求精设计方法(续)n算法设计采用逐步求精设计方法,先设计出一个抽象算法,这是一个在抽象数据上实施一系列抽象操作的算法,由粗略的控制结构和抽象的计算步骤组成。n抽象操作只指明“做什么”,对这些抽象操作的细化就是想方设法回答它“如何做”n采用逐步求精的方法,由粗到细,将抽象步骤进一步
17、分解成若干子任务。分而治之,对仍不具体的抽象子任务再进行分解。如此反复地一步步细化,算法越来越具体,抽象成分越来越少,直至可以编程为止2022-8-15程序设计-2005秋32程序的基本结构单元程序的基本结构单元n顺序结构n条件选择结构nIf c Then op1 Else op2 n循环结构nDo While 循环结构nWhile循环结构nFor 循环结构n任何可计算问题,可用上述三种结构编程解决2022-8-15程序设计-2005秋33顺序结构顺序结构n把复杂的计算工作分解成一系列逐条执行的操作序列n顺序结构就是为把一个复杂的计算用若干简单计算的顺序执行提供控制手段。顺序结构执行时,从序列
18、的第一个操作开始,顺序执行序列中的操作,直至序列的最后一个操作执行后结束2022-8-15程序设计-2005秋34顺序结构实例顺序结构实例n实例:交换变量x和y的值n可分解为顺序执行的三个操作步骤:temp=x;/*将x的值暂存于temp*/x =y;/*将x置成y的值*/y=temp;/*将y置成temp的值*/2022-8-15程序设计-2005秋35条件选择结构条件选择结构n条件选择结构有一个判断条件和两个供选择分支操作组成n一般形式:if(判断条件)分支操作1;else 分支操作2;2022-8-15程序设计-2005秋36条件选择结构执行过程条件选择结构执行过程n先计算判断条件,如判
19、断条件的值为真,即条件成立,则执行分支操作1 n否则,若判断条件的值为假,即条件不成立,则执行分支操作2 n注意,无论判断条件为何值,条件选择结构只执行分支操作1或分支操作2之一n条件选择结构中的分支又可以是任何控制结构,当分支操作又是条件选择结构时,就呈现嵌套(nested)的条件选择结构2022-8-15程序设计-2005秋37实例实例int max(int x,int y)/*定义定义max函数,函数值为函数,函数值为整型,整型,形式参数形式参数x,y为整型为整型*/int z;/*max函数中的声明部分,定义本函数中用函数中的声明部分,定义本函数中用到的变量到的变量z为整型为整型*/i
20、f(xy)z=x;else z=y;return(z);2022-8-15程序设计-2005秋38循环结构循环结构n循环结构为描述循环操作提供控制手段n在C中,循环结构有以下三种:nwhile 循环结构ndo-while 循环结构nfor 循环结构2022-8-15程序设计-2005秋39while 循环结构循环结构n由一个循环条件和一个循环操作语句(称为循环体)组成n 一般形式:while(循环条件)循环体2022-8-15程序设计-2005秋40while 循环结构执行过程循环结构执行过程n每次循环前,先求循环条件的值,当条件成立时,就执行循环体,并接着再次求循环条件的值,以确定循环体是否
21、再次被执行n当循环条件的值一开始为假,或某次循环后其值为假,则结束循环操作2022-8-15程序设计-2005秋41实例实例计算计算5!:void main()int i,t;t=1;i=2;while(i=5)t=t*i;i=i+1;printf(%d,t);2022-8-15程序设计-2005秋42do-while 循环结构循环结构n由一个循环条件和一个循环操作语句(称为循环体)组成n 一般形式:do 循环体 while(循环条件);2022-8-15程序设计-2005秋43do-while循环结构执行过程循环结构执行过程n每次循环前,先执行循环体,接着再求循环条件的值,当条件成立时,再执
22、行循环体n如此反复,直到循环条件的值为假,结束循环操作2022-8-15程序设计-2005秋44实例实例求求 s=1+2+3+100用用do-while语句可描述成:语句可描述成:s=0;i=1;do s+=i;i+;while(i=100);2022-8-15程序设计-2005秋45for 循环结构循环结构n由为循环有关变量赋初值的表达式、循环条件、循环后对变量的修正表达式和循环执行的循环体组成n一般形式:for(赋初值表达式;循环条件表达式;修正表达式)循环体2022-8-15程序设计-2005秋46for 循环结构执行过程循环结构执行过程n循环前,先执行赋初值表达式,为循环中的有关变量赋
23、初值n每轮循环开始,先求循环条件的值,若条件不成立,则结束循环n当条件成立时,执行循环体;然后求变量修正表达式,更新有关变量的值;接着再次求循环条件n如此反复,直到条件为假,结束循环2022-8-15程序设计-2005秋47实例实例求求 s=1+2+3+s=1+2+3+100+100用用forfor语句可以写成:语句可以写成:for(s=0,i=1;i=100;i+)for(s=0,i=1;i=100;i+)s+=i;s+=i;2022-8-15程序设计-2005秋48提要提要n程序设计基本概念n结构化程序设计n语言基础知识语言基础知识n高级语言程序开发环境基本知识n小结2022-8-15程序
24、设计-2005秋49Dennis M.Ritchie(丹尼斯里奇)2022-8-15程序设计-2005秋50Dennis M.Ritchie(续)nHarvard University获学士和博士学位n1967年加入Bell实验室工作至今n1972年发明C语言n1978年,Brian W.Kernighan和Dennis M.Ritchie 合著The C Programming LanguagenTuring奖(1983)和IEEE先驱奖(1992)获得者、美国工程院院士2022-8-15程序设计-2005秋51C语言发展史语言发展史n1960年出现的ALGOL 60是一种面向问题的高级语言
25、,它离硬件比较远,不宜用来编写系统程序n1963年英国的剑桥大学推出了CPL(combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现n1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL(basic combined programming language)语言2022-8-15程序设计-2005秋52C语言发展史(续)语言发展史(续)n1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,设计出了简单且很接近硬件的B语言(取BCPL的第一个字母),并用
26、B语言写了第一个UNIX操作系统。但B语言过于简单,功能有限n1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。n1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版2022-8-15程序设计-2005秋53C语言发展史(续)语言发展史(续)n1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI Cn19
27、87年,ANSI又公布了新标准 87 ANSICn1990年,国际标准化组织ISO(International Standard Organization)接受87 ANSI C为ISO C 的标准(ISO 98991990)2022-8-15程序设计-2005秋54一个一个C程序实例程序实例一个只输出一行信息的程序#include void main()/*主函数主函数*/printf(This book is.n);2022-8-15程序设计-2005秋55C程序特点程序特点n一个C程序有一个名为 main 的主函数n主函数前的关键字void表示该函数不返回结果n在函数名之后要有一对圆括号
28、,里面定义参数n函数体用花括号“”括住。花括号可以用来括起任何一组C代码,从而构成复合语句或分程序n简单C语句之后有一个分号“;”n程序中的“/*/”表示程序的注释部分。注释便于人阅读程序,对程序编译和运行都没有作用n#include 是编译预处理命令行,指明有关输入和输出标准函数也将是程序的一部分2022-8-15程序设计-2005秋56【例】读入两个整数,输出它们的和【例】读入两个整数,输出它们的和/*1*/#include /*2*/void main()/*3*/*变量定义部分变量定义部分*/*4*/int x,y,sum;/*定义定义 x,y,sum*/*5*/*以下为语句序列以下为
29、语句序列*/*6*/printf(Input x and yn);/*提示输入数据提示输入数据*/*7*/scanf(%d%d,&x,&y);/*输入输入x和和y的值的值*/*8*/sum=x+y;/*完成完成x+y的计算的计算,求求sum=x+y*/*9*/printf(x+y=%dn,sum);/*输出结果输出结果*/*10*/2022-8-15程序设计-2005秋57【例】利用公式:【例】利用公式:C=(5/9)()(F-32)输出输出F氏温度氏温度与与C氏温度对照表,设已知氏温度对照表,设已知F氏温度取氏温度取0、20、200。#include void main()float f,c
30、;/*变量定义变量定义*/int lower,upper,step;lower=0;upper=200;step=20;f=lower;while(f=upper)/*循环计算循环计算*/c=5.0/9.0*(f-32.0);printf(“%3.0f%6.1fn”,f,c);f=f+step;2022-8-15程序设计-2005秋58【例】输入两个实数【例】输入两个实数,输出它们中的小的数输出它们中的小的数#include void main()float x,y,c;/*变量定义变量定义*/float min(float,float);/*函数说明函数说明*/printf(“输入输入x和和
31、y.n);scanf(%f%f,&x,&y);c=min(x,y);/*调用函数调用函数 min()*/printf(MIN(%.2f,%.2f)=%.2fn,x,y,c);float min(float a,float b)float temp;/*函数使用的变量的定义函数使用的变量的定义*/if(a b)temp=a;else temp=b;return temp;/*返回返回 temp 到调用到调用 min()函数处函数处*/2022-8-15程序设计-2005秋59函数(函数(Function)nC程序由若干函数组成。每个程序都有一个主函数-main()函数n一个函数定义由函数头和函数
32、体组成。函数头包括函数属性、函数返回值类型、函数名、函数形式参数名,形式参数类型。n函数结构的一般形式:函数返回值类型 函数名(参数说明表)说明和定义部分;执行语句序列 2022-8-15程序设计-2005秋60函数(续)函数(续)n函数可以没有参数,但函数名之后的一对圆括号是必须的n函数体是函数头之后用一对花括号括住的部分。函数体用于描述实现函数功能的代码,它又包括:n说明和定义部分n说明数据结构(类型)和定义函数专用的局部变量等n执行部分n由语句和控制结构代码组成2022-8-15程序设计-2005秋61【例】统计输入字符行中各数字符、空白符与制表符符以及其它字【例】统计输入字符行中各数字
33、符、空白符与制表符符以及其它字符的出现次数。符的出现次数。#include void main()int c,k,nWhite,nOther;int nDigit10;/*定义有定义有10个数字符的计数器个数字符的计数器*/nWhite=nOther=0;for(k=0;k=0&c=9)/*如是数字符如是数字符*/+nDigitc 0;/*对应数字符的计数器增对应数字符的计数器增1*/else if(c=|c=t)+nWhite;else +nOther;/*其它字符计数器增其它字符计数器增1*/for(k=0;k 10;k+)/*输出对应数字符及其出现次数输出对应数字符及其出现次数*/pri
34、ntf(”%c:%dn”,0+k,nDigitk);printf(”white space:%dn other:%dnn”,nWhite,nOther);2022-8-15程序设计-2005秋62C语言词汇语言词汇n基本符号n数字10个(09)n英文字母大、小写各26个(AZ,az)n下线字符“_”n其他构成特殊符号的字符集n基本词汇n字面形式常量n特殊符号(运算符)n关键字n标识符(命名数据对象)2022-8-15程序设计-2005秋63关键词(关键词(Keyword)auto break case char const continue default do double else enu
35、m extern float for goto if int long register return short signed static struct switch typedef union unsigned voidvolatile while2022-8-15程序设计-2005秋64关键词(续)关键词(续)n下面几个虽不属于关键字,但建议把它们看作关键字,不要在程序中随便使用。它们用在程序的预处理命令行中define undef include ifdefifndefendif line elif2022-8-15程序设计-2005秋65标识符(标识符(Identifier)n作用
36、:用来标识变量、常量、类型、函数、语句等程序对象,C语言用标识符给它们命名n命名规则:在C语言中,一个合理的标识符由英文字母或下线符开头,后跟或不跟由字母、下线符、数字符组成的字符列。一般以下线符开头的标识符作内部使用2022-8-15程序设计-2005秋66标识符(续)标识符(续)n命名要求:标识符作为程序成分对象的名称,为了便于联想和记忆,建议使用能反映该对象意义的标识符n限制:注意不同系统对标识符的有效字符个数有不同的规定。对于限制标识符8个有效字符的系统来说,两个超过8个字符的不同标识符,当前8个字符依次相同时,系统就认为它们是同一个标识符2022-8-15程序设计-2005秋67C语
37、言数据类型语言数据类型n三种数据类型n基本数据类型、指针类型、复合数据类型n基本数据类型三种n整型(short,int,long)n实型(float,double,long double)n字符型(char)2022-8-15程序设计-2005秋68C语言数据类型语言数据类型(续续)n复合数据类型类型n数组、结构、联合和枚举数组、结构、联合和枚举n指针类型指针类型n指针类型直接赋予数据对象在内存中指针类型直接赋予数据对象在内存中的地址的概念的地址的概念2022-8-15程序设计-2005秋69常量常量(Constant)n在程序运行过程中,其值不能改变或不允许改变的数据对象n常量按值的表示形式
38、区分它的类型n整型常量:15n浮点型常量:5.0n字符型常量:an指针常量:NULLn字符串常量:”ABC”2022-8-15程序设计-2005秋70常量(续)常量(续)n可用宏定义给常量命名用宏定义给常量命名n其一般形式是其一般形式是#define 标识符标识符 字符列字符列如:如:#define PI 3.141592022-8-15程序设计-2005秋71变量(变量(Variable)n在程序运行过程中,其值可以改变的数在程序运行过程中,其值可以改变的数据对象据对象n变量在内存中占据一定的存贮单元,存变量在内存中占据一定的存贮单元,存放变量的值放变量的值n与变量有关的概念有与变量有关的概
39、念有:变量名、变量数变量名、变量数据类型、变量在程序中的有效作用范围、据类型、变量在程序中的有效作用范围、变量在程序执行期间的存在时间等变量在程序执行期间的存在时间等2022-8-15程序设计-2005秋72变量(续)变量(续)n程序通过变量定义引入变量,变量定义的一般形式:类型类型 变量名表变量名表;其中,变量名表由一个或多个变量名组成。其中,变量名表由一个或多个变量名组成。例如:例如:int i,j,sum;/*定义三个定义三个int型变量型变量*/int index=100,big_int=100002022-8-15程序设计-2005秋73提要提要n程序设计基本概念n结构化程序设计n语
40、言基础知识n高级语言程序开发环境基本知识高级语言程序开发环境基本知识n小结2022-8-15程序设计-2005秋74C程序从开发到运行的六个阶段程序从开发到运行的六个阶段nC程序从开发到运行大致要经历六个阶段n编辑(Edit)n预处理(Pre-process)n编绎(Compile)n连接(Link)n加载(Load)n执行(Execute)2022-8-15程序设计-2005秋75编辑、预处理与编译编辑、预处理与编译n编辑:程序员用系统环境提供的编辑器编辑源程序,产生一个源程序文件.c 或.h n预处理:编译前,C编绎器先自动调用预处理程序,对源程序文件作文字转换,产生一个新的内部程序代码n
41、编译:若编译过程中发现程序有错误,则输出错误的详细信息;对正确的源程序产生机器语言程序,称为源程序的目的代码2022-8-15程序设计-2005秋76连接、加载与执行连接、加载与执行n连接:连接程序将目的代码和一些库函数的目的代码连接起来,产生计算机可直接执行的程序映象文件n静态连接vs.动态连接n加载:将要执行的程序装入内存n执行:装入内存的程序在计算机的操作系统控制下执行2022-8-15程序设计-2005秋77提要提要n程序设计基本概念n结构化程序设计n语言基础知识n高级语言程序开发环境基本知识n小结小结2022-8-15程序设计-2005秋78小结小结n程序程序是为解决某一问题的某种语言指令的序列n程序设计程序设计是基于某种程序语言设计和编制程序的过程n结构化程序设计方法结构化程序设计方法是常用的、比较有效的程序设计方法nC语言语言是一种主流的过程化高级程序设计语言n一个高级语言程序在运行前,要经过预处理预处理、编编译译、连接连接和加载加载等四个过程2022-8-15程序设计-2005秋79作业作业n设计一个C程序,实现如下功能C程序程序?输入“2005级新生级新生”“出国出国”“读研读研”“工作工作”“失业失业”“肆业肆业”“退学退学”2022-8-15程序设计-2005秋80 谢谢!谢谢!