第一章C语言概迷 §1.1C语言的历史背景 §1.2C语言的特点 §1.3单的C程序 §1.4上机步骤
第一章 C语言概述 §1.1 C语言的历史背景 §1.2 C语言的特点 §1.3 简单的C程序 §1.4 上机步骤
§1.1C语言的历史背景 C出现前的背景 在50年代末期,开始陆续出现多种高级语言。 1957年IBM公司研制的 FORTRAN I; 1958年美国麻省理工学院推出LISP语言; 后来, COBOL语言、 ALGOL语言、 BASIC语言 PASCAL语言等相继问世。 60年代初,随着计算机的发展,人们为了合理方便 的使用计算机系统,便研制了管理计算机资源的特殊软 件—操作系统。 但当时的操作系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内)
§1.1 C语言的历史背景 1、C 出现前的背景 在50年代末期,开始陆续出现多种高级语言。 1957年 IBM公司研制的FORTRAN Ⅰ; 1958年 美国麻省理工学院推出LISP语言; 后来,COBOL语言、ALGOL语言、BASIC语言、 PASCAL语言等相继问世。 60年代初,随着计算机的发展,人们为了合理方便 的使用计算机系统,便研制了管理计算机资源的特殊软 件——操作系统。 但当时的操作系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内)
由于汇编语言依赖于计算机硬件。程序的可读 性和可移植性都非常差。因此在为各种不同类 型的计算机系统开发操作系统时,人们不得不 进行大量的重复劳动。故而,人们希望用与具 体计算机系统无关的高级语言来书写操作系统。 但是,当时现有的高级语言离硬件比较远,缺 乏描述硬件的能力,难以实现汇编语言的某些 功能(如:对内存地址的操作,按位操作等)。 因此,设计一种在最大程度上与具体计算机系 统无关的、既具有一般高级语言特性、又具有 低级语言特性的语言,是当时计算机发展的需 要。C语言就是在这种情况下产生的
由于汇编语言依赖于计算机硬件。程序的可读 性和可移植性都非常差。因此在为各种不同类 型的计算机系统开发操作系统时,人们不得不 进行大量的重复劳动。故而,人们希望用与具 体计算机系统无关的高级语言来书写操作系统。 但是,当时现有的高级语言离硬件比较远,缺 乏描述硬件的能力,难以实现汇编语言的某些 功能(如:对内存地址的操作,按位操作等)。 因此,设计一种在最大程度上与具体计算机系 统无关的、既具有一般高级语言特性、又具有 低级语言特性的语言,是当时计算机发展的需 要。C语言就是在这种情况下产生的
2、c的历史 ●发展简史: ALGOL60(1960)(离硬件较远) °CPL(19653)(剑桥大学) BCPL(1967)(剑桥大学) B(1970)(贝尔实验室、很接近硬件、但功能有限) C(1972)(贝尔实验室、用C语言写UNIX操作系统) 最初的C语言只是为描述和实现UNIX操作系统提供一种 工作语言而设计的。 1977年,出现了不依赖于具体机器的C语言编译 文本《可移植C语言编译程序》。 C语言是一种计算机高级语言。 C语言既可用来编写系统软件,也可编写应用软件。 C语言具有一般高级语言的特性,又具有低级语言 的特性,集两者的优点于一身
2、c的历史 发展简史: ALGOL60(1960)(离硬件较远) CPL(1963)(剑桥大学) BCPL(1967)(剑桥大学) B(1970)(贝尔实验室、很接近硬件、但功能有限) C(1972)(贝尔实验室、用C语言写UNIX操作系统) 最初的C语言只是为描述和实现UNIX操作系统提供一种 工作语言而设计的。 1977年,出现了不依赖于具体机器的C语言编译 文本《可移植C语言编译程序》。 C语言是一种计算机高级语言。 C语言既可用来编写系统软件,也可编写应用软件。 C语言具有一般高级语言的特性,又具有低级语言 的特性,集两者的优点于一身
§1.2C语言的特点 、c的特点: 语言简洁,使用方便、灵活。 2、运算符丰富。 3、数据结构丰富。 4、结构化程序设计思想,符合现代编程风格 5、语法限制不严格,程序设计自由度大 6、C语言允许直接“访问”硬件物理地址 能进行位操作,实现汇编语言的大部分功能。 (因此,C语言常被称为“中级语言”。)
§1.2 C语言的特点 一 、c的特点: 1、语言简洁,使用方便、灵活。 2、运算符丰富。 3、数据结构丰富。 4、结构化程序设计思想,符合现代编程风格。 5、语法限制不严格,程序设计自由度大. 6、 C语言允许直接“访问”硬件物理地址, 能进行位操作,实现汇编语言的大部分功能。 (因此,C语言常被称为“中级语言” 。)
7、生成目标代码质量高,程序执行效率高 仅比汇编程序生成的目标代码执行效率低 10~20%。 8、可移植性好。基本不作修改就可以在不同 型号计算机、不同操作系统上执行。 C通用 BASC初学者易入门 FORTRAN科学计算 COBOL商业管理数据处理 PASCAL教学语言
7、生成目标代码质量高,程序执行效率高, 仅比汇编程序生成的目标代码执行效率低 10~20%。 8、可移植性好。基本不作修改就可以在不同 型号计算机、不同操作系统上执行。 C 通用 BASIC 初学者易入门 FORTRAN 科学计算 COBOL 商业管理数据处理 PASCAL 教学语言
二、c的优点 1)、高效 2)、可移植 3)、灵活 4)、有描述硬件的能力 例如:大部分实用的、便于移植的UNⅨ操作系统 用c语言写的,在UNI系统中,c语言之外的其它语言, 如 FORTRON、APL、 PASCAL、LISP、IOGO、 BASIC的编译程序或解释程序用C写成的。 C将成为当今最重要的语言之一
二、c的优点 1)、高效 2)、可移植 3)、灵活 4)、有描述硬件的能力 例如:大部分实用的、便于移植的UNIX操作系统 用c语言写的,在UNIX系统中,c语言之外的其它语言, 如FORTRON、APL、PASCAL、LISP、LOGO、 BASIC的编译程序或解释程序用C写成的。 C将成为当今最重要的语言之一
§1.3单的C程序 「例111 main() printf( This is a c program. n"); 该程序的作用:在屏幕上输出一行信息: This is a C program. 1、main()表示“主函数”,每一个C程序都必须有 且只有一个主函数 2、main函数体由大括号{}括起来。 3、每个语句后面有一个分号 4、 printf()是C语言的输出函数。双引号内的字符 被原样输出。 5、“n”是换行符
§1.3 简单的C程序 [例1.1] main( ) { printf("This is a C program.\n"); } 该程序的作用:在屏幕上输出一行信息: This is a C program. 1、main( ) 表示“主函数”,每一个C程序都必须有 且只有一个主函数 2、main函数体由大括号{ }括起来。 3、每个语句后面有一个分号。 4、printf( )是C语言的输出函数。双引号内的字符 被原样输出。 5、 “\n”是换行符
例12求两数之和。 ●man int a, b sum; /*定义三个整型变量。(int= integer)。* a=123;b=456;把常数123赋给变量a。把常数456赋给变量b sum=a + be /*计算a、b之和,并把和值赋变量给sum*/ ● printf“ Sum is%dn”,sum);/输出sum的值 程序的输出信息为: Sum is579 /中间的内容表示“注释”。注释是程序员对程序某部分的功能和作 用所做的说明,是给人看的,对编译和运行不起作用。 %d表示整型格式,在输出时,该位置用对应变量sum的值代替
[例1.2]求两数之和。 main( ) { int a, b, sum; /*定义三个整型变量。(int = integer)。*/ a = 123;b = 456; /*把常数123赋给变量a。把常数456赋给变量b*/ sum = a + b; /*计算a、b之和,并把和值赋变量给sum*/ printf(“Sum is %d\n”, sum);/*输出sum的值*/ } 程序的输出信息为: Sum is 579 /* */中间的内容表示“注释”。注释是程序员对程序某部分的功能和作 用所做的说明,是给人看的,对编译和运行不起作用。 %d表示整型格式,在输出时,该位置用对应变量sum的值代替
●[例1,3求两数之中最大值。 main( Rint a, b, cs 主函数 scanf(“d,%d”,ca,&b); c=max(a, b) 函数调用 printi(“max=%d”,c); 函数 int max(int x, int y) 首部 f int 说明部分 if(X>y)FX 函数体 else zy 执行 return(z 部分
main( ) {int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%d”,c); } 主 函 数 int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } [例1.3]求两数之中最大值。 说 明部 分 执 行 部 分 函 数 体 函数 首部 函数调用