C程序设计课件.ppt_第1页
C程序设计课件.ppt_第2页
C程序设计课件.ppt_第3页
C程序设计课件.ppt_第4页
C程序设计课件.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计课件,谭浩强 著 清华大学出版社,第一章 C语言概述,教学内容: C语言出现的历史背景 C语言的特点 简单的C程序介绍 C程序的上机步骤,第一章 语言概述,1.1语言出现的历史背景 语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既用来写系统软件,也可用来写应用软件。 语言是第三代语言(面向过程的高级语言,第一代:机器语言;第二代:汇编语言) 以前的操作系统等系统软件主要是由汇编语言编写的(包括操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功

2、能(汇编语言可以直接对硬件进行操作,例如,对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,语言就在这种情况下应运而生了。,l 1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP-7上实现.1971年在PDP-11/20上实现了B语言,井写了Unix操作系统。但B语言过于简单,功能有限。1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了

3、语言(取BCPL的第二个字母)。语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等。最初的语言只是为描述和实现Unix操作系统提供一种工作语言而设计的,1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写(即UNIX第5版,原来的Unix操作系统是1969年由美国的贝尔实验室的K. Thompson和D.M.Ritchie开发成功的,是用汇编语言写的)。,1.2C语言的特点 一种语言之所以能存在和发展,并具有生命力,总是有其不同于(或优于)其它语言的特点。C语言的主要特点如下。 语言简洁、紧凑,使用方便、灵

4、活。 C语言一共只有32个关键字(见附录II),9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分: C语言 Pascal语言 含 义 BEGINEND 复合语句 if (e) S; IF (e) THFN S 条件语句 int i, VAR i : INTEGER 定义i为整型变量 int a10; VAR a : ARRAY1.。10 of INTEGER 定义a为整型一维数组 int( ); FUNCTION f( ) : INTEGER 定义f为返回整型值的函数 int *p; VAR P:INTEGER 定义P为指向整型变量的指针变量 =2; i=i+2 赋值

5、语句,使i i+,+i i=i+1 i自增值,i+1i 比较PASCAL可以看到:C程序比Pascal简练,源程序短,输入程序时工作量少。,运算符丰富 的运算符包含的范围很广泛,共有种运算符(见附录III)。把括号、赋值、强制类型转换等都作为运算符处理。从而使的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据结构丰富,具有现代化语言的各种数据结构 的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。尤其是指针类型数据,使用起来比Pascal更为灵活、多样。 具

6、有结构化的控制语句(如if.else语句、whi1e语句、dowhi1e语句、for语句)。 用函数作为程序模块以实现程序的模块化。是结构化的理想语言,符合现代编程风格要求。,.语法限制不大严格,程序设计自由度大. 例如,对数组下标越界不作检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如,整型量与字符型数据以及逻辑型数据可以通用,一般的高级语言语法检查比较严,能检查出几乎所有的语法错误。而语言允许程序编写者有较大的自由度,因此放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性;而强调灵活,就

7、必然放松限制。一个不熟练的人员,编一个正确的程序可能会比编一个其它高级语言程序难一些。也就是说,对用语言的人,要求对程序设计更熟练一些。 语言允许直接访问物理地址 能进行位()操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。有人把称为“高级语言中的低级语言”,也有人称它为“中级语言”意为兼有高级和低级语言的特点。,生成目标代码质量高,程序执行效率高。 一般只比汇编程序生成的目标代码效率低。 用语言写的程序可移植性好(与汇编语言比)。 基本上不作修

8、改就能用于各种型号的计算机和各种操作系统。 上面我们只介绍了语言的最容易理解的一般特点,至于语言内部的其它特点将结合以后各章的内容作介绍。由于语言的这些优点,使语言应用面很广。许多大的软件都用编写,这主要是由于的可移植性好和硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题现在可以改用语言来处理了。,1.3 简单的程序介绍 下面先介绍几个简单的程序,然后从中分析程序的特性。 例1.1 /* Example 1.1 */ main () printf (This is a C program n); ,本程序的作用是输出以下一行 This is a C program 其中mai

9、n表示“主函数”,每一个程序都必须有一个main函数。函数体由大括弧括起来。 printf是语言中的输出函数;“n”是换行符。,例1.2 /* Example 1.2 */ main ( ) int a, b, sum; a=123;b=456; sum=a+b; printf(Sum is %dn,sum); 本程序的作用是求两个整数和b之和sum 本程序输出结果:Sum is 579 * *表示注释部分,为便于理解,用汉字表示注释,也可以用英语或汉字拼音作注释。注释只是给人看的,对编译和运行不起作用,注释可以加在程序中任何位置。,例1.3 /* Example 1.3 */ main()

10、* 主函数 * int a,b,c; *定义变量* printf(Input a,b:); scanf(%d,%d, /* 将z的值返回,通过max带回调用处 * ,由3个程序示例可以总结以下7点结论: 程序是由函数构成的。 一个源程序至少包含一个函数(main函数),也可以包含 一个main和若干其他函数。C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说是函数式的语言。程序全部工作都是由函数来完成的。的函数库十分丰富,的这种特点使得容易实现程序的模块化。 一个函数由两部分组成: (1)函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。 例如例1

11、.3中的max函数的说明部分为。 int max ( x,) 函数类型 函数名 函数参数 int ,y; 形参类型 形参 函数名后面必须跟一对圆括弧,函数参数可以没有,如main( )。,(2)函数体,即函数说明部分下面的大括弧内的部分。如果一个函数内有多个大括弧,则最外层的一对 为函数体的范围。 函数体一般包括: 变量定义。如例中main函数中的“int a,b,c”。 执行部分。由若干个语句组成。 当然,在某些情况下也可以没有变量定义部分(例如例)。甚至可以既无变量定义也无执行部分。如: () 它是一个空函数,什么也下干,但这是合法的。 一个程序总是从main函数开始执行的,而不论main

12、函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。,程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上人程序没有行号,也不象O或那样严格规定书写格式(语句必须从某一列开始书写)。 每个语句和数据定义的最后必须有一个分号。分号是语句的必要组成部分。例如: 十; 分号不可少。即使是程序中最后一个语句也应包含分号(这是和语言不同的)。 语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成C对输入输出实行函数化 可以用*对程序中的任何部分作注释,一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性,1.4 程序的上机步骤 用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论