谭浩强第1章c语言版顶级讲义

上传人:hao****an 文档编号:245085466 上传时间:2024-10-07 格式:PPT 页数:49 大小:898KB
返回 下载 相关 举报
谭浩强第1章c语言版顶级讲义_第1页
第1页 / 共49页
谭浩强第1章c语言版顶级讲义_第2页
第2页 / 共49页
谭浩强第1章c语言版顶级讲义_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版副标题样式,C,程序设计,(,第二版,),新世纪计算机基础教育丛书丛书 主编 谭浩强,总 目 录,第,1,章,C,语言概述,第,2,章程序的灵魂,算法,第,3,章数据类型、运算符与表达式,第,4,章最简单的,C,程序设计,顺序程序设计,第,5,章选择结构程序设计,第,6,章循环控制,第,7,章数组,第,8,章函数,第,9,章预处理命令,第,10,章指针,第,11,章结构体与共用体,第,12,章位运算,第,13,章文件,第,14,章,C+,对,C,的扩充,第,15,章,C+,的面向对象基础,第,16,章常见错误和程序调试,第,1,章,C,语言概述,1.1 C,语言出现的历史背景,1.2 C,语言的特点,1.3,简单的,C,程序介绍,1.4 C,程序的上机步骤,1.5,习题,1.1 C,语言出现的历史背景,C,语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。,C,语言是在,B,语言的基础上发展起来的,它的根源可以追溯到,ALGOL 60,。,1960,年出现的,ALGOL 60,是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。,1963,年英国的剑桥大学推出了,CPL(combined programming language),语言。,CPL,语言在,ALGOL 60,的基础上接近硬件一些,但规模比较大,难以实现。,1967,年英国剑桥大学的,Matin Richards,对,CPL,语言做了简化,推出了,BCPL(basic combined programming language),语言。,1970,年美国贝尔实验室的,Ken Thompson,以,BCPL,语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的,B,语言,(,取,BCPL,的第一个字母,),,并用,B,语言写了第一个,UNIX,操作系统,在,PDP7,上实现。,1971,年在,PDP11/20,上实现了,B,语言,并写了,UNIX,操作系统。但,B,语言过于简单,功能有限。,1972,年至,1973,年间,贝尔实验室的,在,B,语言的基础上设计出了,C,语言,(,取,BCPL,的第二个字母,),。,C,语言既保持了,BCPL,和,B,语言的优点,(,精练,接近硬件,),,又克服了它们的缺点,(,过于简单,数据无类型等,),。最初的,C,语言只是为描述和实现,UNIX,操作系统提供一种工作语言而设计的。,1973,年,,K.Thompson,和两人合作把,UNIX,的,90%,以上用,C,改写,即,UNIX,第,5,版。原来的,UNIX,操作系统是,1969,年由美国的贝尔实验室的,K.Thompson,和开发成功的,是用汇编语言写的。,1972,年至,1973,年间,贝尔实验室的,在,B,语言的基础上设计出了,C,语言,(,取,BCPL,的第二个字母,),。,C,语言既保持了,BCPL,和,B,语言的优点,(,精练,接近硬件,),,又克服了它们的缺点,(,过于简单,数据无类型等,),。最初的,C,语言只是为描述和实现,UNIX,操作系统提供一种工作语言而设计的。,1973,年,,K.Thompson,和两人合作把,UNIX,的,90%,以上用,C,改写,即,UNIX,第,5,版。原来的,UNIX,操作系统是,1969,年由美国的贝尔实验室的,K.Thompson,和开发成功的,是用汇编语言写的。,后来,,C,语言多次做了改进,但主要还是在贝尔实验室内部使用。直到,1975,年,UNIX,第,6,版公布后,,C,语言的突出优点才引起人们的普遍注意。,1977,年出现了不依赖于具体机器的,C,语言编译文本,可移植,C,语言编译程序,,使,C,移植到其他机器时所需做的工作大大简化了,这也推动了,UNIX,操作系统迅速地在各种机器上实现。例如,VAX,、,AT&T,等计算机系统都相继开发了,UNIX,。随着,UNIX,的日益广泛使用,,C,语言也迅速得到推广。,C,语言和,UNIX,可以说是一对孪生兄弟,在发展过程中相辅相成。,1978,年以后,,C,语言已先后移植到大、中、小、微型机上,已独立于,UNIX,和,PDP,了。现在,C,语言已风靡全世界,成为世界上,应用最广泛的几种计算机语言之一。以,1978,年发表的,UNIX,第,7,版中的,C,编译程序为基础,,Brian W.Kernighan,和,Dennis M.Ritchie(,合称,K&R),合著了影响深远的名著,The C Programming Language,,这本书中介绍的,C,语言成为后来广泛使用的,C,语言版本的基础,它被称为标准,C,。,1983,年,美国国家标准化协会,(ANSI),根据,C,语言问世以来各种版本对,C,的发展和扩充,制定了新的标准,称为,ANSI C,。,ANSI C,比原来的标准,C,有了很大的发展。,K&R,在,1988,年修改了他们的经典著作,The C Programming Language,,按照,ANSI C,标准重新写了该书。,1987,年,,ANSI,又公布了新标准,87 ANSIC,。,1990,年,国际标准化组织,ISO(International Standard Organization),接受,87 ANSI C,为,ISO C,的标准,(ISO 98991990),。目前流行的,C,编译系统都是以它为基础的。本书的叙述基本上以,ANSI C,为基础。目前广泛流行的各种版本,C,语言编译系统虽然基本部分是相同的,但也有一些不同。在微型机上使用的有,Microsoft C,、,Turbo C,、,Quick C,、,BORLAND C,等,它们的不同版本又略有差异。因此,读者应了解所用的计算机系统所配置的,C,编译系统的特点和规定,(,可以参阅有关手册,),。,1.2 C,语言的特点,一种语言之所以能存在和发展,并具有生命力,总是有其不同于,(,或优于,),其他语言的特点。,C,语言的主要特点如下。,(1),语言简洁、紧凑,使用方便、灵活。,C,语言一共只有,32,个关键字,,9,种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。下面将,C,与,PASCAL,语言做一比较。,(2),运算符丰富。,C,的运算符包含的范围很广泛,共有,34,种运算符。,C,把括号、赋值、强制类型转换等都作为运算符处理,从而使,C,的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。,(3),数据结构丰富,具有现代化语言的各种数据结构。,C,的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构,(,如链表、树、栈等,),的运算。尤其是指针类型数据,使用起来比,PASCAL,更为灵活、多样。,(4),具有结构化的控制语句,(,如,ifelse,语句、,while,语句、,dowhile,语句、,switch,语句、,for,语句,),。用函数作为程序的模块单位,便于实现程序的模块化。,C,是良好的结构化语言,符合现代编程风格的要求。,(5),语法限制不太严格,程序设计自由度大。例如对数组下标越界不做检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型数据与字符型数据可以通用。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误。而,C,语言允许程序编写者有较大的自由度,因此,放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖,C,编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性,;,而强调灵活,就必然放松限制。一个不熟练的编程人员,编一个正确的,C,程序可能会比编一个其他高级语言程序难一些。也就是说,对用,C,语言的人,要求对程序设计更熟练一些。,(6)C,语言能进行位,(bit),操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C,既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。,C,语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。,有人把,C,称为“高级语言中的低级语言”或“中级语言”,意为兼有高级和低级语言的特点。按此观点可将各语言分类如下:,高级,:BASIC,FORTRAN,COBOL,PASCAL,Ada,Modula-2,;,中级,:C,FORTH,宏汇编;,低级,:,汇编语言,一般仍习惯将,C,语言称为高级语言,因为,C,程序也要通过编译、连接才能得到可执行的目标程序,这是和其他高级语言相同的。,C,的以上特点,读者现在也许还不能深刻理解,待学完,C,以后再回顾一下,就会有比较深的体会。我们从应用的角度出发对,C,语言和其他传统的高级语言作一简单比较。,从掌握语言的难易程度来看,,C,语言比其他语言难一些。,BASIC,是初学者入门的较好的语言,,FORTRAN,也比较好掌握。对科学计算多用,FORTRAN,或,PL/;,对商业和管理等数据处理领域,用,COBOL,为宜。,C,语言虽然也可用于科学计算和管理领域,但并不理想,,C,的特长不在这里。对操作系统和系统实用程序以及需要对硬件进行操作的场合,用,C,语言明显地优越于其他高级语言,有的大型应用软件也用,C,语言编写。从教学角度,由于,PASCAL,是世界上第一个结构化语言,而曾被认为是计算机专业的比较理想的教学语言。目前在数据结构等课程中一般用,PASCAL,语言举例。但,PASCAL,语言难以推广到各实际应用领域,,到目前为止基本上只是教学语言。,C,语言也是理想的结构化语言,且描述能力强,同样适于教学。操作系统课程多结合,UNIX,讲解,而,UNIX,与,C,不可分,因此,,C,语言已经成为被广泛使用的教学语言。,C,除了能用于教学外,还有广泛的应用领域,因此更有生命力。,PASCAL,和其他高级语言的设计目标是通过严格的语法定义和检查来保证程序的正确性,而,C,则是强调灵活性,使程序设计人员能有较大的自由度,以适应宽广的应用面。总之,,C,语言对程序员要求较高。程序员使用,C,语言编写程序会感到限制少,灵活性大,功能强,可以编写出任何类型的程序。现在,,C,语言已不仅用来编写系统软件,也用来编写应用软件。学习和使用,C,的人已越来越多。,1.3,简单的,C,程序介绍,下面先介绍几个简单的,C,程序,然后从中分析,C,程序的特性。例,1.1,main(),printf(This is a C program.n);,本程序的作用是输出以下一行信息,:,This is a c program.,其中,main,表示“主函数”。每一个,C,程序都必须有一个,main,函数。函数体由大括弧,括起来。本例中主函数内只有一个输出语句,,printf,是,C,语言中的输出函数,(,详见第,4,章,),。双引号(双括号)内的字符串原样输出。“,n”,是换行符,即在输出“,This is a c program.”,后回车换行。语句最后有一分号。,例,1.2,main()/*,求两数之和*,/,int a,,,b,,,sum;/*,这是定义变量*,/,a=123;b=456;/*,以下,3,行为,C,语句*,/,sum=a+b;,printf(sum is%d/n,,,sum);,本程序的作用是求两个整数,a,和,b,之和,sum,。,/*/,表示注释部分,为便于理解,我们用汉字表示注释,当然也可以用英语或汉字拼音作注释。注释只是给人看的,对编译和运行不起作用。注释可以加在程序中任何位置。第,2,行是声明部分,定义变量,a,和,b,,指定,a,和,b,为整型,(int),变量。第,3,行是两个赋值语句,使,a,和,b,的值分别为,123,和,456,。第,4,行使,sum,的值为,a+b,,第,5,行中“,%d”,是输入输出的“格式字符串”,用来指定输入输出
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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