C语言第一到十四章B.ppt
《C语言第一到十四章B.ppt》由会员分享,可在线阅读,更多相关《C语言第一到十四章B.ppt(100页珍藏版)》请在三一办公上搜索。
1、C 程序设计语言 回顾软件工程 07级2007年12月5日,第1章 C语言概述,计算机科学:信息在计算机内使用数据来表示,研究信息表示 和信息处理。,数据:是用以描述客观事物的数值、字符,以及一切可以输入到 计算机中并由计算机程序加以处理的符号的集合。数据的基本单位称为数据元素 数据的最小单位称为数据项,问题 数学模型 算法 程序 测试 计算,计算机解题过程,程序设计语言,高级语言程序调试过程,C语言特点 1、语言简洁、紧凑,使用方便灵活 2、运算符丰富 3、数据结构丰富,具有现代化语言的各总数据结构 4、具有结构化的控制语句 5、语法限制不太严格,程序设计自由度大 6、C语言允许直接访问物理
2、地址,能进行位操作 可实现汇编语言的大部分功能 7、生成目标代码的质量高,程序执行效率高 8、程序可执行性好,C语言程序结构C程序是由函数构成的。一个C源程序至少包含一个主函数(main或主程序)和若干个其它函数(子函数或子程序)一个函数由两部分程序组成:说明部分和函数体一个C程序总是从main函数开始执行,不论main函数放在程序中的什么位置。程序的流程是通过主函数main调用其它子函数,或子函数间的相互调用C程序书写格式自由,一行内可以写多条语句,但每一语句必须用分号(“;”)结束C语言本身没有输入/输出语句,而是用函数完成相应操作可以用/*,*/在程序的任何部分做注释,算法(Algori
3、thm)是对特定问题求解步骤的一种描述,它是指令(规则)的 有限序列,其中每一条指令表示一个或多个操作。,“好”的算法的标准 正确性,算法能满足具体问题的需求 可读性,首先方便阅读与交流,其次才是机器执行 健壮性,输入错误时,能作出反应,避免异常出错 效率与低存储量要求,算法的特征 有穷性、确定性、输入、输出、有效性,第2章 算法 Algorithm,对算法“正确性”的要求 不含语法错误;对于几组输入数据能得到满足要求的结果;对精心选择苛刻并带有刁难的数据能得到满足要求的结果;对于一切合法的输入均得到满足要求的结果;,算法描述 自然语言;程序设计语言;类语言*;流程图,N.Wirth:Prog
4、ramming=Algorithm+Data Structure 程序设计=算法+数据结构,问题总是先于算法,程序设计的四个里程碑 子程序、高级语言、结构程序设计、面向对象(OOP),结构程序设计 限制使用GO TO语句(基于三种基本结构)逐步求精的设计方法 自顶向下的设计、编码与调试 主程序员组的组织形式,三种基本结构,顺序结构,选择结构,循环结构,常量,符号常量,#define PRICE 30#define PI 3.1415926#define MAX 1000,Total=num*PRICE;Area=PI*R*R;Int xMAX;,变量,变量名 变量名命名规则变量是有类型的,数据
5、类型:变量的取值范围和所允许操作的集合,第3章 数据类型、运算符与表达式,变量的存储类型 变量的数据类型 变量名,变量说明:先定义,后引用,标识符命名规则,intfloatcharPointer to arraystruct,autostaticregisterextern,变量的:有效范围作用时间,变量的:取值范围操作,数据类型,注意:每种类型数据的取值范围Int:-2bits-1(2bits-1-1)Unsigned:0(2bits-1)Float:10-38 1038Double:10-308 10308,运算符,0、赋值运算:=1、算术运算符:+*/%2、关系运算符:=-|&5、赋值运
6、算符:=+=*=/=6、条件运算符:?:7、逗号运算符:,8、指针运算符:*&9、求字节数运算符:sizeof10、强制类型转换:(类型)11、分量运算符:.-12、下标运算符:13、其他:(),优先级类型转换,表达式,算术表达式:算术运算符关系表达式:关系运算符逻辑表达式;逻辑运算符赋值表达式:变量=表达式逗号表达式:表达式1,表达式2,表达式n条件表达式:表达式1?表达式2:表达式3,混合运算,第4章 最简单的C程序设计顺序程序设计,C语句,1、控制语句 if()else for()while()dowhile()continue break switch goto return,2、函数
7、调用,3、表达式语句,4、空语句,5、复合语句,赋值语句,输入/输出语句综述,输入:从键盘或文件键入或读入数据,并将数据赋给程序中的变量。,输出:将程序中变量的值显示在显示器上,或写入到文件中,或在打印机上打印。,C语言中的输入/输出,1、字符输入/输出 putchar(chr)chr=getchar(),文件的字符输入/输出 fputc(chr,fp)chr=fgetc(fp),2、字符串输入/输出 puts(str)gets(str),文件的字符串输入/输出 fputs(strr,fp)fgets(str,n,fp),3、格式输入/输出 printf(格式控制,输出表列)scanf(格式控
8、制,地址表列),文件的格式输入/输出 fprintf(文件变量,格式控制,输出表列)fscanf(文件变量,格式控制,地址表列),Printf(“Format”,表达式1,表达式2,),Scanf(“Format”,&变量名1,&变量名2,),格式控制(Format),整 形 int%d%-nd%-m.nd实 型 float%f%-m.nf字符型 char%c%-nc字符串 char c1MAX%s%-ns,4、块数据的输入/输出 fread(buffer,size,count,fp)fwrite(buffer,size,count,fp),Char str20;sprintf(str,格式控
9、制,变量列表);,Turbo C 函数,系统自动打开和关闭三个标准文件,标准输入-键盘 stdin,标准输出-显示器 stdout,标准出错输出-显示器 stderr,fpringtf(stdout,“x=%d,y=%fn”,x,y);,pringtf(“x=%d,y=%fn”,x,y);,第5章 选择结构程序设计,算术运算 关系运算 逻辑运算,逻辑常量,例:,a&b&ca|b|c当a=1,b=2,c=3,d=4时(m=ab)&(n=cd)执行后m、n=?(m=ad)执行后m、n=?,真值表,条件语句:,三种格式:if()if()else else if条件表达式:表达式1?表达式2:表达式3
10、条件运算:变量=表达式1?表达式2:表达式3Switch,第6章 循环控制,循环类型:“当”型“直到”型 计数,while()dowhile()for(表达式1;表达式2;表达式3)Break:结束循环Continue:结束本次循环,进入下一次循环,用流程图表示各种循环结构,第7章 数 组,一维数组二维数组,数组下标变量,维数,数组名 数组类型 元素个数 下标范围,先定义后使用原则数组的内存存储结构,数组长度,初始化,数组与指针,地址常量,相同类型元素组成的集合,概述函数分类函数结构函数的参数和函数的值函数的调用被调用函数的声明和函数原型函数的嵌套调用函数的递归调用函数与数组存储类型函数的指针
11、和指向函数的指针变量简介指针数组与主函数main()的形参,第 8章 函数,C程序是由函数构成的!,函数分类1:定义的角度看,函数可分为 库函数和用户定义函数,函数分类,函数分类2:从调用角度,可分为 有返回值函数和无返回值函数,函数分类3:参数传递角度,可分为 无参函数和有参函数,函数分类4:从功能角度,可分为:,字符串、转换、目录路径、诊断图形I/O函数、接口、内存管理、日期和时间、数学、进程等,存储类型 返值类型 函数名(形式参数表列)声明部分(局部变量说明)语句部分(完成函数的功能)exit(0)return;/return();/return()/return,函数的结构,autos
12、taticregisterextern,Int,float,charPointer to Structvoid,类型变量指针数组结构体函数,存储类型 返值类型 函数名(形式参数表列),标识符命名规则,intfloatcharpointerarrayStructvoid,autostaticregisterextern,变量的:有效范围作用时间,变量的:取值范围操作,类型变量 指针变量 数组 结构体 函数,函数的调用,函数调用的一般形式 函数名(实际参数表);,函数表达式 例如:z=max(x,y)函数语句 例如:printf(%d,a);scanf(%d,常量 表达式 数组元素 类型变量 指针
13、变量 数组 结构体 函数,被调用函数的声明和函数原型,其一般形式为:类型说明符 被调函数名(类型 形参,类型 形参);或为:类型说明符 被调函数名(类型,类型);原则:先声明,后使用,函数的嵌套调用,函数的递归调用,直接递归和间接递归,关于函数的处理结果:,无数据返回单值返回多值返回批量数据返回,调用函数被调用函数,结果,数组作为函数参数,数组元素作为函数实在参数,形参为变量 数组名作为函数参数(指针),形参为指针,但应同 时传送数组的长度,例:float average(float array10,int n)float average(float array,int n)float ave
14、rage(float*array,int n),指针变量作为函数参数,存储类型,变量的数据类型:变量的取值范围和允许的操作,变量的存储类型:变量的有效时间和作用范围,变量的存在时间(1)全局变量(global varible)定义在所有函数体之外的变量。定义位置:在程序中所有函数体之外;有效范围:在定义开始之后的所有函数中;使用要求:不能与局部变量重名;存在时间:从程序开始到程序结束。,(2)局部变量(local varible)定义在所函数体内的变量。定义位置:在某一函数体内定义;有效范围:只在定义变量的函数中有效;存在时间:函数调用时产生,函数结束后消失 使用特点:局部变量的存在时间决定了
15、不同函数中的局部变量 是互不干涉的,即使同名,也完全相互独立。,(3)外部变量(Extern varible),变量的存储类型:auto static register extern,1、自动存储类型(auto)2、寄存器存储类型(register)3、静态存储类型(static)4、外部存储类型(extern),存储变量的特征,从作用于角度,分为局部变量和全局变量。,变量的作用域 存在时间 动态存储 静态存储,关于作用域和生存期的概念:从前面叙述可以知道,对一个变量的性质可以从两个方面分析,一是从变量的作用域,一是从变量值存在时间的长短,即生存期。作用域:空间的角度生存期:时间的角度 如果一
16、个变量在某个文件或函数范围内是有效的,则称该文件或函数为该变量的作用域,在此作用域内可以引用该变量,所以又称变量在此作用域内“可见”,这种性质又称为变量的“可见性”。如果一个变量值i在某一时刻是存在的,则认为这一时刻属于该变量的“生存期”,或称该变量在此时刻“存在”。,内部函数与外部函数,内部函数:一个函数只能被定义它的文件内的其它函数调用。定义函数时加 static static 类型说明 函数名(形参表),外部函数:一个函数可以被其它文件内的函数调用。定义函数时加 extern extern 类型说明 函数名(形参表),函数定义的完整格式:存储类型 返回值数据类型 函数名(形参表),使用内
17、部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。,函数的指针和指向函数的指针变量简介,1、函数指针的概念 一个函数在编译时,被分配了一个入口地址,这个地址就称为该函数的指针。可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。2、指向函数的指针变量(1)定义格式 函数返值类型(*指针变量)();注意:“*指针变量”外的括号不能缺,否则成了返回指针值的函数。例如,int(*fp)();/*fp为指向int函数的指针变量*/(2)赋值 函数名代表该函数的入口地址。可用函数名给指向函数的指针变量赋值。指向函数的指针变量 注
18、意:函数名后不能带括号和参数;函数名前的“&”符号是可选的。(3)调用格式(*函数指针变量)(实参表)3、指向函数的指针变量作函数参数 指向函数的指针变量的常用用途之一,就是将函数指针作参数,传递到其它函 数。函数名作实参时,因为要缺省括号和参数,造成编译器无法判断它是一个 变量还是一个函数,函数说明的格式与其他函数一样。注意:对指向函数的指针变量,诸如p+i、p+/p-等运算是没有意义的。,第 9章 指针,指针的概念变量的指针和指向变量的指针变量数组的指针和指向数组的指针变量字符串的指针和指向字符串的指针变量函数的指针和指向函数的指针变量返回指针值的函数指针数组和指向指针的指针指针型数据小结
19、,指针的概念,指针就是地址。有变量的、数组的、函数的、字符串的指针等。1、内存的访问方式 1)直接访问 2)间接访问,2、指针的概念 一个变量的地址称为该变量的“指针”。存放地址的变量叫“指针变量”。换句话说,指针变量存放地址。,变量的指针和指向变量的指针变量,1、指针变量的定义 一般形式:类型标识符*变量名;2、指针变量的引用 1)给指针变量赋值 赋变量的地址 2)用指针变量对变量赋值3、指针运算,重点:指向数组元素的指针变量及其应用 指向多维数组元素的指针变量及其应用 指向一维数组的指针变量及其应用难点:多维数组的指针变量及其应用数组的指针是数组的起始地址,数组元素的指针是元素的地址。引用
20、数组可以用下标法,也可以用指针法,通过指向数组的元素的指针找到数组元素。使用指针法能使目标程序占内存少,运行速度快。,数组的指针和指向数组的指针变量,1.概念 数组的指针数组在内存中的起始地址,数组元素的指针数组 元素在内存中的起始地址。2.指向数组的指针变量的定义 指向数组的指针变量的定义,与指向普通变量的指针变量的定义方法一样。例如,int array10,*pointer=array(或 注意:数组名代表数组在内存中的起始地址,所以可以用数组名给指针变量赋值。3.数组元素的引用 数组元素的引用,既可用下标法,也可用指针法。使用下标法,直观;而 使用指针法,能使目标程序占用内存少、运行速度
21、快。,1、指向数组元素的指针变量的定义与赋值,2、通过指针引用数组元素,3、数组名作函数参数,指针变量作函数参数(形参),形参和实参均数组 形参用数组而实参用指针形参用指针而实参用数组 形参和实参均用指针传递的均是数组的首地址。,第i行、第j列的元素表示方法:(1)下标法:aij(2)用 ai+j 地址表示:*(ai+j)(3)用*(a+i)+j 地址表示:*(*(a+i)+j)地址表示方法汇总:,变量的指针只能存放变量的地址,而不能存放数组的地址,可定义数组的指针变量来存放数组的地址。定义的一般形式:类型说明符(*指针变量)数组长度;如:int(*p)4 p为一指向具有4个整型元素的一维数组
22、的指针变量(不能写成*p4,此为指针数组),二维数组的指针及其指针变量:,实参是地址或指针;形参有两种形式:(1)用指向变量的指针变量,(2)用指向一维数组的指针变量。,多维数组的指针作为函数参数,数组名作形参时,接收实参数组的起始地址;作实参时,将数组的起始地址传递给形参数组。引入指向数组的指针变量后,数组及指向数组的指针变量作函数参数时,可有种等价形式(本质上是一种,即指针数据作函数参数):(1)形参、实参都用数组名(2)形参、实参都用指针变量(3)形参用指针变量、实参用数组名(4)形参用数组名、实参用指针变量,二维数组指针作函数参数 二维数组的指针作函数实参时,有列指针和行指针两种形式。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第一 十四
链接地址:https://www.31ppt.com/p-6504266.html