C语言程序设计(第四版)谭浩强ppt课件.ppt
《C语言程序设计(第四版)谭浩强ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计(第四版)谭浩强ppt课件.ppt(834页珍藏版)》请在三一办公上搜索。
1、,课堂要求为什么学习程序设计 为什么选择C语言怎样学习C程序设计,课堂要求,在教室、机房都做到不迟到、不早退(每节课抽查点名)上课不说话作业认真完成,为什么要学习程序设计,计算机的本质是“程序的机器”,只有懂得程序设计,才能进一步懂得计算机,真正了解计算机是怎样工作的,掌握用计算机处理问题的方法;培养分析问题和解决问题的能力。即使将来不是计算机专业人员,由于学过程序设计理解软件生产的特点和生产过程,就能与程序开发人员个更好的沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。,为什么选择C语言,进行程序设计,必须用一种计算机语言作为工具,否则只是纸上谈兵。可选择的语言很多,各有特
2、点和应用领域。 C语言的代码量小:同样功能的软件用C语言编写容量很小。Wps与office,界面功能基本类似,但是wps只有23.3M,但是微软office就有千兆左右。Wps的内核代码就是用C语言写的。以及我们的主板驱动、显卡驱动、摄像头驱动等都是用c语言。以及数据库DB2,oracle等都是用c语言和c+来写的。ACDSee、photoshop、2D(cs)、3D游戏等应用软件也是用C语言来编写的。速度快:windows内核是c语言外核是c+、unix和linux都是用c语言编写的。功能强大:c语言可访问我们的硬件,c语言中有指针可访问我们的内存等硬件。 C+是为处理大规模的程序开发而研制
3、的大型语言,比C语言复杂难学。C语言是更为基本的,最基础的。在它基础上学习java和c#更容易。C语言是当前程序员共同的语言。,怎样学习C语言,每一讲分4次课前两节是理论课,讲授理论知识后两节为上机课,在机房完成本课练习。检查后方可离开。多思考,多上机。目标:能看懂程序,并调试程序,自学能力要强。,第一章,程序设计和C语言,本章要点,什么是计算机程序什么是计算机语言C语言的发展及其特点运行C程序的步骤与方法最简单的C语言程序程序设计的任务,什么是计算机程序,计算机是万能的吗?-计算机的每一个操作都是根据人们事先指定的指令进行的。为了使计算机执行一系列的操作,必须事先编好一条条指令,输入到计算机
4、。 程序:就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。为了使计算机系统能实现各种功能,需要成千上万个程序。 总之,计算机的一切操作都是由程序控制的,离开程序计算机将一事无成。所以,计算机的本质是程序的机器,只有懂得程序设计,才能真正了解计算机是怎样工作的,才能更深入的使用计算机。,2 什么是计算机语言,计算机和人都能识别的语言,就是计算机语言。发展阶段: 机器语言-汇编语言高级语言 计算机是不能直接识别高级语言编写的程序,要进行“翻译”。用一种称为编译程序的软件把高级语言写的程序(称为源程序)转换为机器指令的程序(称为目标程序),然后让计算机执行机器指令程序,最后得到结
5、果,语言发展及其特点,C语言是国际上广泛流行的高级语言。C语言是在B语言的基础上发展起来的。B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。优点:精练,接近硬件,缺点:过于简单,数据无类型。 1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。,1-1语言出现的历史背景,1975年UNIX第6版发布,C优点突出引起关注。1977年出现了可移植C语言编译程序 ,推动了UNIX在各种机器上实现 ,C语言也得到推广
6、,其发展相辅相成。1978年影响深远的名著The C Programming Language由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。,语言出现的历史背景,1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSI C ,比标准C有了很大的发展。1988年K & R按照 ANSI C修改了他们的The C Programming Language。1989年,ANSI公布了一个完整的c
7、语言标准ANSI C或C89。1990年,国际标准化组织接受了C89为ISO C 的标准(ISO98991990)。1995年,ISO又修订了C语言标准。1999年,ISO有对C语言标准进行修订在基本保留原来的c语言特征的基础上,针对应用的需要又增加一些功能。命名ISO/IEC9899:19992001和2004年先后进行两次技术修正(TC1、TC2)ISO/IEC9899:1999及其技术修正被称为C99。讲课依据c99标准。,说明: 不同版本的C编译系统所实现的语言功能和语法规则又略有差别,因此我们应了解所用的C语言编译系统的特点(可以参阅网上相关资料)。我们使用的是二级语言考试的编译程序
8、Visiua C+6.0.,语言的特点,(1)语言简洁、紧凑,使用方便、灵活。 37个关键字、9种控制语句,程序形式自由,主要用小写字母表示,压缩而一切不必要的成分。(2)运算符丰富。34种运算符,把括号、复制和强制类型转化等都作为运算符处理,从而使C语言的运算类型机极其丰富,表达式类型多样化,灵活使用各种运算符。(3)数据类型丰富,具有现代语言的各种数据结构。整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型,C99扩充了复数浮点类型、超长整型和布尔类型。(4)具有结构化的控制语句 ,是完全模块化和结构化的语言。 (5)语法限制不太严格,程序设计自由度大。例如对数组越界不进行检
9、查,由程序编写者自己保证程序的正确,对变量的类型使用比较灵活。c语言允许程序编写者有较大的自由度,放宽了语法检查。一般的高级语言语法检查比较严。,37个关键字,auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof staic struct switch typedef union unsigned void volatile while _bool _
10、Complex _Imaginary,语言的特点,(6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点 。既是成功的系统描述语言,有时通用的程序设计语言。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10-20%。(8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。,语言的特点,解释1:C+是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件;解释2:面向对象的基础是面向过程。C+是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合
11、程序设计的初学者。,问题:既然有了面向对象的C+语言,为什么还要学习C语言?,运行C程序的步骤与方法-在Visual C+6.0环境下运行C程序的方法,一 安装Visual C+6.0和进入Visual C+6.0环境Visual C+6.0是在Windows环境下工作的, Visual C+6.0有中文版和英文版,方法相同。为了能使用Visual C+6.0集成环境,必须事先在所用的计算机上安装Visual C+6.0。,filenewfilesC+Source File,表示要建立新的c+源程序文件。然后在location(位置)中输入源程序文件的存储路径,file(文件)输入源程序文件的
12、名字。我们指定的文件名后缀为.c,如果是.cpp则表示要建立的是C+程序。,打开已有程序,到源程序 或 文件打开或在此基础上修改另存为一个新的源程序。 在编译新程序前,应先用file-close workspace(关闭工作空间) 将原有的工作区关闭,以免新文件在原有的工作区进行编译。,程序的编译 - Ctrl+F7,在编辑和保存了源文件以后,如需要对其进行编译,单击build(组建),在菜单中选择编译,此编译命令要求一个有效地项目工作区,你是否同意建立一个默认的项目工作区。单击“是”,表示同意由系统建立默认的项目工作区,然后开始编译。在进行编译是,编译系统检查源程序中有无语法错误,然后在调试
13、信息窗口输出便以信息,如果无错,生成目标文件c1-1.obj,如果有错,指出位置和性质,提示改正。,编译系统能查出程序中的语法错误。语法错误分为两类:一类是致命错误,以error表示,如果有这种错误就通不过编译,无法形成目标程序。另一类是轻微错误,以warning表示,这类错误不影响生成目标程序和可执行程序,但可能影响运行的结果。,程序的连接,得到目标程序后,就可以对程序进行链接了,生成的目标程序c1-1.obj编译系统据此确定在连接后生成一个c1-1.exe的可执行文件,在菜单中显示了此文件名。build(组建)-bulid(组建)。,程序的运行,在得到可执行文件.exe后,就可以直接执行.
14、exe了。选择build(组建)-!execute(执行)。按任何一键以便继续。回到主窗口,建立新的程序选择关闭工作空间,简单的C语言程序介绍,#include /这是编译预处理指令int main( ) /定义主函数 /函数开始 printf (“This is a C program.n”); /输出所指定的一行信 return 0; /函数执行完毕时返回函数值0 /函数结束的标志,说明: main-主函数名, 每个C程序必须有一个主函数main,main前面的int表示此函数的类型。在执行主函数后会得到一个值(即函数值)。return 0;当main函数执行结束前将整数0作为函数值,返回
15、到调用函数处(返回给调用main函数的操作系统的。程序员可以利用操作指令检查main函数的返回值,从而判断main函数师傅正常执行。)。(c99建议。) 是函数开始和结束的标志,不可省每个C语句以分号结束printf是c编译系统提供的函数库中的输出函数。使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息。应在程序开头一行写: #include stdio.h是系统提供的一个文件名。用#include指令把这些信息调入供使用,说明: 本程序的作用是输出一行信息:This is a C program.,注释,行右侧如果有/,表示聪从/到本行结束是注释。再写程序时应多用注释,方便自
16、己和别人理解。在程序进行编译处理时将每个注释替换为一个空格,不产生目标代码。c语言允许的两种注释方式:1)以/开始的单行注释。不能跨行。如果注释内容一行内写不下,可以另起一行重新用/,继续注释。注释范围从/开始,以换行符结束。2)以/*开始以*/结束的块式注释,可以包含多行。内容它可以单独占一行,也可包含多行。编译系统在发现一个/*后,会开始找注释结束符*/。把中间内容作为注释。注释可用汉字或英文字符表示,例1.2 求两数之和#include int main( ) /*求两数之和*/ int a,b,sum; /*声明,定义变量为整型*/ /*以下3行为C语句 */ a=123; b=456
17、; sum=a+b; printf(sum is %dn,sum);,说明: /*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。,说明: 输出一行信息:sum is 579,例1.3 求3个数中较大者。#include int main( ) /* 主函数*/ int max(int x,int y); / 对被调用函数max的声明 */ int a, b, c; /*定义变量a、b、c */ scanf(d,d, /*输出c的值*/,int max(int x, int y) int z; if (xy) z=
18、x; else z=y; return (z); ,max(int x,int y);,max(a,b);,说明:本程序包括main和被调用函数max两个函数。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。,C语言程序的结构,(1)一个程序由一个或多个源程序文件组成。一个规模较小的程序,往往只包括一个源程序文件。一个源程序文件包括3部分: 预处理指令:由预处理的到的结果与程序其它部分一起,组成一个完整的,可以用来编译的最后的源程序。 全局声明:例如把例2中的int a,b,sum;放到main函数的前面,就是全局声明,在整个源程序文件范围内有
19、效在函数中声明的变量,只在函数范围内有效。本节所讲例子没有用全局声明。只定义了局部变量。 函数定义(2) 函数是c程序的主要组成部分,程序的几乎全部工作都是由各个函分别完成的,函数是c程序的基本单位。必须包含仅一个main函数(3)一个函数由两部分组成: 函数的首部:例1.3中的max函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 :声明部分:int a,b,c; 可缺省执行部分:由若干个语句组成。可缺省,简单的C语言程序介绍,注意:函数的声明部分和执行部分都可缺省,例如:void d
20、ump ( ) 这是一个空函数,什么也不做,但是合法的函数。,简单的C语言程序介绍,小结:(3) C程序总是从main函数开始执行的,与main函数的位置无关。(4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。(5) 每个语句和数据声明的最后必须有一个分号。(6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。(7)程序应当包含注释。增加程序的可读性。,运行程序的步骤和方法,一、运行程序的步骤上机输入与编辑源程序对源程序进行编译与库函数连接运行目标程序,第一章 作业,上机运行
21、3个例题。参照例题:编写一个c程序,输出以下信息:*Very good !*,第二章,程序的灵魂-算法,本章要点,算法的概念 算法的表示结构化程序设计方法,主要内容,2.1 算法的概念2.2 简单算法举例2.3 算法的特性2.4 怎样表示一个算法2.5 化程序设计方法,一个程序应包括两个方面的内容:,对数据的描述:数据结构(data structure)对操作的描述:算法(algorithm),著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序,数据结构算法程序设计方法语言工具,完整的程序设计应该是:,2.1 算法的概念,广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”
22、。,方法1:1+2,+3,+4,一直加到100 加99次方法2:100+(1+99)+(2+98)+(49 +51)+50 = 100 + 49100 +50 加51次,对同一个问题,可有不同的解题方法和步骤,例: 求,2.1 算法的概念,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。希望方法简单,运算步骤少。,计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。,2.2 简单算法举例,例2.1: 求12345,步骤1:先求12,得到
23、结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120,太繁琐,如果要求121000,则要写999个步骤,S1:使p=1 S2:使i=2 S3:使pi,乘积仍放在变量p中,可表示为:pip S4:使i的值加1,即i+1i。 S5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。,可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果, 算法可改写:,S1:1pS2:3iS3
24、:pipS4:i+2pS5:若i11,返回S3。否则,结束。,如果题目改为:求1351000算法只需作很少的改动:,算法简练,用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时 要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。,例2.2 有50个学生,要求将他们之中成绩在80分以上者打印出来。设n表示学号, n1代表第一个学生学号, 代表第i个学生学号。用G代表学生成绩 , gi代表第i个学生成绩,算法表示如下:,S1:1i S2:如果80,则打印和,否则不打
25、印。 S3:i+1i S4:如果i50,返回S2,继续执行。否则算法结束,变量i作为下标,用来控制序号(第几个学生,第几个成绩)。当i超过50时,表示 已对50个学生的成绩处理完毕,算法结束。,例2.3 判定20002500年中的每一年是否闰年,将结果输出。,变量i作为下标,用来控制序号(第几个学生,第几个成绩)。当i超过50时,表示 已对50个学生的成绩处理完毕,算法结束。,分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。,设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第四 谭浩强 ppt 课件

链接地址:https://www.31ppt.com/p-1375840.html