C程序设计与实践第1章.ppt

上传人:wuy****n92 文档编号:70101294 上传时间:2023-01-16 格式:PPT 页数:35 大小:970.50KB
返回 下载 相关 举报
C程序设计与实践第1章.ppt_第1页
第1页 / 共35页
C程序设计与实践第1章.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《C程序设计与实践第1章.ppt》由会员分享,可在线阅读,更多相关《C程序设计与实践第1章.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、程序程序设计与与实践践目目录第第1 1章章 C C语言程序框架言程序框架1.11.1C C语言言简介介1.21.2简单C C程序程序举例例1.31.3C C程序程序结构构1.41.4C C程序的程序的编译和运行和运行第第1 1章章C C语言程序框架言程序框架1.11.1C C语言言简介介一、一、C C语言的言的产生与生与发展展简史史C C语言是一种得到广泛重言是一种得到广泛重视并普遍并普遍应用的程序用的程序设计语言,也是国言,也是国际上公上公认的最重要的几种通用程序的最重要的几种通用程序设计语言之一。它既可用来写系言之一。它既可用来写系统软件,也可用件,也可用来写来写应用用软件,但与其他件,但

2、与其他语言相比言相比较还是更适合作是更适合作为系系统描述描述语言。随着面言。随着面向向对象等程序象等程序设计方法的方法的产生和生和发展,以展,以C C语言言为基基础,后来又,后来又产生了目前生了目前应用比用比较广泛的广泛的C C、C#C#、JAVAJAVA语言等。很多人言等。很多人认为学学习C C语言没什么必要,言没什么必要,但是但是对于于专业学学习计算机的人来算机的人来说却很重要,却很重要,编者引用美国的在者引用美国的在C C语言程序言程序设计:现代方法代方法里里对C C语言作出的言作出的评价:价:“C C语言不是言不是编程程语言的言的终结;然而,;然而,C C语言却是每个言却是每个软件开件

3、开发人人员都都应该掌握的掌握的编程程语言。言。”C C语言是在言是在B B语言的基言的基础上上发展起来的,展起来的,B B语言是言是19701970年美国年美国电话电报公公司司(AT&T)(AT&T)贝尔实验室的室的KenThompsonKenThompson设计的,的,较简单也也较接近硬件,但接近硬件,但B B语言是一种解言是一种解释性性语言,功能上不言,功能上不够强,不能很好的适,不能很好的适应系系统程序程序设计的需要。的需要。C C语言言诞生于生于19721972年,由年,由贝尔实验室的室的设计,并首先在一台使用,并首先在一台使用UNIXUNIX操操作系作系统的的DECPDP11DECP

4、DP11计算机上算机上实现。C C语言既言既继承了在它之前各种程序承了在它之前各种程序设计语言的言的优点,同点,同时克服了它克服了它们的缺点,并由于用的缺点,并由于用C C语言言设计实现的的UNIXUNIX操作操作系系统的巨大成功,的巨大成功,C C语言也随之推广改言也随之推广改进,而被广泛移植到各种机器上。,而被广泛移植到各种机器上。19781978年,年,贝尔实验室的和室的和Dennis.M.Ritchie(Dennis.M.Ritchie(合称合称K&R)K&R)合著了合著了TheCTheCProgrammingLanguageProgrammingLanguage一一书,并在附,并在附

5、录中提供了中提供了C C语言参考手册,言参考手册,这本本书成成为以后广泛使用的以后广泛使用的C C语言的基言的基础,被人,被人们称作称作非官方的非官方的C C语言言标准。准。19831983年美国国家年美国国家标准化准化协会会(ANSI)(ANSI)开始制定新的开始制定新的标准,准,这就是就是ANSICANSIC标准。准。19901990年,年,C C语言成言成为国国际标准化准化组织(ISO)(ISO)通通过的的标准准语言。言。目前在很多目前在很多应用用领域,特域,特别是嵌入式是嵌入式软件等件等领域,域,C C语言言(以及以及C C)正正在在发挥着不可替代的重要作用。当今社会,着不可替代的重要

6、作用。当今社会,计算机和网算机和网络技技术发展日新月异,展日新月异,而而C C语言已有近言已有近4040年的年的历史,史,这对于一个程序于一个程序语言来言来说意意义极其重大,极其重大,值得我得我们认真思考和深入研究。真思考和深入研究。二、二、C C语言的特点言的特点1.C1.C语言是言是“高高级语言中的低言中的低级语言言”。这句句话的含的含义是,首先是,首先C C语言是一种高言是一种高级编程程语言,它能言,它能编写不依写不依赖于于机器硬件机器硬件设备的的应用程序,主要表用程序,主要表现为C C语言程序的可移植性,当然言程序的可移植性,当然现在大在大部分的部分的编程程语言都具言都具备这样的的优点

7、,但在早期的点,但在早期的编程程语言中,言中,这一点是一点是C C语言的主要言的主要优势之一,之一,C C程序具有可移植性的一个原因要感程序具有可移植性的一个原因要感谢C C语言与言与UNIXUNIX系系统的早期的早期结合,以及后来的合,以及后来的ANSI/ISOANSI/ISO标准化工作。准化工作。C C语言正是由于言正是由于标准化才准化才没有分裂成不兼容的多种分支。另一个原因是没有分裂成不兼容的多种分支。另一个原因是C C语言言编译器器规模小且容易模小且容易编写,写,这使得此种使得此种编译器得以广泛器得以广泛应用。用。其次其次C C语言言还具有低具有低级语言的特点,它具有言的特点,它具有许

8、多通常只有像多通常只有像汇编语言才言才具具备的功能,如位操作、直接的功能,如位操作、直接访问物理地址等等,物理地址等等,这使使C C语言在言在进行系行系统程程序序设计时显得非常有效,而得非常有效,而过去系去系统软件通常只能用件通常只能用汇编语言言编写。事写。事实上,上,C C语言的言的许多多应用用场合是合是汇编语言的言的传统领地,地,现在用在用C C来代替来代替汇编,使程序使程序员得以减得以减轻负担、提高效率。担、提高效率。C C语言提供了很多言提供了很多类似于似于汇编语言言的描述方式,因此的描述方式,因此编译后的目后的目标代代码执行的效率非常高。行的效率非常高。C C语言具有很多接近硬件操作

9、的功能,但不提供直接言具有很多接近硬件操作的功能,但不提供直接处理复合理复合对象,如象,如作作为整体看待的字符串、数整体看待的字符串、数组等的操作。等的操作。C C语言的言的规模模较小,更容易小,更容易说明,明,学学习起来也快。起来也快。2.C2.C语言是言是结构化的构化的语言言C C语言的主要言的主要结构成分是函数。函数允构成分是函数。函数允许一个程序中的各任一个程序中的各任务分分别定定义和和编码,使程序模,使程序模块化,在函数的外部只需了解函数的功能,而将化,在函数的外部只需了解函数的功能,而将实现的的细节隐藏起来。藏起来。设计得好的函数能得好的函数能够正确地工作而正确地工作而对程序的其他

10、部分不程序的其他部分不产生副生副作用。作用。C C语言言还提供了多种提供了多种结构化的控制构化的控制语句,如用于循句,如用于循环的的forfor,whilewhile,dodowhilewhile语句,用于判定的句,用于判定的if ifelseelse,switchswitch语句等,以句等,以满足足结构化构化程序程序设计的要求。的要求。3.C3.C语言十分言十分简练C C语言是一种非常言是一种非常简练的的语言,用言,用C C语言言编写的程序十分写的程序十分简洁。例如:。例如:(1)C(1)C语言中关言中关键字字较少,只有少,只有3232个;个;(2)(2)运算符丰富,不运算符丰富,不仅数量多

11、,而且功能数量多,而且功能强,如:三目运算符,如:三目运算符(?:?:)具有具有条件条件语句的功能;又如:、等;句的功能;又如:、等;(3)(3)预处理功能,包含宏定理功能,包含宏定义和文件包含等,可以和文件包含等,可以简化程序化程序书写内容。写内容。4.C4.C语言的可移植性好言的可移植性好高高级语言的可移植性都比言的可移植性都比汇编语言好。在言好。在诸多的高多的高级语言中,言中,C C语言的言的移植性更移植性更为突出。突出。这是因是因为该语言言编译系系统较小,另外小,另外预处理功能理功能对移植也移植也带来一些方来一些方便,因此便,因此C C语言本身只需稍加修改便可用于各种型号的机器上,也可

12、以很方言本身只需稍加修改便可用于各种型号的机器上,也可以很方便地用于不同操作系便地用于不同操作系统中,中,这也是也是C C语言得到广泛言得到广泛应用的原因之一。用的原因之一。5.C5.C语言是程序言是程序员的的语言言C C语言的言的设计者者RitchieRitchie是是专业程序程序员,而,而C C最初是最初是为了他自己写了他自己写UNIXUNIX操作操作系系统而而设计的。的。C C语言言实现了程序了程序员的期望:很少限制,很少的期望:很少限制,很少强求,程序求,程序设计自由度大,方便的控制自由度大,方便的控制结构,独立的函数,构,独立的函数,紧凑的关凑的关键字集合和字集合和较高的高的执行效率

13、。用行效率。用C C编写程序可写程序可获得高效的机器代得高效的机器代码,其效率通常只比,其效率通常只比汇编语言生言生成的机器代成的机器代码低低10%10%20%20%,而同,而同时C C又具有又具有PASCALPASCAL那那样的的结构,构,这就就难怪有怪有大量的程序大量的程序员喜喜欢它。它。C C语言的言的语法限制不太法限制不太严,例如,例如,对数数组下下标越界不做越界不做检查,整型、字,整型、字符型数据可以通用,不符型数据可以通用,不专设逻辑型数据而以整型来代替等。型数据而以整型来代替等。较少的限少的限制制给程序程序员带来来较大自由,大自由,这就要求程序就要求程序员在在编程程时应确确实明白

14、自己在做什明白自己在做什么,而不要把么,而不要把检查错误的工作完全寄托于的工作完全寄托于编译程序。当然程序。当然这也可能会也可能会带来一来一些麻些麻烦,作,作为程序程序员应该考考虑好再开始好再开始编码,平,平时还要注意养成良好的要注意养成良好的编程程习惯。6.C6.C语言的缺点言的缺点上面介上面介绍了一些了一些C C语言言较为明明显的特点,当然的特点,当然C C语言也有一些不足需要言也有一些不足需要读者在逐者在逐渐深入的学深入的学习中不断体会,比如中不断体会,比如C C语言中指言中指针的使用,指的使用,指针可以直可以直接接访问内存地址但同内存地址但同时也也对系系统带来了安全性的来了安全性的隐患

15、。患。C C语言运算功能丰富,表达方式灵活多言运算功能丰富,表达方式灵活多样,有很大的自由度,有很大的自由度,语法限制法限制不太不太严格。比如格。比如“”运算符,但是运算符,但是对于初学者来于初学者来说,就很,就很难把握。把握。C C语言言中自左至右或自右至左运算中自左至右或自右至左运算顺序有序有时也令人也令人头疼。需要初学者在疼。需要初学者在细节的把握上的把握上认真真对比分析。建比分析。建议初学者不要把注意力放在初学者不要把注意力放在这些些细节上。第一步上。第一步先用最先用最简单的的C C语句句实现功能,第二步完善功能,使得代功能,第二步完善功能,使得代码实用,然后考用,然后考虑优化算法和程

16、序化算法和程序结构。构。另外,由于另外,由于C C语言是面向言是面向过程的程序程的程序设计语言,很多方面与言,很多方面与现代的程序代的程序设计思想和思想和软件工程思想相悖。比如:当前主流的程序件工程思想相悖。比如:当前主流的程序设计语言面向言面向对象的象的编程思想,程思想,软件工程中更件工程中更强调程序代程序代码的可的可读性和易理解性;性和易理解性;软件开件开发的效的效率首先率首先应该体体现在宏在宏观上整体上,即开上整体上,即开发效率,其次才是程序代效率,其次才是程序代码的的执行效行效率等。因此在本率等。因此在本书中,我中,我们会在会在C C语言原有的特色基言原有的特色基础上,突出上,突出现代

17、程序代程序设计思想指思想指导下的下的C C语言程序言程序设计。三、初学者三、初学者对于于C C语言的学言的学习方法方法C C语言的学言的学习目的是目的是进行程序行程序设计的基本的基本训练,不是要求立即写出大型,不是要求立即写出大型程序,也不能程序,也不能设想今后一想今后一辈子只使用学子只使用学过的某一种的某一种语言。因此,学言。因此,学习程序程序设计时,应该把主要精力放在最基本的、最常用的内容上,开始不必在一个把主要精力放在最基本的、最常用的内容上,开始不必在一个细节上死背死上死背死抠,可以先,可以先“照搬照抄、不求甚解照搬照抄、不求甚解”,多模仿,多,多模仿,多实践,在有一定践,在有一定的基

18、的基础后再深入到一些常后再深入到一些常见的的细节中去,有些中去,有些细节是需要通是需要通过较长时间才能才能掌握的。初学掌握的。初学时切忌切忌滥用用C C的某些容易引起的某些容易引起错误的的细节。学学习C C程序程序设计语言最言最终的目的目标是通是通过C C语言的学言的学习,培养程序,培养程序设计的的思想和理念,初步掌握思想和理念,初步掌握计算机的算机的“思思维”方式。方式。语言是表达思想的工具,程序言是表达思想的工具,程序语言就是表达程序言就是表达程序设计思想的最有效工具。思想的最有效工具。学学习程序程序设计还有很重要的一条就是程序有很重要的一条就是程序调试能力的培养,好的程序能力的培养,好的

19、程序员都是在排除程序代都是在排除程序代码错误的的过程中成程中成长起来的,起来的,见多才能多才能识广,广,经验的的积累,就是不断地犯累,就是不断地犯错误和改正和改正错误的的过程。程。1.21.2简单C C程序程序举例例这一一节我我们主要是通主要是通过几个几个简单的的C C语言程序来初步了解言程序来初步了解C C程序的有关程序的有关特性。特性。例例1.11.1最最简单的的C C程序程序#include#include voidmain()voidmain()printf(”printf(”您好!您好!n”)n”);这个程序的功能个程序的功能(运行运行结果果)是在屏幕的左上角是在屏幕的左上角输出出“

20、您好!您好!”。其中其中“#include”#include”,是,是预处理命令,在本程序中包含理命令,在本程序中包含标准准输入入输出的出的头文件;文件;mainmain表示表示“主函数主函数”,每个,每个C C程序都必程序都必须且只能有一个且只能有一个mainmain函数。函数。本程序中只有一个函数,函数体是由大括号括起来的部分。函数中只包含一本程序中只有一个函数,函数体是由大括号括起来的部分。函数中只包含一条条输出出语句,是通句,是通过调用用C C语言中的言中的输出函数出函数printfprintf来来实现输出的,此函数名出的,此函数名字后面字后面圆括号中的双引号内部的字符或字符串按照原括

21、号中的双引号内部的字符或字符串按照原样输出,但是出,但是“n”n”表表示的是示的是换行符,在屏幕上行符,在屏幕上输出的效果就是将屏幕上的光出的效果就是将屏幕上的光标从当前位置移到下从当前位置移到下一行开始位置,它在程序一行开始位置,它在程序输出的格式中出的格式中经常被用到。函数常被用到。函数调用的用的结束相当于束相当于一条一条语句也句也结束了,在每条束了,在每条语句后面要有一个分号,即使是函数体内最后一句后面要有一个分号,即使是函数体内最后一条条语句的后面也要有分号。句的后面也要有分号。例例1.21.2整数的关系比整数的关系比较#include#include voidmain()voidma

22、in()intainta,b;/b;/声明部分,定声明部分,定义变量量a a,b b都是整数都是整数 scanf(”%dscanf(”%d%d”%d”,&a&a,&b)&b);/输入入变量量a a,b b的的值/*/*以下部分是判断以下部分是判断变量量a a,b b之之间关系的几种情况关系的几种情况*/if(ab)if(ab)printf(”%d%d”printf(”%d%d”,a a,b)b);elseelseif(ab)if(ab)printf(”%d%d”printf(”%d%d”,a a,b)b);elseelseprintf(”%dprintf(”%d%d”%d”,a a,b)b);

23、本程序本程序实现的是判断任意两个整数的大小关系。的是判断任意两个整数的大小关系。“/”/”后面的后面的汉字部分是字部分是对程序程序语句的注句的注释,注,注释部分一般根据部分一般根据编程者的程者的习惯,可以加在程序中的任,可以加在程序中的任何位置,何位置,对编译和运行没有影响,目的是和运行没有影响,目的是为了使了使读程序的人更准确的理解程程序的人更准确的理解程序及序及语句的作用。第句的作用。第4 4行是行是变量声明部分,定量声明部分,定义了两个了两个变量量a a,b b,在,在C C语言言中中变量只有声明之后才可以使用,否量只有声明之后才可以使用,否则在程序在程序编译时将出将出现错误。第。第5

24、5行行scanfscanf是是“输入函数入函数”,作用是,作用是输入两个数并分入两个数并分别保留在保留在变量量a a和和b b中,但在中,但在使用使用scanfscanf函数函数时要注意格式,双引号里面的要注意格式,双引号里面的“%d”%d”是是输入入输出的出的“格式字格式字符串符串”,用来指定,用来指定输入入输出出时的数据的数据类型和格式,型和格式,“%d”%d”表示表示输入的整数是入的整数是“以以十十进制整数形式制整数形式输入入”,在程序,在程序执行行时,需要通,需要通过键盘输入两个十入两个十进制的整制的整数。数。&a&a和和&b&b中的中的“&”&”含含义是是“取地址取地址”,scanf

25、scanf函数函数实际上是将上是将输入的入的值送到送到a a和和b b的地址所的地址所标识的的单元中,也就是元中,也就是输入入给了了变量量a a和和b b。接下来是由条件。接下来是由条件语句句组成的成的对于于变量量a a,b b之之间关系的几种情况的判断和关系的几种情况的判断和处理。理。对于两个整数来于两个整数来说,大小关系只能有三种:大于、小于或者等于,可以按照,大小关系只能有三种:大于、小于或者等于,可以按照语句中的关句中的关键字字if if,elseifelseif,elseelse的英文含的英文含义来理解来理解语句所要完成的作用。句所要完成的作用。printfprintf完成的与例完成

26、的与例1.11.1的程序相同,目的是的程序相同,目的是为了明确地了明确地显示出两个示出两个变量的大小关系。量的大小关系。程序运行程序运行时,首先,首先应输入两个整数,例如在运行界面上入两个整数,例如在运行界面上输入入3598(3598(两数两数间需有一空格,然后需有一空格,然后输入回入回车)程序程序输出出结果果为:3598(3598(在屏幕上在屏幕上显示的示的a a与与b b大小的关系大小的关系)例例1.31.3子函数定子函数定义和和调用的例子用的例子#include#includeintproduct(intm)intproduct(intm);voidmain()voidmain()int

27、nintn,i i,sumsum0 0;scanf(”%d”scanf(”%d”,&n)&n);for(ifor(i 1 1;ii n n;i i)sumsum sumsum product(i)product(i);printf(”1printf(”1!2 2!.%d%d!%dn”%dn”,n n,sum)sum);intproduct(intm)intproduct(intm)intjintj,p p 1 1;for(jfor(j 1 1;jjy)/if(xy)/条件条件语句没句没结束,此句后不加分号束,此句后不加分号z z x;/x;/条件条件语句句结束后加分号束后加分号4.4.可以在可

28、以在“/”/”后后为语句加注句加注释,也可用,也可用/*/*/对语句句块作注作注释。适当且。适当且明确的注明确的注释可提高程序的可可提高程序的可读性。性。1.41.4C C程序的程序的编译和运行和运行学学习C C语言离不开言离不开编写和运行写和运行C C语言程序,在了解一些言程序,在了解一些C C语言的初步知言的初步知识以后,就以后,就应该上机上机练习编写和运行写和运行C C语言的程序,通言的程序,通过大量的上机大量的上机实践来加践来加深深对C C语言的言的认识和理解。和理解。C C语言程序是如何在言程序是如何在计算机上运行的呢?算机上运行的呢?C C程序在程序在计算机上运行是从源算机上运行是

29、从源程序的程序的编辑开始,再开始,再经过编译、连接等一系列工作接等一系列工作过程,最程,最终产生并运行可生并运行可执行文件得到运行行文件得到运行结果,整个果,整个过程如程如图1 12 2所示。所示。C C语言程序言程序实现可可归纳如下三个如下三个阶段:段:1.1.编辑编辑过程是把用程是把用C C语言写出源程序代言写出源程序代码录入到入到计算机中并保存。其方法算机中并保存。其方法有两种:一种是使用有两种:一种是使用编辑程序程序编写好写好C C语言源程序,并以言源程序,并以“.c”.c”为后后缀存入文存入文件系件系统;另一种是使用;另一种是使用C C语言言编译系系统提供的提供的编辑器来器来编写源程

30、序,并写源程序,并且存入文件系且存入文件系统。2.2.编译连接接编译连接是两个接是两个过程,有些程,有些编译系系统常将它常将它们连在一起,在一起,实际上是将上是将源程序先源程序先进行行编译,通,通过编译可可发现源程序中的源程序中的语法法错误,如有,如有错误,则系系统将其将其“错误信息信息”显示在屏幕上,用示在屏幕上,用户根据系根据系统提供的提供的错误信息提示,信息提示,对源源程序程序进行行编辑修改,修改后再重新修改,修改后再重新编译,直到,直到编译无无错为止。止。编译后生成机后生成机器指令程序被称器指令程序被称为目目标程序。此目程序。此目标程序名与相程序名与相应的源程序同名,其后的源程序同名,

31、其后缀为“.obj”.obj”的二的二进制文件。制文件。编译过程完成后,便开始程完成后,便开始连接接过程。所程。所谓连接是将目接是将目标程序与程序与库函数或其他程序函数或其他程序连接成接成为可可执行程序。一般可行程序。一般可执行程序名与源文行程序名与源文件名相同,后件名相同,后缀为“.exe”.exe”。这里,里,还需需补充一点,在充一点,在连接接过程中程中可能出可能出现错误,这时必必须根据根据“出出错信息信息”所指示的所指示的错误类型型进行修改后,行修改后,再再进行行连接直到不出接直到不出错为止,止,这样才会生成可才会生成可执行文件。行文件。3.3.调试运行运行程序可以程序可以执行只能行只能

32、说明明编写的代写的代码没有没有语法法错误以及以及链接接错误,但是,但是,是否可以运算出想要的是否可以运算出想要的结果,果,还要要进一步判断程序是否有一步判断程序是否有逻辑错误,这个个过程需要使用程需要使用调试方式运行,如果出方式运行,如果出现错误可以中断可以中断调试,修改程序,修改程序错误后,后,重新重新编译连接运行,直到程序接运行,直到程序调试运行完成。具体的运行完成。具体的调试方法后面章方法后面章节介介绍。图1 12 2运行运行C C程序的工作程序的工作过程程调试通通过后可以运行可后可以运行可执行文件,一般在屏幕上会行文件,一般在屏幕上会显示程序示程序输出的出的结果。果。运行运行C C语言

33、程序的言程序的环境很多,境很多,编译系系统也很多,不同也很多,不同环境的境的实现方法不方法不同,但都包含了上面描述的三个同,但都包含了上面描述的三个阶段工作。本段工作。本书中我中我们应用的是用的是VisualCVisualC6.06.0的的环境,具体的操作步境,具体的操作步骤可参考上机指可参考上机指导手册。手册。练习一一1.1.简要描述要描述C C语言的特点?言的特点?2.2.说明明C C语言中的注言中的注释的作用及注的作用及注释的两种方法。的两种方法。3.3.编写第一个写第一个C C语言程序,言程序,输出出“祖国,您好!祖国,您好!”。4.4.输出下面出下面图形。形。更多图书信息请见星图书业:计算机各级在线考试试题见前程在线考试网:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁