资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C程序设计,第1讲 C 语言概述,提 纲,编程语言分类 C 语言简介 程序设计的基本概念 简单 C 程序介绍 程序设计的基本流程 小结,开篇:编程语言的分类,编程语言经历了漫长的发展道路,下面就编程语言的分类和发展作一简要介绍。,按发展历程分类,机器语言:计算机直接识别的语言,这种语言使用代码。 汇编语言:属于低级语言,使用助记符号代替。汇编语言需要编译后机器才能识别。效率高,难记。 高级语言:采用命令或者语句的语言。例如C,C+,Java,Pascal,Basic等。,按执行方式分类,编译执行语言编译执行是在编写完程序以后,通过特定的工具软件将源程序转换成可执行程序,直接交由操作系统执行,即程序作为一个整体执行。例如C,C+语言。 解释执行语言解释执行是程序读入一句执行一句,而不需要整体编译链接。例如Java,Basic语言。,按软件设计方法分类,面向过程的程序设计语言面向过程的程序设计语言注重数据结构和算法,研究采用什么样的数据结构描述问题,采用什么样的算法来高效解决问题。例如Basic,Fortran,Pascal,C 等。 面向对象的程序设计语言面向对象以一种更接近人类一般思维的方式去看待世界,将世界上的任何一个个体看作一个对象。提高程序的重用性。例如Java,Smalltalk,C+等。,1.1 C语言出现的历史背景,C语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。,1.1 C语言出现的历史背景,C 语言简史 Ritchie & Kernighan(Bell Labs.) 从 B 语言脱胎而来 为开发 UNIX 而设计,1.1 C语言出现的历史背景,C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。 1963年英国的剑桥大学推出了CPL (combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现。,1.1 C语言出现的历史背景,1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言。1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言 (取BCPL的第一个字母), 并用B语言写了第一个UNIX操作系统,在PDP7上实现。1971年在PDP11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,功能有限。,1.1 C语言出现的历史背景,最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken.Thompson和Dennis M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。 注1:原来的UNIX 操作系统是1969年由美国的贝尔实验室的Ken.Thompson和Dennis M.Ritchie开发成功的,是用汇编语言写的。 注2: Ken.Thompson 和Dennis M.Ritchie因为其在unix操作系统方面的贡献而在1983年获得图灵奖。,1.1 C语言出现的历史背景,1972年至1973年间,贝尔实验室的Dennis M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。,1.1 C语言出现的历史背景,后来,C语言多次做了改进,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。1977年出现了不依赖于具体机器的C语言编译文本可移植C语言编译程序,使C移植到其他机器时所需做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。例如VAX、 AT&T等计算机系统都相继开发了UNIX。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一。,1.1 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。,1.1 C语言出现的历史背景,1990年,国际标准化组织ISO(International Standard Organization) 接受87 ANSI C为ISO C 的标准(ISO 98991990)。目前流行的C编译系统都是以它为基础的。目前广泛流行的各种版本C语言编译系统虽然基本部分是相同的,但也有一些不同。在微型机上使用的有Microsoft C、 Turbo C、 Quick C、BORLAND C等,它们的不同版本又略有差异。,1.1 C语言出现的历史背景,C 语言简史 Ritchie & Kernighan(Bell Labs.) 从 B 语言脱胎而来 为开发 UNIX 而设计,1.2 C语言的特点,一种语言之所以能存在和发展,并具有生命力,总是有其不同于(或优于)其他语言的特点。C语言的主要特点如下。,1.2 C 语言特点,中级语言:介于高级语言与低级语言之间 高级语言的结构化与模块化 低级语言的控制性与灵活性 结构化 顺序结构、分支结构、循环结构 模块化 函数、函数库 可移植性,1.2 C语言的特点,(1) 语言简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。下面将C与PASCAL语言做一比较。(2) 运算符丰富。C的运算符包含的范围很广泛,共有34种运算符。C把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。,1.2 C语言的特点,(3) 数据结构丰富,具有现代化语言的各种数据结构。C的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。尤其是指针类型数据,使用起来比PASCAL更为灵活、多样。(4) 具有结构化的控制语句(如ifelse语句、while语句、dowhile语句、switch语句、for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C是良好的结构化语言, 符合现代编程风格的要求。,1.2 C语言的特点,(5) 语法限制不太严格,程序设计自由度大。例如对数组下标越界不做检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型数据与字符型数据可以通用。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度,因此,放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖C编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性;而强调灵活,就必然放松限制。一个不熟练的编程人员,编一个正确的C程序可能会比编一个其他高级语言程序难一些。也就是说,对用C语言的人,要求对程序设计更熟练一些。,1.2 C语言的特点,(6) C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。,1.3程序设计的基本概念,1.3 程序设计的基本概念,程 序 一系列遵循一定规则并能正确完成特定功能的代码或指令序列 通常包括数据结构与算法两部分 程序设计与程序设计语言 程序设计:按照任务需要,设计数据结构与算法,编写代码并测试其正确性,得到正确运行结果的过程 程序设计方法学:程序设计应遵循一定的方法与原则,养成良好的编程风格 程序设计语言:编写程序代码的规范,具有特定的语法规则、意义与使用环境,1.3 程序设计的基本概念,算 法 问题的求解方法与步骤 不允许存在二义性 算法设计过程是逐步求精的 常使用流程图描述算法 数据与数据结构 数据:程序操作的对象 数据结构:数据对象之间的相互关系及构造方法 与算法关系密切,良好的数据结构可使算法更简单,恰当的算法可使数据结构更易理解,1.4 简单的C程序介绍,下面先介绍几个简单的C程序,然后从中分析C程序的特性。,1.4 简单的C程序介绍,例1.1 编写程序,显示字符串 “Hello World!“,#include int main() printf( “Hello World!n“ );return 0; ,主函数的函数头,全局惟一,预编译指令,包含标准头文件,函数体,花括号内为语句序列,标准库函数,在输出设备(一般为屏幕)上输出一行文本 函数调用,需要了解该函数原型,即函数如何使用的细节信息;printf 函数原型位于“stdio.h“中,故需包含该头文件 双引号内为字符串内容;n为转义字符,表示换行 分号表示语句结束,函数结束执行,程序退出,1.4 简单的C程序介绍,例 1.2 main ( )/*求两数之和*/ int a,b,sum; /*这是定义变量*/a=123; b=456; /* 以下3行为C语句 */sum=a+b;printf (“sum is %d/n“, sum);,1.4 简单的C程序介绍,例1.3 main ( )/* 主函数*/ int a, b, c; /*声明部分,定义变量*/scanf (“%d,%d”, /*输出c的值*/ ,1.4 简单的C程序介绍,int max(int x,int y) /* 定义max函数,函数值为整型, 形式参数x,y为整型*/ int z; /* max函数中的声明部分,定义本函数中用到的变量z为整型*/if (xy) z=x;else z=y;return (z); /*将z的值返回,通过max带回调用处*/ ,1.4 简单的C程序介绍,通过以上几个例子,可以看到: (1) C程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。被调用的函数可以是系统提供的库函数(例如printf和scanf函数),也可以是用户根据需要自己编制设计的函数(例如,例1.3中的max函数)。C的函数相当于其他语言中的子程序,用函数来实现特定的功能。程序中的全部工作都是由各个函数分别完成的。编写C程序就是编写一个个函数。C的函数库十分丰富,ANSI C建议的标准库函数中包括100多个函数,Turbo C和MS C 4.0提供300多个库函数。C的这种特点使得容易实现程序的模块化。,1.3 简单的C程序介绍,(2) 一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。 (3) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。C程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号