1 / 16

第一章 C语言概述

第一章 C语言概述. 1.1 C语言出现的历史背景 l C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既用来写系统软件,也可用来写应用软件。 l C语言是第三代语言(面向过程的高级语言,第一代:机器语言;第二代:汇编语言). 机器语言. 汇编语言. 高级语言. 特点:二进制表示、面向机器、直接运行。. 特点:符号化的机器语言、面向机器、翻译后运行。. 特点:类自然语言、面向问题、翻译后运行。. 2+3. 0101 0010 0011. 2+3. ADD 2,3. 高级语言程序. 翻译系统. 二进制机器语言.

oralee
Download Presentation

第一章 C语言概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一章C语言概述 • 1.1 C语言出现的历史背景 • l C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既用来写系统软件,也可用来写应用软件。 • lC语言是第三代语言(面向过程的高级语言,第一代:机器语言;第二代:汇编语言) 机器语言 汇编语言 高级语言 特点:二进制表示、面向机器、直接运行。 特点:符号化的机器语言、面向机器、翻译后运行。 特点:类自然语言、面向问题、翻译后运行。 2+3 010100100011 2+3 ADD 2,3 高级语言程序 翻译系统 二进制机器语言 编译或解释程序。

  2. 1.1 C语言出现的历史背景 • 以前的操作系统等系统软件主要是由汇编语言编写的(包括UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如,对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。 • C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。1960年出现的ALGOL60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(Combined Programming Language)语言,CPL语言在ALGOL60的基础上接近硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对CPL语言作了简化,推出了BCPL (Basic Combined Programming Language)语言。

  3. 1.1 C语言出现的历史背景 • 后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版公布后,C语言的突出优点才引起人们普遍注意。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所需做的工作大大简化了,这也推动了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语言问世以来各种版

  4. 1.1 C语言出现的历史背景 • 本对C的发展和扩充,制定了新的标准,称为ANSI C。ANSI C比原来的标准C有了很大的发展。K&R在1988年修改了他们的经典著作《The C Programming Language》,按照ANSI C标准重新写了该书。1987年,ANSI又公布了新标准一87 ANSI C.目前流行的C编译系统都是以它为基础的。本书的叙述基本上以87 ANSI C为基础。目前广泛流行的各种版本C语言编译系统虽然基本部分是相同的,但也有一些不同。在微型机上使用的有Microsoft C ,Turbo C, Quick C等,它们的不同版本又略有差异。 • Java,C++等面向对象语言(第四代语言)是在C语言基础上发展起来的。

  5. 1.2 C语言的特点 C语言的特点: ⑴C语言具有完善的功能和非常高的效率。 ⑵C语言可以对硬件操作,是介于汇编语言和高级语言之间的一种语言。 ⑶C语言是结构化的程序设计语言。 ⑷C语言具有丰富的数据类型和运算类型。 ⑸C 语言具有良好的移植性。 ⑹C语言书写灵活,表达简洁。

  6. 1.2 C语言的特点 下面对于它的一些特点进行说明: 语法限制不大严格,程序设计自由度大 C语言允许程序编写者有较大的自由度,因此放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖C编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性;而强调灵活,就必然放松限制。一个不熟练的人员,编一个正确的C程序可能会比编一个其它高级语言程序难一些。也就是说,对用C语言的人,要求对程序设计更熟练一些。

  7. 1.2 C语言的特点 C语言允许直接访问物理地址 能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。有人把C称为“高级语言中的低级语言”,也有人称它为“中级语言”因为兼有高级和低级语言的特点。 生成目标代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10~20%。

  8. 1.3 简单的C程序介绍 C语言的基本程序结构: 实例:输入两个数及其运算关系,输出运算结果。 # include <stdio.h> void main(void) /*test1.c*/ { char ch; int a, b; int c; scanf(“%d %c %d”,&a,&ch,&b); c=fun(a,ch,b); printf(“a%cb=%d”,ch,c); } int fun(int x,char op,int y) { int z; switch(op) { case ‘+’: z=x+y; break; case ‘-‘ : z=x-y; break; case ‘*’: z=x*y; break; case ‘/’ : z=x/y; break; } return z; } 主函数 子函数 实例运行 ⒈程序是由函数组成的,函数是由语句组成的。其中主函数有且唯一,主函数名为main。子函数可有可无也可以有多个。 ⒉C语言的系统构词必须用小写,用户构词可以大小写混用。 ⒊C语言的语句用;作为结束,因此一句可以用一行或几行书 写,但不能割裂构词。 ⒋各词之间用一个或几个space分隔。

  9. 1.3 简单的C程序介绍 例: main () /*test2.c */ { printf ("This is a C program \n"); } 实例运行 main表示“主函数”,每一个C程序都必须有一个main函数。 函数体由大括弧{ }括起 只有一个输出语句,printf是C语言中的输出函数; “\n”是换行符.

  10. 1.3 简单的C程序介绍 例:求两个数之和 main () /* test3.c */ { int a, b, sum; a=123;b=456; sum=a+b; printf("Sum of a plus b is %d\n",sum); } 实例运行

  11. 1.3 简单的C程序介绍 例: 求两个数中较大者 main() /* test4.c */ { int a,b,c; /*定义变量*/ printf("Input a,b:"); scanf("%d,%d",&a,&b); /*输入变量a和b的值*/ c=max(a,b); /*调用max函数,将得到的值赋给c */ printf("Max of a and b is %d\n",c); /*输出c的值*/ } int max(x,y)/*定义max函数,x,y为形式参数*/ int x,y; /* 对形参x,y 作类型定义 */ {int z; /* max函数中用到的变量z,也要加以定义 */ if(x>y) z=x; else z=y; return (z); } /* 将z的值返回,通过max带回调用处 */ 实例运行

  12. 1.3 简单的C程序介绍 • 小结: • C程序是由函数构成的。一个C源程序至少包含一个函数(main函数)。C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说C是函数式的语言。程序全部工作都是由函数来完成的。C的函数库十分丰富, 标准C提供一百多个库函数,TurboC和MS C4.0提供三百多个库函数。 C的这种特点使得容易实现程序的模块化。 • 一个函数由两部分组成: • (1)函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。 • 例: 前面例题中的max函数的说明部分为。 • int max ( int x, inty) • 函数类型函数名 函数参数类型函数参数名

  13. 1.3 简单的C程序介绍 • (2)函数体,即函数说明部分下面的大括弧{…}内的部分。如果一个函数内有多个大括弧,则最外层的一对{ }为函数体的范围。 • 函数体一般包括: • ①变量定义。 • ②执行部分。由若干个语句组成。 • 当然,在某些情况下也可以没有变量定义部分。甚至可以既无变量定义也无执行部分。如: • dump() { } • 它是一个空函数,什么也下干,但这是合法的。 • 一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。

  14. 1.3 简单的C程序介绍 • C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,C程序没有行号. • 每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。 例如: • c=a十b; • C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成.C对输入输出实行“函数化” • 可以用/*……*/对C程序中的任何部分作注释,一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。

  15. 1.4 C程序的上机步骤(实验教程P181) • 用TurboC运行C程序的步骤: • 调用Turbo C程序,进入Turbo C的集成开发环境; • 改变用户的工作目录(文件所在目录) • File->Change Dir • 确立TC的工作环境 • Option->Directions 注意:要将所做的修改保存到tcconfig.tc。(option->save option) • 编辑源文件。根据需要输入或修改源程序。 如: File.c(文件名大小等效) • 编译源程序。 • 执行程序。

  16. 例:求某数的绝对值。 void main() {int a,b; printf ("input a number"); scanf("%d",&a); if (a<0) b=-a; else b=a; printf ("|a|=%d\n",b); }

More Related