




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教案教师姓名涂刚课程名称C语言程序设计班级12软件技术授课日期2012年9月10日第2周课时2课型新授课章节名称第1章 程序与算法基础1.1 程序与算法 1.2 简单程序实例1.6 程序设计语言基础知识 1.7 C语言的产生和特点教学目的1.了解计算机语言的发展及特点2.了解C语言的相关特点及学习C语言的必要性3.掌握C语言程序的基本结构4.了解程序、算法的概念教学重点C语言程序的基本结构教学难点C语言程序的基本结构补充、删节、更新计算机的基本组成教具理实一体化教学场所课外作业预习第1章3、4、5节课后体会通过对程序、算法经及计算机语言的发展和C语言程序的基本结构的讲解,激发了学生的学习兴趣,加深了学生对程序设计的认识。授课主要内容第1章 程序与算法基础1.1 程序与算法1.1.1 实例程序演示1.1.2 程序与算法1.程序(program)2.算法(algorithm)3.数据(data)4.数据结构(data structure)1.2 简单程序实例#include main()printf(“Hello world n”);1.6 程序设计语言基础知识1.6.1 机器语言1.简介2.缺点1.6.2 汇编语言1.简介2.优缺点3.应用。1.6.3 高级语言1.简介2.程序设计语言的类型3.使用高级语言的好处。1.7 C语言的产生和特点1.7.1 C语言的产生1.7.2 C语言的特点1.基本特性2.新特性组织教学(1)清点学生到校情况(2)课程介绍(主要内容、学习方法、要求及参考资料)教学目标1.了解计算机语言的发展及特点2.了解C语言的相关特点及学习C语言的必要性3.掌握C语言程序的基本结构4.了解程序、算法的概念新课导入(1)曾经学习过哪些计算机知识及相关内容。(2)学习过或接触过程序设计?新课教学第1章 程序与算法基础1.1 程序与算法1.1.1 实例程序演示1.打印万年历2.二分检索的可视化输出和字符动画3.排序动画4.汉诺塔(Towers of Hanoi)游戏1.1.2 程序与算法1.程序(program):为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。 计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。2.算法(algorithm):指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。3.数据(data):作为信息的载体,当然要分析数据中包含的主要信息,及分析数据的主要特征。也就是说,要研究数据的数字特征。研究数据就是对数据进行采集、分类、录入、储存、统计分析,统计检验等一系列活动的统称。4.数据结构(data structure):计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。1.2 简单程序实例#include main()printf(“Hello world n”);1.6 程序设计语言基础知识1.6.1 机器语言直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。1.简介:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如:操作码字段地址码字段其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:(1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。(2)操作数的地址。CPU通过该地址就可以取得所需的操作数。(3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。(4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动+1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。一条指令实际上包括两种信息即操作码和地址码。操作码(OperationCode,OP)用来表示该指令所要完成的操作(如加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。 指令系统地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。2.缺点(1)大量繁杂琐碎的细节牵制着程序员,使他们不可能有更多的时间和精力去从事创造性的劳动,执行对他们来说更为重要的任务。如确保程序的正确性、高效性。(2)程序员既要驾驭程序设计的全局又要深入每一个局部直到实现的细节,即使智力超群的程序员也常常会顾此失彼,屡出差错,因而所编出的程序可靠性差,且开发周期长。(3)由于用机器语言进行程序设计的思维和表达方式与人们的习惯大相径庭,只有经过较长时间职业训练的程序员才能胜任,使得程序设计曲高和寡。(4)因为它的书面形式全是密码,所以可读性差,不便于交流与合作。(5)因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。 这些弊端造成当时的计算机应用未能迅速得到推广。(6)弱通用性。各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。因此,尽管各种型号计算机的高级语言基本相同,但将高级语言程序编译成机器语言后,其差别也是很大的。因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。大家知道,一台新机器推出交付使用时,仅有少量系统软件(如操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。1.6.2 汇编语言汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。1.简介:汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写Windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。2.优缺点(1)优点1)面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2)保持了机器语言的优点,具有直接和简捷的特点。3)可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4)目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5)经常与高级语言配合使用,应用十分广泛。2(2)缺点1)编写的代码非常难懂,不好维护;2)很容易产生bug,难于调试;3)只能针对特定的体系结构和处理器进行优化;4)开发效率很低,时间长且单调。3.应用:汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。 汇编语言程序设计(1)70%以上的系统软件是用汇编语言编写的。(2)某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。(3).某些高级绘图程序、视频游戏程序是用汇编语言编写的。汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。1.6.3 高级语言由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。1.简介:计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。 高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的c,c+,pascal,python,lisp,prolog,FoxPro,Delphi,VC,易语言(其中C/C+属于中低级语言)等等,这些语言的语法、命令格式都不相同。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。 高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。2.程序设计语言的类型(1)命令式语言。这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C+、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。(2)函数式语言。这种语言的语义基础是基于数学函数概念值映射的算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如Lisp、Haskell、ML、Scheme 、F#等。(3)逻辑式语言。这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。(4)面向对象语言。现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是 Smalltalk。 虽然各种语言属于不同的类型,但它们各自都不同程度地对其他类型的运算模式有所支持。3.使用高级语言的好处。程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:(1)高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;(2)高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;(3)高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;(4)由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。1.7 C语言的产生和特点C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。1.7.1 C语言的产生1.早期发展C语言之所以命名为C,是因为 C语言源自 Ken Thompson 发明的B语言,而 B语言则源自BCPL语言。1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。Brian Kernighan 和 Dennis Ritchie 出版了一本书,名叫The C Programming Language。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。 1983年美国国家标准局 (American National Standards Institute,简称ANSI)成立了一个委员会,来制定 C语言标准。1989年 C语言标准被批准,被称为 ANSI X3.159-1989 Programming Language C。这个版本的C语言标准通常被称为ANSI C。1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为ISO/IEC9899:1999。在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C继续在改进。(实际上,NormativeAmendment1在1995年已经开发了一个新的C语言版本。但是这个版本很少为人所知。)它被ANSI于2000年3月采用。12 C11 2001年和2004年先后进行了两次技术修正。2011年12月8日,ISO正式公布C语言新的国际标准草案:ISO/IEC 9899:2011,即C11。1.7.2 C语言的特点1.基本特性(1)C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。(2)C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(3)C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。(4)C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。(5)C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C+在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C+的教训,取消了指针操作,也取消了C+改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C+/C。一般而言,C,C+,java被视为同一系的语言,它们长期占据着程序使用榜的前二名。(6)C语言文件由数据序列组成:可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,Watcom C+,Borland C+ Builder,GNU DJGPP C+,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode(mac os x)等。2.新特性2011年12月8日,ISO正式发布了新的C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011。新的标准提高了对C+的兼容性,并增加了一些新的特性。这些新特性包括:(1)对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及头文件。(2)_Noreturn 函数标记,类似于 gcc 的 _attribute_(noreturn)。(3)_Generic 关键字。(4)多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,;头文件,里面包含了线程的创建和管理函数。增强的Unicode的支持,基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件.(5)删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。(6)增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。(7)增加了更多浮点处理宏。(8)匿名结构体/联合体支持,这个在gcc早已存在,C11将其引入标准。 (9)静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。(10)新 fopen() 模式,(“x”),类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。(11)新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少清理工作。 (12)_Atomic类型修饰符和头文件。归纳小结1.计算机语言的发展及特点2. C语言的相关特点及学习C语言的必要性3. C语言程序的基本结构4.程序、算法的概念作业布置预习第1章第3、4、5节。教案教师姓名涂刚课程名称C语言程序设计班级12软件技术授课日期2012年9月10日第2周课时2课型实验章节名称1.3 C程序的编辑、编译、连接和执行 1.4 实例程序的解读1.5 系统生成的文件和程序配置教学目的1.掌握Visual C+6.0环境下C语言程序的编辑、编译、连接和执行。2.通过运行简单的C程序,初步了解C源程序的特点。教学重点C语言程序的编辑、编译、连接和执行教学难点C语言程序的编辑、编译、连接和执行补充、删节、更新无教具计算机室课外作业预习第2章。课后体会学会了在Visual C+6.0环境下进行C语言程序的编辑、编译、连接和执行。授课主要内容1.3 C程序的编辑、编译、连接和执行1.3.1 C语言程序的编辑、编译、连接和执行概述1.基本概念2. C语言程序的编辑、编译、连接和执行1.3.2 编程工具的选择1.3.3 C语言程序的开发过程1.编辑2.编译3.连接4.执行1.4 实例程序的解读1.5 系统生成的文件和程序配置组织教学1.清点学生到校情况实验目的1.掌握Visual C+6.0环境下C语言程序的编辑、编译、连接和执行。2.通过运行简单的C程序,初步了解C源程序的特点。实验导入1.计算机语言的发展及特点2. C语言的相关特点及学习C语言的必要性3. C语言程序的基本结构4.程序、算法的概念实验内容1.3 C程序的编辑、编译、连接和执行1.3.1 C语言程序的编辑、编译、连接和执行概述1.基本概念(1)编译程序(compiler)。把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。(2)目标程序(object program; target program)。为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名-由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。(3)可执行程序(EXE File)。一种可在操作系统存储空间中浮动定位的可执行程序。MS-DOS和MS-WINDOWS下,此类文件扩展名为.exe 2.WINDOWS操作系统中的二进制可执行文件,可执行文件分两种一种是后辍名为.COM另一种就是.EXE 。(4)源程序(source program)。指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。2. C语言程序的编辑、编译、连接和执行(1)编辑(2)编译(3)连接(4)执行1.3.2 编程工具的选择1.3.3 C语言程序的开发过程1.编辑。在Visual C+ 6.0 C环境下,将C语言源程序通过键盘输入到计算机中,并以文件形式存盘,以便将来再使用时,直接从磁盘调入到内存中执行,文件扩展名为.c,例如ex1.c。2.编译。编译过程将把 C语言源程序转换成目标程序。目标程序是以.obj为扩展名的文件。若源程序有错,需要对其进行修改,然后重新编译直至没有错误,才算编译成功。3.连接。编译后生成的目标文件不能直接执行,需要经过连接之后才能生成可执行代码。在 DOS系统下,连接后所得到的可执行文件扩展名是.EXE。连接的目的是将目标文件和库函数或其他目标程序连接成可执行程序。4.执行。连接生成的程序就是可执行文件了。1.4 实例程序的解读(1)C 语言程序是由函数构成的,一个源程序可以包含若干个函数,但必须有且只有一个函数为主函数main()。(2)由大括号括起来的部分为函数体,函数体可以包含若干条C语句。每条语句必须以分号“;”结束。(3)除主函数外,C 语言系统还提供一些可直接使用的库函数,如例子中的 printf()、scanf()等。用户也可以根据需要,自己定义函数如sum()。(4)程序可以加注释以增加可读性,其内容必须用/*.*/括起来。(5)C语句一般用小写字母书写。1.5 系统生成的文件和程序配置实验小结1. Visual C+6.0环境下C语言程序的编辑、编译、连接和执行。2.通过运行简单的C程序,初步了解C源程序的特点作业布置预习第2章。教案教师姓名涂刚课程名称C语言程序设计班级12软件技术授课日期2012年9月12日第2周课时3课型新授课章节名称第2章 C语言基础2.1 会动的字符 2.2 C语言的基本字符、标识符和关键字教学目的1.掌握C语言程序结构2.了解C语言的基本字符、标识符和关键字3.掌握C语言标识符的命名规则教学重点C语言标识符的命名规则教学难点C语言标识符的命名规则补充、删节、更新内存、内存管理教具理实一体化教学场所课外作业预习第2章3节课后体会通过对C语言程序的解读和C语言的基本字符、标识符和关键字的讲解,加深了学生对C语言程序的认识。授课主要内容第2章 C语言基础2.1 会动的字符 1.会眨眼睛的字符2.会运动的字符2.2 C语言的基本字符、标识符和关键字2.2.1 基本字符1.源字符集2.执行字符集2.2.2 标识符2.2.3 关键字2.2.4特定字2.2.5 ASCII字符集组织教学(1)清点学生到校情况(2)课程介绍(主要内容、学习方法、要求及参考资料)教学目标1.掌握C语言程序结构2.了解C语言的基本字符、标识符和关键字3.掌握C语言标识符的命名规则新课导入1. Visual C+6.0环境下C语言程序的编辑、编译、连接和执行。2.通过运行简单的C程序,初步了解C源程序的特点新课教学第2章 C语言基础2.1 会动的字符 1.会眨眼睛的字符#include /*声明printf函数*/#include /*声明getch函数*/main()printf(“r GOOd day”);getch();printf(“r G-d day”);getch();printf(“r GOOd day”);getch();printf(“r G-d day”);getch();printf(“r GOOd day”);getch();printf(“r G-d day”);getch();2.会运动的字符#include /*声明printf函数*/#include /*声明getch函数*/main()printf(“nnnn ”);printf(“bbbbbbbb Good day”);getch();printf(“bbbbbbbb Good day”);getch();printf(“bbbbbbbb Good day”);getch();printf(“bbbbbbbb Good day”);getch();printf(“bbbbbbbb Good day”);getch();2.2 C语言的基本字符、标识符和关键字2.2.1 基本字符1.源字符集字符集是构成C语言的基本元素。用C语言编写程序时,除字符型数据外,其他所有成份必须由字符集中的字符构成。C语言的字符集由下列字符构成:(1)英文字母:AZ,az。(2)数字字符:09。(3)特殊符号:空格 ! % * & _(下划线)+ = - / ; . ,()2.执行字符集C语言程序执行期间解释的字符集。2.2.2 标识符标识符用于给变量、函数和其他用户自定义类型命名。C语言的标识符必须按以下规则构成:(1)必须以英文字母或下划线开始,并由字母、数字和下划线组成。例如:chABC,intX,uY126 等都是合法的标识符,而555Str,-chabc,+intJ等则是非法的标识符。(2)每个标识符可以由多个字符组成,但只有前 8个标识符为有效标识符,例如:employee1和employee2 被认为是相同的标识符employee。(3)大写字符和小写字符代表不同的标识符,如chabc和chABC是两个不同的标识符。(4)不能使用C语言的关键字作为标识符。2.2.3 关键字关键字是C语言已经定义的、具有特殊功能和含义的单词、单词缩写或者单词组合。以下列出的是C语言的关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while 2.2.4特定字2.2.5 ASCII字符集在计算机中,所有的信息都用二进制代码表示。二进制编码的方式较多,应用最为广泛的是 ASCII码。我们使用的字符在计算机中就是以ASCII码方式存储的。ASCII码是美国标准信息交换码(American Standard Code for Information Interchange,缩写为ASCII)。它已被国际标准化组织(ISO)认定为国际标准。ASCII码分为标准ASCII码和扩展ASCII码,标准ASCII码在内存中占用一个字节,字节中的低 7位用于编码,因此可以表示128个符号。基本字符如09,AZ,az等编码值为 32127,控制符的编码值为 031。控制符用于计算机向外部设备输出一些特殊的命令,如控制打印机换行、换页等。归纳小结1.C语言程序结构2.C语言的基本字符、标识符和关键字3.C语言标识符的命名规则作业布置预习第2章第3节。教案教师姓名涂刚课程名称C语言程序设计班级12软件技术授课日期2012年9月13日第2周课时2课型实验章节名称2.3 数据与数据类型教学目的1.理解常量和变量2.掌握标识符、变量的命名规则3.掌握C语言中的数据类型,能够根据程序设计需要合理选择数据类型教学重点C语言中的数据类型,能够根据程序设计需要合理选择数据类型教学难点C语言中的数据类型,能够根据程序设计需要合理选择数据类型补充、删节、更新无教具计算机室课外作业预习第2章第4、5节。课后体会掌握了C语言中的数据类型,能够根据程序设计需要合理选择数据类型。授课主要内容2.3数据与数据类型2.3.1 猜生日游戏1.建模2.程序设计。(1)变量和变量的定义(2)格式化输入(3)运算符和表达式(4)格式化输出2.3.2 数据类型分类2.3.3 常量和变量1.常量2. 变量(1)变量的有关规定:(2)变量的定义2.3.4基本类型1.整型(1)整型常量(2)整型变量(3)整型变量的使用 2.实型数据(1)实型常量(2)实型变量3.字符型数据(1)符型常量(2)字符型变量(3)字符串常量。组织教学1.清点学生到校情况实验目的1.理解常量和变量2.掌握标识符、变量的命名规则3.掌握C语言中的数据类型,能够根据程序设计需要合理选择数据类型实验导入1.C语言程序结构2.C语言的基本字符、标识符和关键字3.C语言标识符的命名规则实验内容2.3数据与数据类型2.3.1 猜生日游戏猜生日游戏。请将你出生的月份乘以5,加上8,乘以20,加上你出生的日期,再减掉200,把最后的得数输入计算机,计算机便能计算出你的生日。1.建模。令出生月份为month。出生的日期为day,令最后的得数为result,则有:(month5+8) 20+day-200=result化简可得:100month+day=result+40将得数result加上40除以100,则商就是出生月份month,而余数为出生日期day。2.程序设计。#include /*声明printf函数*/main()int month,day,result;/*定义三个整型变量,分别表示出生月份、出生日期和得数*/printf(“请输入((month5+8) 20+day-200)= ”);/*提示输入*/scanf(“%d”,&result);/*接收键盘输入并将数值存入变量result*/result=result+40;/*result的值加40后再存回result*/month=result/100;/*月份为result除以100的商*/day=result%100;/*日期为result除以100的余数*/printf(“n您的生日为%d月%d日n”,month,day);/*输出结果*/(1)变量和变量的定义(2)格式化输入(3)运算符和表达式(4)格式化输出2.3.2 数据类型分类2.3.3 常量和变量1.常量。又称常数,是指在程序运行中其值不能被改变的量。常量可分为不同的类型。如:5、0、-8为整型常量;2.5、-1.2为实型常量;a、b为字符型常量,也可以用一个名字(字符序列)来代表一个常量,如用PI表示3.14,这种常量被称为符号常量。符号常量的使用将后面介绍;还可以用与某些字母组合,表示能够让计算机运行时完成一固定动作的字符常量称转义字符常量。2. 变量。在程序运行过程中其值可以被改变的量。变量被分为不同类型,在内存中占用不同的存储单元,以便用来存放相应变量的值,编程时,用变量名来标识变量,变量的命名规则同识符的定义规则相同。(1)变量的有关规定:1)使用变量前,必须先定义,否则不能作为变量来使用。例如: int student;statent=20;在编译时检查出statent未经定义。2)每一个变量属于一种类型,便于在编译时为其分配相应的存储单元并据此检查该变量所进行的运算是否合法。合法的变量名:day,year,book,student,a1,a2,b1,b2;不合法的变量名:#852,.com,s1,1999y,123,float(2)变量的定义:存储属性 数据类型 变量名表变量定义包括三部分:存储属性、数据类型、变量名表。数据类型决定了变量的取值范围和占用内存空间的字节数,变量名表是具有同一数据类型变量的集合。2.3.4基本类型1.整型(1)整型常量。有三种表示方法:1)十进制整数:如1236,-234,0。2)八进制整数:以0开头的数是八进制数。如 011表示八进制数的(11)8。3)十六进制整数:以0x开头的数是十六进制数。如0x123即(123)16。三种进制表示方法的转换。main()int x=1246,y=01246,z=0x1246;printf(%d,%d,%dn,x,y,z); /*%d: 以十进制格式符输出 */printf(%o,%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑血管疾病教学查房课件
- 物表采样课件图
- 财富管理行业未来趋势报告:2025年客户需求与服务升级策略
- 小学生健康知识和健康行为问卷及答案
- 2025年甘肃天水市太京中学生物高三第一学期期末达标测试试题
- 急诊考试试题及答案
- 2025年安全生产事故应急处理流程题及答案
- 2025年道路安全知识竞赛题集及答案解析
- 企业合规审核合同模板
- 植被覆盖度评价合同
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 幼儿园安全责任书及后勤管理制度
- 消防车辆事故课件
- 2026届四川省宜宾市普通高中高一化学第一学期期末统考试题含解析
- 《2型糖尿病中医防治指南(2024版)》解读课件
- 剑阁县普安镇污水处理厂扩容建设项目环评报告
- 商务楼宇管理办法
- 肺炎护理试题填空及答案
- 社用手机管理办法
- 心电监护操作常见并发症预防及处理
- 学校食堂各种检查记录表格表册11
评论
0/150
提交评论