资源描述:
《《C语言程序设计教程》第1章C语言概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章C语言概述本章要点C语言的特点C程序的结构在计算机上运行C程序的方法主要内容1.1计算机与程序、程序设计语言1.2C语言出现的历史背景1.3C语言的特点1.4简单的C语言程序1.5运行C程序的步骤和方法1.1计算机与程序、程序设计语言计算机与程序:要让计算机按照人们的愿望工作,必须由人们事先编制好程序,并输入到计算机,让计算机执行程序才能产生相应的操作结果。程序设计语言:一个型号机器语言的指令的集合称为该计算机的机器语言;用一些特定的“助记符号”代替0和1来表示指令的程序设计语言称为汇编语言;接近于人们习惯使用的自然语言(英文)和数学语言
2、称为“高级语言”。1.1计算机与程序、程序设计语言!!!用高级语言编写的程序,计算机是不能直接识别和执行的(计算机只能直接识别二进制的指令),必须事先把用高级语言编写的程序翻译成机器语言程序,这个“翻译”工作是由称为“编译系统”的软件来实现的。1.2C语言出现的历史背景C语言是国际上广泛流行的高级语言。C语言是在B语言的基础上发展起来的。B(BCPL)语言是1970年由美国贝尔实验室设计的,并用于编写了第一个UNIX操作系统。优点:简单,接近硬件,缺点:过于简单,功能有限。1972年至1973年贝尔实验室的D.M.Ritchie在B语言的基础上
3、设计出了C语言,并用之改写了原来用汇编编写的UNIX。后来,C语言多次做了改进,但主要还是在贝尔实验室使用。1.2C语言出现的历史背景1977年出现了《可移植C语言编译程序》,推动了UNIX在各种机器上实现,C语言也迅速得到推广,其发展相辅相成。1978年在BrianW.Kernighan和DennisM.Ritchie合著的影响深远的名著《TheCProgrammingLanguage》中介绍的C语言成为后来广泛使用的C语言版本的基础,被称为标准C。1978年以后,C语言先后移植到大、中、小、微型计算机上,风靡世界,成为最广泛的几种计算机语言
4、之一。1.2C语言出现的历史背景1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSIC,比标准C有了很大的发展。1987年,ANSI公布了新标准——87ANSIC。1989年,ANSI又公布了一个新的C语言标准—C891990年,ISO接受C89作为国际标准通常称为C901999年,ISO对C语言标准进行修订,在基本保留原来的C语言特征的基础上,增加了一些面向对象的特征,简称为C99。目前流行的C语言编译系统大多是以C89为基础进行开发的。1.2C语言出现的历史背景说明:不同版本的C编译系统所实现
5、的语言功能和语法规则又略有差别。因此读者应了解所用的C语言编译系统的特点。本书的叙述基本上以C89为基础的。1.3C语言的特点(1)语言简洁、紧凑,使用方便、灵活。32个关键字、9种控制语句,程序形式自由(2)运算符丰富。34种运算符(3)数据类型丰富,提供整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。(4)C语言是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。1.3C语言的特点(6)允许直接访问物理地址,可直接对硬件进行操作。兼有高级和低级语言
6、的功能。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。(8)用C语言编写的程序可移植性好。基本上不做修改就能用于各种型号的计算机和各种操作系统。1.3C语言的特点解释1:C++是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件;解释2:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合程序设计的初学者。问题:既然有了面向对象的C++语言,为什么还要学习C语言?1.4简单的C语言程序例1.1#includevoidma
7、in(){printf("ThisisaCprogram.");}/*文件包含*//*主函数*//*函数体开始*//*输出语句*//*函数体结束*/说明:main-主函数名,void-函数类型每个C程序必须有一个主函数main{}是函数开始和结束的标志,不可省每个C语句以分号结束使用标准库函数时应在程序开头一行写:#include说明:本程序的作用是输出一行信息:ThisisaCprogram.例1.2求两数之和#includevoidmain()/*求两数之和*/{inta,b,sum;/*声明,定义
8、变量为整型*//*以下3行为C语句*/a=123;b=456;sum=a+b;printf(″sumis%d\n″,sum);}说明:/*……*/