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