谭浩强第1章c语言版顶级讲义.ppt_第1页
谭浩强第1章c语言版顶级讲义.ppt_第2页
谭浩强第1章c语言版顶级讲义.ppt_第3页
谭浩强第1章c语言版顶级讲义.ppt_第4页
谭浩强第1章c语言版顶级讲义.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、c普计程仪编程(第二版),新世纪计算机基础教育丛书执行主编谭浩强,总目录,第一章习语言概要第二章计程仪计划的灵魂算法第三章数据型, 运算符和公式第四章最简单的c计程仪编程顺序计程仪编程第五章选择结构计程仪编程第六章循环控制第七章数组第八章函数第九章预处理指令第十章指针第十一章结构和公共第十二章位置运算第十三章文档第十四章c对c的扩展第十五章c的物件导向基础第十六章常见错误和计程仪程序调试, 第一章习语言概要1.1习语言出现的历史背景1.2习语言的特点1.3简单的c计程仪程序介绍1.4 C计程仪程序的上一步1.5练习题,1.1习语言出现的历史背景,习语言是国际上广泛普及的计算机高级语言,既可以编

2、写系统软件也可以编写应用软件习语言在b语言的基础上发展,其根源可以追溯到ALGOL 60。 1960年的ALGOL 60是一种面向问题的高级语言,远离硬件,不适合创建系统计程仪程序。 1963年英国剑桥大学发表了组合编程语言(CPL )。 基于ALGOL 60,CPL语言类似于硬件,然而规模相对大并且难以实现。 1967年,英国剑桥大学的Matin Richards简化了CPL语言,发表了CPL (基本组合编程语言)语言。 1970年,美国美国贝尔实验室Ken Thompson根据BCPL语言,进一步简化,设定了与硬件相近的b语言(取BCPL的第一个字符),用b语言写下第一个UNIX执行操作系

3、统,在PDP7上实现。 1971年在PDP11/20实现了b语言,并写成了UNIX。 但是,b语言过于简单,功能有限。 从1972年到1973年,贝尔实验室的D.M.Ritchie根据b语言修改了习语言(取BCPL的第二个字母)。 在保持BCPL和b语言的优点(精细、接近硬件)的同时,习语言克服了这些缺点(过于简单,无法输入数据等)。 最初的习语言只是为了提供编写和实施UNIX执行操作系统的工作语言而进行了修订。 1973年,K.Thompson和D.M.Ritchie两人合作用c改写了超过90%的UNIX,UNIX第5版。 原来的UNIX执行操作系统是1969年由美国美国贝尔实验室的K.Th

4、ompson和D.M.Ritchie开发,用汇编语言编写的。 从1972年到1973年,贝尔实验室的D.M.Ritchie根据b语言修改了习语言(取BCPL的第二个字母)。 在保持BCPL和b语言的优点(精细、接近硬件)的同时,习语言克服了这些缺点(过于简单,无法输入数据等)。 最初的习语言只是为了提供编写和实施UNIX执行操作系统的工作语言而进行了修订。 1973年,K.Thompson和D.M.Ritchie两人合作用c改写了超过90%的UNIX,UNIX第5版。 原来的UNIX执行操作系统是1969年由美国美国贝尔实验室的K.Thompson和D.M.Ritchie开发,用汇编语言编写的

5、。 之后,习语言进行了多次改进,主要用于美国贝尔实验室内部。 自1975年UNIX第6版发布以来,习语言的突出优点引起了人们的关注。 1977年出现了不依存于具体机器的习语言编译文本可移植的习语言编译程序,将c移植到其他机器时所需的作业大幅简化,UNIX执行操作系统可以用各种机器迅速实现。 例如在VAX、AT中强调灵活性,必然会放宽限制。 对于不熟练的程序设计师来说,制作正确的c计程仪方案可能比制作其他高级语言方案更难。 也就是说,使用习语言的人要求在计程仪编程方面更熟练。 (6)习语言可以二进制位操作,实现汇编语言的大部分功能,直接操作硬件。 因此,c具有高级语言功能和许多低级语言功能,可用

6、于系统软件的写入。 该习语言对偶式是成功的系统描述语言和共同的软件编程语言。 有人把c称为“高级语言中的低级语言”或“中级语言”,意味着兼备了高级语言和低级语言的特征。从这一观点可以对各种语言进行如下分类:高级:基本、财富、COBOL、PASCAL、Ada、模块- 2; 中级: C、FORTH、宏命令组件低级的:汇编语言一般都习惯将习语言称为高级语言。 c-plume计程仪程序与其他高级语言相同,因为它可以通过编译和连接来获得可执行的营销对象程序计程仪程序。 c以上特点,读者至今仍有可能深刻的吃不透,但学习c后回顾,有很深的体会。 我们从应用的观点简单地比较了习语言和其他传统的高级语言。 由于

7、语言的容易掌握,习语言比其他语言要难一些。 BASIC是面向初学者的好语言,FORTRAN也容易学习。 科学订正算法有FORTRAN和PL/; COBOL适用于数据处理领域,如业务和管理。 在科学订正和管理领域也能使用习语言,不过,不理想,c的特长在这里没有。 在需要操作执行操作系统、系统实用程序和硬件时,习语言明显优于其他高级语言,某些大型应用程序也由习语言编写。 从教育的角度来看,PASCAL是世界上第一种结构化语言,因此被认为是计算机专业的理想教育语言。 现在,在数据构造等课程中以PASCAL语言举例。 但是,PASCAL语言很难在各个实用领域扩展开来,迄今为止基本上只是教育语言。 习语

8、言也是理想的结构化语言,记述力强,也适合教育。 操作系统课程多结合UNIX进行讲解,但由于UNIX和c是不可分割的,因此习语言已成为广泛使用的教育语言。 c除了可以用于教育之外,因为有广泛的应用领域,所以更有生活力。 PASCAL和其他高级语言的设定修正目标是通过严格的语法定义和检验来保证程序的精准性,c是强调灵活性,提高软件程序员适应广泛应用方面的自由度。 也就是说,习语言对程序设计师有很高的要求。 当程序设计师在习语言上创建计程仪计划时,可以创建任何类型的计程仪计划,包括限制、灵活性和功能。 现在,习语言不仅用于系统软件,也用于应用程式的制作。 学习和使用c的人在增加。 1.3简单的c柱计

9、程仪柱介绍,然后介绍一些简单的c柱计程仪柱,再分析c柱的特性。 示例1.1主() printf (thisisacprogram.n )。 本计程仪程序的作用是输出下一行的信息: this is AC程序。 其中,main表示“主函数”。 每个c-plum都需要一个main函数。 函数主体用大括号括起来。 在本例中,主函数内只有一个输出语句,printf是习语言中的输出函数(详细情况请参照第4章)。 双引号(双括号)内的字符串直接输出。 “n”是换行符,在输出“This is a c program .”后换行。 句子的末尾有分号。 求例1.2主()/*个数的和*/int a、b、和。 /*这

10、是定义变量*/a=123。 b=456; /*以下三行中c语句*/sum=a b; 打印机(和is % d/n,和); 本计程仪程序的作用是求出两个整数a和b的和sum。 /*/表示注释部分,为了便于理解,用中国字表示注释,但当然也可以用英语或中国字大头针进行注释。 评论只是给别人看,对编译和执行不起作用。 注释可以添加到计程仪计划中的任何位置。 第2行是宣言部,定义变量a和b,将a和b指定为整数(int )变量。 第三行是两个赋值语句,a和b的值分别是123和456。 第4行的sum的值为a b,第5行的“%d”为投入产出的“格式字符串”,指定投入产出时的数据类型和格式(详情请参照第4章),

11、“%d”表示“以十进制整数形式输出”。 执行输出时,该位置在上一代为十进制整型数据。 printf函数中括号右端的sum是输出变量,当前值为579 (即123 456的值)。因此,输出1行的信息是sum is 579例1.3 main ()/*主函数*/int a、b、c。 /*声明部分,定义变量*/scanf (%d,%d,/*输入变量a和b的值*/,c=max (a,b ); 调用/*max函数,并将得到的值分配给c*/printf (max=%d,c )。 /*输出c的值*/int max(int x,int y) /*定义了max函数,函数值是整数类型,形式残奥节计量器x,y是整数类型

12、*/int z; 在/* max函数的声明部分中,将本函数中使用的变量z定义为整数型*/if (xy) z=x。 欧洲z=y; 返回(z ); 返回/*z的值,在max中调用的目标*/,本计程仪方案包含被调用为:主函数main的两个函数max。 max函数的作用是将x和y中较大的值指定给变量z。 return语句将z值返回主调函数main。 门值通过函数名max返回到main函数的调用方。 main函数的scanf是输入函数的名称(scanf和printf都是c系统提供的标准投入产出函数)。 scanf函数在堆计程仪中的作用是输入a和b的值。 ”“这是一个很好的例子。” 在第八章中,还可以看到

13、在声明部分声明调用的函数。 执行部:由多个句子构成。 当然,在某些情况下也可以没有宣言部分(例1.1 )。 没有宣言部分和执行部分。 例如, dump ()是一个空函数,其什么也不做,但是这是合法的。 (3)一个c方案总是从main函数执行而与main函数在整个方案计程仪中的位置无关(main函数可以位于方案计程仪方案的开头,也可以位于方案计程仪方案的末尾,也可以位于某个函数的前面,或者也可以位于其它函数的后面)。 (4) c-plum的格式自由,一行可以写多个句子,一个句子可以分成多行写。 c plum没有行号,格式不像FORTRAN或COBOL那样严格(语句必须从一列开始写)。 (5)每个

14、句子和数据定义的末尾必须有分号。 分号是c语句的必要组件。 例如: c=a b; 分号是必不可少的。 在pumble中的最后一个语句中也必须包含分号(这与PASCAL语言不同)。 (6)习语言本身没有投入产出句。 投入产出的操作通过库函数scanf和printf等函数进行。 把c投入产出“函数化”。 由于投入产出操作涉及具体的订正机设备,将投入产出操作列入函数进行处理,能够缩小习语言本身的规模,编译程序简单,能够用各种机器容易地实现,程序计程仪具有移植性。 当然,根据习语言系统不同,需要使函数库内的函数不同的处理。 各种c系统除了功能库中的标准函数外,还根据硬件状况提供特殊的函数。 因此,系统

15、提供的函数和功能不同。 可以用(/*/对c普计程仪拉姆的任意部分进行注释。 对于具有优秀使用价值的源计程仪报,必须添加必要的注释以提高计程仪报的易读性。 1.4 C计程仪程序的上位步骤,看到了一些用习语言写的程序计程仪程序。 为了使计算机能够按照人的意志工作,必须根据问题的要求,制定适当的程序计程仪。 计程仪程序是计算机可以识别和执行的指令的定径套。 每个命令都使计算机执行特定的操作。 可以用高级语言(如QBASIC、FORTRAN、PASCAL和c )编写方案。 用高级语言编写的计程仪程序称为“源计程仪程序”(source program )。 基本上,修正机只能识别并执行由0和1组成的二进

16、制指令,而不能识别并执行用高级语言写入的指令。 为了使计算机能够运行高级语言源程序,使用称为“编译程序”的软件,将源计程仪程序翻译成二进制形式的“营销对象计程仪程序”,将其营销对象程序与系统函数库和其他目标程序连接,并可执行,tar 编写c源计程仪程序后,要完成以下几个步骤,即在纸上写完该程序如何在卷扬机上执行,然后将卷扬机输入和编辑源计程仪程序源计程仪程序进行编译,连接库函数上执行营销对象程序。 以上过程如图1.1所示。其中实线表示操作的流动,折断线表示文件的投入产出。 例如,编辑后得到一个源计程仪程序文件f.c,编译时输入源计程仪程序文件f.c,编译后将目标程序文件f.obj输入到存储器中

17、,连接到系统提供的库函数等,可执行的目标计程仪程序文件f.c 最后了解f习语言的初步知识后,读者最好执行c方案,建立对c方案计程仪的初步认识。 在三种不同的环境中执行c-plum的简单介绍。 1 .在turbo c中执行c-plum的步进turbo c是在微机上广泛使用的编译程序。 具有方便直观,使用方便的界面和丰富的库函数。 它为用户提供了一个集成的环境,通过该环境,用户可以将所有操作(如编辑、编译、连接和执行计程仪程序)合并到一个界面中,从而使其更加易于使用。 要使turbo c可用,必须首先将turbo c编译程序加载到盘的目录查询中。 例如,将其放置在光盘根目录的下一个TC子目录查询中

18、。图1.2、(1)调用涡轮c计程仪程序。 如果用户的当前目录查询是turbo c编译程序所在的子目录查询(如TC子目录查询),则只需从牛鼻子板键入TC命令,即可在: c 3360 tctc屏幕上看到turbo c集成环境(参见图1.2 )。 从图1.2可以看到,集成环境的顶部有一行“主菜单”,包含以下八个菜单项: fileeditruncompileprojectoptiondebugbreak/watch的用户使用该这些个的菜单项上述八个菜单项分别表示文件操作、编辑、执行、编译、项目工程文件、选项、调试、中断/观察等功能。 可在牛鼻子板的“”和“”牛鼻子中选择菜单栏所需要的菜单项。 选择的项目以“反转”图1.3的形式显示(例如,主菜单的项目原本在白底以黑字显示,如果选择,则在黑底以白字显示)。 推一推enter牛鼻子后,将出现一个下拉菜单。 例如,如果选择“file”菜单并推一推汽车牛鼻子,则在屏幕的“file”下将出现一个下拉菜单,如图1.3所示。 这是提供多个选项的子菜单。 可以在“”牛鼻子中选择所需的项目。 例如,选

温馨提示

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

评论

0/150

提交评论