C程序设计(第五版)课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C程序设计(第五版)课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第五 课件
- 资源描述:
-
1、C程序设计(第五版)程序设计和C语言计算机程序可以被计算机理解并执行的基本操作命令。指令指令与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。软件软件一组计算机能识别和执行的指令。一个特定的指令序列用来完成一定的功能。程序程序计算机语言机器语言计算机能直接识别和接受的二进制代码称为机器指机器指令令。机器指令的集合就是该计算机的机器语言机器语言。特点:难学,难记,难检查,难修改,难以推广使用。依赖具体机器难以移植。汇编语言机器语言的符号化。用英文字母和数字表示指令的符号语言符号语言。特点:相比机器语言简单好记,但仍然难以普及。汇编指令需通过汇编程序汇编程序转换为机器指令
2、才能被计算机执行。依赖具体机器难以移植。高级语言高级语言更接近于人们习惯使用的自然语言和数学语言。特点:功能强大,不依赖于具体机器。用高级语言编写的源程序源程序需要通过编编译程序译程序转换为机器指令的目标程序目标程序。B8 7F 01BB 21 0203 D8B8 1F 042B C3MOV AX 383MOV BX 545ADD BX AXMOV AX 1055SUB AX BXS=1055-(383+545)高级语言的发展010203非结构化的语言规定:程序必须由具有良好特性的基本结构(顺序结构、选择结构、循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。特
3、点:程序结构清晰,易于编写、阅读和维护。面向对象的语言结构化语言C语言的发展D.M.Ritchie19721973年间,美国贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计算机上。C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。以UNIX第7版中的C语言编译程序为基础,1978年,Brian W.Kernighan和Dennis M.Ritchie 合著了影响深远的名著The C Progr
4、amming Language,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它是实际上第一个C语言标准。1983年,美国国家标准协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案(83 ANSI C)。1989年,ANSI公布了一个完整的C语言标准ANSI X3.1591989(常称为ANSI C或C 89)。1990年,国际标准化组织ISO(International Standard Organization)接受C 89作为国际标准ISO/IEC 9899: 1990,它和ANSI的C 89基本上是相同的。1999年,ISO又对C语言
5、标准进行了修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C+中的一些功能,并在2001年和2004年先后进行了两次技术修正,它被称为C 99,C 99是C 89的扩充。目前由不同软件公司所提供的一些C语言编译系统并未完全实现C 99建议的功能,它们多以C 89为基础开发。C语言的特点 语言简洁、紧凑,使用方便、灵活0102030405060708C C语法限制不太严格,程序设计自由度大运算符丰富 数据类型丰富具有结构化的控制语句用函数作为程序的模块单位,便于实现程序的模块化C语言是完全模块化和结构化的语言生成目标代码质量高,程序执行效率高程序可移植性好允许直接
6、访问物理地址能进行位(bit)操作能实现汇编语言的大部分功能可以直接对硬件进行操作因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件最简单的C语言程序【例1.1】要求在屏幕上输出:This is a C program.解题思路解题思路: : 在主函数中用printf函数原样输出以上文字。#include /这是编译预处理指令int main()/定义主函数 /函数开始的标志 printf(This is a C program.n);/输出所指定的一行信息 return 0;/函数执行完毕时返回函数值0/函数结束的标志程 序 分 析mainmain是函数的名字,表示
7、“主函数”;每一个C语言程序都必须有一个 main 函数。main前面的intint表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。return 0;return 0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。函数体由花括号括起来。printfprintf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号双引号内的字符串This is a C program.按原样输出。nn是换行符,即在输出This is a C program.后,显示屏上的光标位置移到下一行的开头。每个语句最后都有一个分号分
8、号,表示语句结束。最简单的C语言程序【例1.1】要求在屏幕上输出:This is a C program.解题思路解题思路: : 在主函数中用printf函数原样输出以上文字。#include /这是编译预处理指令int main()/定义主函数 /函数开始的标志 printf(This is a C program.n);/输出所指定的一行信息 return 0;/函数执行完毕时返回函数值0/函数结束的标志最简单的C语言程序#include /这是编译预处理指令int main()/定义主函数 /函数开始的标志 printf(This is a C program.n);/输出所指定的一行信
9、息 return 0;/函数执行完毕时返回函数值0/函数结束的标志程 序 分 析mainmain是函数的名字,表示“主函数”;每一个C语言程序都必须有一个 main 函数。main前面的intint表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。return 0;return 0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。函数体由花括号括起来。最简单的C语言程序#include /这是编译预处理指令int main()/定义主函数 /函数开始的标志 printf(This is a C program.n);/输出所指定的
10、一行信息 return 0;/函数执行完毕时返回函数值0/函数结束的标志程 序 分 析printfprintf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号双引号内的字符串This is a C program.按原样输出。nn是换行符,即在输出This is a C program.后,显示屏上的光标位置移到下一行的开头。每个语句最后都有一个分号分号,表示语句结束。最简单的C语言程序#include /这是编译预处理指令int main()/定义主函数 /函数开始的标志 printf(This is a C program.n);/输出所指定的一行信息 retu
11、rn 0;/函数执行完毕时返回函数值0/函数结束的标志程 序 分 析在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息,程序第1行“#include #include ”的作用就是用来提供这些信息的。stdio.hstdio.h是系统提供的一个文件名,stdiostdio是standard input & output的缩写,文件后缀.h.h的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。最简单的C语言程序#include /这是编译预处理指令int main()/定义主函数 /函数开
12、始的标志 printf(This is a C program.n);/输出所指定的一行信息 return 0;/函数执行完毕时返回函数值0/函数结束的标志程 序 分 析/表示从此处到本行结束是“注释”,用来对程序有关部分进行必要的说明。在写C程序时应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编译时注释部分不产生目标代码,注释对运行不起作用。注释只是给人看的,而不是让计算机执行的。注释这种注释可以单独占一行,也可以出现在一行中其他内容的右侧。此种注释的范围从/开始,以换行符结束。如果注释内容一行内写不下,可以用多个单行注释。这种注释
13、可以包含多行内容。它可以单独占一行(在行开头以/*开始,行末以*/结束),也可以包含多行。编译系统在发现一个/*后,会开始找注释结束符*/,把二者间的内容作为注释。以/开始的单行注释以/*开始,以*/结束的块式注释注意:在字符串中的/和/*都不作为注释的开始。而是作为字符串的一部分。/第一行注释/继续注释/*一整块都是注释*/注释#include int main() printf(/how do you do!n); return 0;#include int main() printf(/*how do you do!*/n); return 0;最简单的C语言程序【例1.2】求两个整数之
14、和解题思路解题思路: : 设置3个变量,a和b用来存放两个整数,sum用来存放和数。用赋值运算符“=”把相加的结果传送给sum。#include /这是编译预处理指令 int main( )/定义主函数 /函数开始 int a,b,sum; /本行是程序的声明部分,定义a,b,sum为整型变量 a=123;/对变量a赋值 b=456;/对变量b赋值 sum=a+b;/进行a+b的运算,并把结果存放在变量sum中 printf(sum is %dn,sum); /输出结果 return 0;/使函数返回值为0/函数结束最简单的C语言程序#include /这是编译预处理指令 int main(
15、)/定义主函数 /函数开始 int a,b,sum; /本行是程序的声明部分,定义a,b,sum为整型变量 a=123;/对变量a赋值 b=456;/对变量b赋值 sum=a+b;/进行a+b的运算,并把结果存放在变量sum中 printf(sum is %dn,sum); /输出结果 return 0;/使函数返回值为0/函数结束程 序 分 析printfprintf(sum is %d(sum is %dn,sumn,sum); ); printf函数圆括号内有两个参数。第一个参数是双引号中的内容sum is %dn,它是输出格式字符串,作用是输出用户希望输出的字符和输出的格式。其中sum
16、 is是用户希望输出的字符,d d是指定的输出格式,d d表示用“十进制整数”形式输出。圆括号内第二个参数sum表示要输出变量sum的值。在执行printf函数时,将sum变量的值(以十进制整数表示)取代双引号中的%d。printf(sum is %dn, sum); 输出时用sum的值取代%d最简单的C语言程序【例1.3】求两个整数中的较大者解题思路解题思路: : 用一个函数来实现求两个整数中的较大者。在主函数中调用此函数并输出结果。#include /主函数int main()/定义主函数/主函数体开始int max(int x,int y);/对被调用函数max的声明int a,b,c;
17、/定义变量a,b,cscanf(%d,%d,&a,&b); /输入变量a和b的值c=max(a,b);/调用max函数,将得到的值赋给cprintf(max=%dn,c); /输出c的值return 0;/返回函数值为0/主函数体结束/求两个整数中的较大者的max函数int max(int x,int y)/定义max函数,函数值为整型, 形式参数x和y为整型 int z;/max函数中的声明部分,定义本函数中用到的变量z为整型if(xy)z=x;/若xy成立,将x的值赋给变量zelse z=y;/否则(即xy不成立),将y的值赋给变量zreturn(z); /将z的值作为max函数值,返回到
18、调用max函数的位置最简单的C语言程序#include /主函数int main()/定义主函数/主函数体开始int max(int x,int y);/对被调用函数max的声明int a,b,c;/定义变量a,b,cscanf(%d,%d,&a,&b); /输入变量a和b的值c=max(a,b);/调用max函数,将得到的值赋给cprintf(max=%dn,c); /输出c的值return 0;/返回函数值为0/主函数体结束/求两个整数中的较大者的max函数int max(int x,int y)/定义max函数,函数值为整型, 形式参数x和y为整型 int z;/max函数中的声明部分,
19、定义本函数中用到的变量z为整型if(xy)z=x;/若xy成立,将x的值赋给变量zelse z=y;/否则(即xy不成立),将y的值赋给变量zreturn(z); /将z的值作为max函数值,返回到调用max函数的位置程 序 分 析本程序包括两个函数:主函数main;被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z,最后通过return语句将z的值作为max的函数值返回给调用max函数的主函数。scanfscanf是输入函数的名字(scanf和printf都是C的标准输入输出函数)。该scanf函数的作用是输入变量a和b的值。max(amax(a,b)b)调用max函数。在
20、调用时将a和b作为max函数的实际参数实际参数的值分别传送给max函数中的形式参数形式参数x和y。最简单的C语言程序#include /主函数int main()/定义主函数/主函数体开始int max(int x,int y);/对被调用函数max的声明int a,b,c;/定义变量a,b,cscanf(%d,%d,&a,&b); /输入变量a和b的值c=max(a,b);/调用max函数,将得到的值赋给cprintf(max=%dn,c); /输出c的值return 0;/返回函数值为0/主函数体结束/求两个整数中的较大者的max函数int max(int x,int y)/定义max函数
21、,函数值为整型, 形式参数x和y为整型 int z;/max函数中的声明部分,定义本函数中用到的变量z为整型if(xy)z=x;/若xy成立,将x的值赋给变量zelse z=y;/否则(即xy不成立),将y的值赋给变量zreturn(z); /将z的值作为max函数值,返回到调用max函数的位置注意:本例程序中两个函数都有return语句,请注意它们的异同。两个函数都定义为整型,都有函数值,都需要用return语句为函数指定返回值。main函数中的return语句指定的返回值一般为0。max函数的返回值是max函数中求出的两数中的最大值z,只有通过return语句才能把求出的z值作为函数的值并
22、返回调用它的main函数中。C语言程序的结构 一个程序由一个或多个源程序文件组成源程序文件包括:预处理指令、全局声明、函数定义 函数时C程序的主要组成部分一个C语言程序是由一个或多个函数组成的,其中必须包含唯一一个main函数程序中被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数 一个函数包括两个部分:函数首部和函数体,函数体一般包括声明部分和执行部分 程序总是从main函数开始执行 程序中的操作是由函数中的C语句完成的 在每个数据声明和语句的最后必须有一个分号 C语言本身不提供输入输出语句,输入输出操作由函数完成 程序应当包含注释#include int main(
23、) int max(int x,int y);int a,b,c;scanf(%d,%d,&a,&b); c=max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z;if(xy)z=x;else z=y; return(z);预处理指令main函数自定义函数库函数调用自定义函数调用intmax(int x,int y) 函数类型 函数名参数类型 参数名参数类型 参数名运行C程序的步骤与方法开始编辑编译有错?连接执行 结果 正确?结束无正确有不正确可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序程
24、序设计的任务问题分析问题分析设计算法设计算法编写程序编写程序对源程序进对源程序进行编辑、编行编辑、编译和连接译和连接运行程序运行程序分析结果分析结果编写程序编写程序文档文档算法程序的灵魂数据结构对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。算法对操作的描述。即要求计算机进行操作的步骤算法+数据结构=程序沃思算法程序员程序员数据结构语言工具程序设计方法算 法广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可以有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。 非数值运算算法数值运算算法算
25、法数值运算的目的是求数值解。由于数值运算往往有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,算法比较成熟。计算机在非数值运算方面的应用远超在数值运算方面的应用。非数值运算的种类繁多,要求各异,需要使用者参考已有的类似算法,重新设计解决特定问题的专门算法。简单的算法举例【例2.1】求12345S1: 先求1乘以2,得到结果2S2: 将步骤1得到的乘积2再乘以3,得到结果6S3: 将6再乘以4,得24S4: 将24再乘以5,得120算法算法步骤步骤S1: 令p=1,或写成1=p(表示将1存放在变量p中)S2: 令i=2,或写成2=i(表示将2存放在变量i中)S3: 使p与i
展开阅读全文