C语言完整课件资料

上传人:xiao****1972 文档编号:245122064 上传时间:2024-10-07 格式:PPT 页数:100 大小:414.50KB
返回 下载 相关 举报
C语言完整课件资料_第1页
第1页 / 共100页
C语言完整课件资料_第2页
第2页 / 共100页
C语言完整课件资料_第3页
第3页 / 共100页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C语言程序设计,第,1,章 概论,第,2,章 数据类型、运算符与表达式,第,3,章 顺序结构程序设计,第,4,章 选择结构程序设计,第,5,章 循环结构程序设计,第,6,章 数组,第,7,章 函数,第,8,章 指针,第,9,章 结构体与共用体,第,10,章 文件,第,11,章 综合应用实例,第1章 概 论,C语言是美国贝尔实验室于20世纪70年代初研制出来的,早期主要用于UNIX操作系统,到了20世纪80年代,C语言开始用于其它操作系统,并很快在各类大、中、小和微型计算机上广泛使用,成为国际上广为流行的计算机程序设计高级语言。,本章主要介绍C语言的特点,C语言程序的结构与书写规则,C程序上机步骤,编译预处理,算法的概念及表示。,1-1,返回目录,1.1 语言的特点,1语言简洁、紧凑,使用方便、灵活,2运算符丰富,3数据类型丰富,4程序设计结构化、模块化,5语法限制不太严格,程序设计自由度大,6C语言允许直接访问物理地址,能进行位(bit)操作,7生成的目标代码质量高,程序执行效率高,8可移植性好,1-2,1.2 C语言程序的结构与书写格式,1.2.1 C语言程序举例,1.2.2,C语言程序的结构,1.2.2.1 函数是语言程序的基本单位。,1.2.2.2 函数的一般结构,任何函数(包括main()函数)都是由函数首部和函数体两部分组成。,1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。,2. 函数体: 函数体为函数首部下面的花括号内的部分。,函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等;,执行部分有若干语句组成。,1-3,1.2.2.3 C语言程序的执行,C语言程序总是从main()函数的第一条执行语句开始执行,执行完main()函数的最后一,条语句,则整个程序执行结束,而其他函数则通过嵌套调用得以执行。,1.2.3 C语言程序书写格式,1. 行的书写格式自由,可从一行的任何位置开始书写。,2. 一行可书写多条语句,一条语句也可分写在几行上。,3. 所有语句都必须以分号“;”结束。,4. 允许使用注释。,C语言的注释格式有两种:/,/* */。,5. 在书写程序时,通常采用缩格形式书写分层结构的程序。,1-4,1.3 C程序上机步骤,C源程序编好后,要经过编辑、编译、连接,,生成可执行文件后,才可运行。,1-5,运行集成开发软件,编辑源程序,编译,连接,运行,结束,有错?,无,有,结果正确,?,正确,不正确,1.4 编译预处理,编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程序对源程序中的预处理命令进行处理的过程。,1.4.1 宏定义,用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在程序中,用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的“宏,名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。,1.4.1.1 不带参数的宏定义,格式为:#define 标识符 字符串,1.4.1.2 带参数的宏定义,格式为:define 宏名(参数表) 字符串,1.4.2 文件包含,文件包含是指在一个文件中,去包含另一个文件的全部内容。,格式为:#include 或#include 文件名,1-6,1.5 算法的概念及表示,1.5.1 算法的概念,为解决一个问题而采取的方法和步骤,称为算法。计算机能够执行的算法,称为计算机算法,它有以下特性:, 有穷性。, 确定性。, 输入。, 输出。, 有效性。,1.5.2 算法的表示,1.5.2.1 用自然语言表示算法,自然语言就是人们日常使用的语言。,1.5.2.2 用流程图表示算法,流程图是用一些图框表示各种操作,用图形表示算法。,1-7,第2章 数据类型、运算符与表达式,数据是程序处理的基本对象,由数据和运算符一起组成的表达式是计算机,语言中最基本的计算成分。,本章主要介绍基本数据类型:整型,实型,字符型;常用运算符:算术运,算符,赋值运算符,逗号运算符,以及相应的表达式。,2-1,返回目录,2.1 数据类型,C语言的数据类型非常丰富,可分为:基本数据类型,构造数据类型,指针类型,,空类型四大类。,2-2,基本类型,构造类型,指针类型,空类型,(void),整型,实型,字符型,(char),枚举类型,(enum),数组类型,结构体类型,(struct),共用体类型,(union),单精度,(float),双精度,(double),长双精度(用的很少),短整型,(short),整型,(int),长整型,(long),数据类型,2.2 常量与变量,2.2.1 标识符,标识符是用来标识符号常量名、变量名、函数名、数组名、类型名、文,件名的有效字符序列,由字母、数字、下划线组成,且第一个字符必须为字,母或下划线。,2.2.2 常量,2.2.2.1 字面常量(直接常量),字面常量是直接表示的常量。,2.2.2.2 符号常量,符号常量是用一个标识符代表一个常量,使用编译预处理命令#define定,义,定义格式为:,#define 常量名 字面常量,2-3,2.2.3 变量,在程序运行过程中,其值可以改变的量称为变量。,C语言规定,变量要先定义后使用。变量的定义一般在函数的声明部分,格式为:,数据类型 变量名1,变量名2,;,变量的三个要素 :, 变量名。, 变量值,。, 变量的地址.,2.2.4 变量的初始化,在定义变量的同时给变量赋以初值,称为变量初始化,出现在函数体的声明部分,,格式为:,数据类型 变量1=值1, 变量2=值2,;,2-4,2.3 整型数据,2.3.1 整型常量,在C语言中,整型常量有三种表示形式:, 十进制,数码为0,9。, 八进制(以数字0开头),数码为0,7。, 十六进制(以数字0x或0X开头),数码为0,9,A,F或a,f。,在C语言中,整型常量可分为三种类型:, 基本整型。, 无符号基本整型(在数值后面加U或u)。, 长整型(在数值后面加L或l。,2-5,2.3.2 整型变量,根据占用内存字节数的不同,整型变量分为三类:,(1) 基本整型,以int表示。,(2) 短整型,以short int或short表示。,(3) 长整型,以long int或long表示。,根据在内存中的存储形式,整型数据又分为有符号和无符号两种。,2-6,整型数据的分类,类型,标识符,字节数,存储位,数值范围,整型,int,2,16,-32768,32767,短整型,short,2,16,-32768,32767,长整型,long,4,32,-2147483648,2147483647,无符号整型,unsigned int,2,16,0,65535,无符号短整型,unsigned short,2,16,0,65535,无符号长整型,unsigned long,4,32,0,4294967295,2.3.3 整型数据的溢出,如果在数据处理时,超出了变量的取值范围,就会发生“溢出”现象。,2.4 实型数据,2.4.1 实型常量,实型常量即实数,在C语言中又称浮点数,其值有两种表达形式。, 十进制小数形式,有数字和小数点组成,要求小数点的两边必须有数。, 指数形式,格式为,E(e),2-7,2.4.2 实型变量,C语言的实型变量分为三种:单精度型(float)、双精度型(double)、,长双精度型(long double),实型数据在内存中是按指数形式存储的 。,2-8,实型数据的分类,类型,标识符,字节数,存储位,有效数字,数值范围,单精度型,float,4,32,6,7,3.410,-38,3.410,38,双精度型,double,8,64,15,16,-1.710,-308,1.710,308,2.5 字符型数据,2.5.1 字符常量,用一对单引号括起来的单个字符,称为字符常量。C语言中有一种称为“转,义字符”的特殊形式的字符常量,转义字符以反斜杠“”开头,将“”后面的,字符转换为另外的含义。,2-9,转义符,字符形式,含义,n,换行,从当前位置移到下一行开头,t,水平制表(跳到下一个Tab位置),b,退格,将当前位置移到前一列,r,回车,将当前位置移到本行开头,单撇号字符,反斜杠字符,双撇号字符,ddd,1,3位八进制数所代表的字符,xhh,1,2位十六进制数所代表的字符,2.5.2 字符变量,字符变量用来存放字符常量,关键字为char,只能存放一个字符,占用1个,字节内存单元。,字符数据在内存中存储的是字符的ASCII码(一个无符号整数),其形式与,整数的存储形式一样,表示范围是:0255。,在C语言中允许字符型数据与整型数据之间通用。,2-10,2.6 算术运算符和算术表达式,2.6.1 运算符及表达式简介,2.6.1.1 运算符,C语言中的运算符具有2个特点:, 运算符的优先级,C语言中,运算符的优先级共分为15级,1级最高,15级最低。, 运算符的结合性,C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。,2.6.1.2 表达式,表达式是由常量、变量、函数和运算符组成的式子。,表达式求值是按运算符的优先级和结合性规定的顺序进行的。,2-11,2.6.2 算术运算符和算术表达式,2.6.2.1 基本的算术运算符,基本算术运算符均为双目运算,有5种:加法运算符“+”、 减法运算符“-”、乘法运算符“*”、 除法运算符“/”、 求余运算符或模运算符 “%”。,用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为算术表达式,运算对象包括常量,变量、函数等。,如果一个运算符两侧的运算对象数据类型不同,要先利用自动类型转换或强制类型转换,使运算对象具有同一种数据类型,然后才能进行运算。,2-12,2.6.2.2 类型转换,数据的类型是可以转换的。,1. 自动转换,如果一个运算符两侧运算对象的数据类型不同,则系统按“先转换、后运算” 的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。,2. 强制类型转换,强制类型转换是通过类型转换运算符来实现的,一般形式为,(类型名)(表达式),其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。,2-13,double,float,unsigned,long,int,char,short,高,低,自动转换规则,2.6.2.3 自增(+)、自减(-)运算符,自增运算符(+)使单个变量的值增1,自减运算符(-)使单个变量的值减1,格式为,前置:+i , -i 在使用i之前,使i的值加(减)1,后置:i+ , i- 在使用i之后,使i的值加(减)1,2-14,2.7 赋值运算符和赋值表达式,2.7.1 赋值运算符,赋值运算符是“=”,它的作用是将一个数据或一个表达式的值赋给一个变量,赋值运算符的一般形式如下:,变量=表达式,2.7.2 复合的赋值运算符,复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的,一般格式如下:,变量 双目运算符 = 表达式,它等价于:变量 = 变量 双目运算符 (表达式)。,5个复合算术运算符:和赋值“+=”,差赋值“-=”,积赋值“*=”,商赋值“/=”,模赋值“%=”。,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式,它的一般形式为,赋值表达式的值为被赋变量的值。,2-15,2.8 逗号运算符和逗号表达式,在C语言中,逗号“,”也是一种运算符,称为逗号运算符,它把若干个表达式连接起来组成一个表达式,称为逗号表达式,一般形式为,表达式1,表达式2,表达式n,逗号表达式的求解过程是:从左到右,依次计算各表达式的值,最后一个表达式的值即为整个逗号表达式的值。,2-16,在第一章介绍了C语言程序的结构,在第二章介绍了构成程序的基本成份:常量、变量、基本数据类型、常用运算符及表达式,本章将介绍C语句概述,数据的输,入与输出,顺序结构程序设计。,3-1,第3章 顺序结构程序设计,返回目录,3.1 C语句概述,C语句用“;”做为结束,其作用是向计算机系统发出操作指令。,3.1.1 控制语句,C语言有9种控制语句。,if( )else (条件语句),switch (开关语句),for( ) (循环语句),while( ) (循环语句),dowhile( ) (循环语句),continue (结束循环语句),break (中止执行switch语句或结束本次循环语句),goto (无条件转向语句),return (从函数返回语句),3-2,3.1.2 函数调用语句,函数调用语句由一次函数调用加一个分号“;”组成。,3.1.3 表达式语句,表达式语句由表达式加一个分号“;”组成,其一般形式如下:,表达式;,3.1.4 复合语句,复合语句由花括号 把多条语句括起来组成。,3.1.5 空语句,只有一个分号“;”组成的语句,称为空语句,它什么也不执行,用作被转向点或循环,语句中的循环体。,3-3,3.2 数据的输入输出,3.2.1 字符数据的输入输出,3.2.1.1 putchar()函数(字符输出函数),putchar()函数是字符输出函数,其一般形式为:,putchar(c),功能:向显示器输出一个字符。,3.2.1.2 getchar()函数(字符输入函数),getchar()函数是字符输入函数,其一般形式为:,getchar(),功能:从键盘输入一个字符。,3-4,3.2.2 printf()函数(格式输出函数),3.2.2.1 printf函数()(格式输出函数)的格式,printf()函数是格式输出函数,其一般格式如下:,printf(格式控制字符串 ,输出表列);,功能:按指定格式向终端(显示器)输出若干任意类型的数据,。,3.2.2.2 printf()函数的格式字符,1. d,i格式字符,按带符号的十进制形式输出整数,正数不输出符号,常用d。, %d,按整型数据的实际长度输出。, %md,m代表一个正整数,m为指定输出数据的宽度。若数据位数小于m,则左端补以空,格;若数据位数大于m,则按实际位数输出。, %-md ,m代表一个正整数,m为指定输出数据的宽度。若数据位数小于m,则右端补以,空格;若数据位数大于m,则按实际位数输出。, %ld,输出长整型数据。对长整型数据,可再使用m指定输出数据的宽度。,3-5,2. o格式字符,按八进制形式输出整数,用法同d格式字符。,3. x(或X)格式字符,按十六进制形式输出整数,用法同d格式字符。,4. u格式字符,按无符号十进制形式输出整数,用法同d格式字符。,5. c格式字符,输出一个字符。, %c,输出一个字符。, %mc,m代表一个正整数,m为指定输出数据的宽度,左端补以空格。, %-mc,m代表一个正整数,m为指定输出数据的宽度,右端补以空格。,6. s格式字符,输出一个字符串。, %s,输出一个字符串, %ms,m代表一个正整数,输出的字符串占m列,如果字符串本身长度大于m,则将字,符串全部输出;如果串长小于m,则左补空格。, %-ms,m代表一个正整数,输出的字符串占m列,如果字符串本身长度大于m,则将,字符串全部输出;如果串长小于m,则右补空格。, %m.ns,输出占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右侧,,左补空格。如果nm,则m自动取n值即保证n个字符正常输出。, %-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。, %.ns,只指定了n,没指定m,自动使mn。,3-6,7. f格式字符,按小数形式输出实数。, %f,整数部分全部如数输出,并输出6位小数。但并非全部数字都是有效数字,单,精度实数的有效位数一般为7位,双精度实数的有效位数一般为16位。, %m.nf,指定输出的数据共占m列,其中有n位小数,自动四舍五入。如果数值长度,小于m,则左端补空格。, %-m.nf,指定输出的数据共占m列,其中有n位小数,自动四舍五入。如果数值长度,小于m,则右端补空格。, %.nf,只指定了n,没指定m,自动使m等于数据应占的长度。,8. e(或E)格式字符,以指数形式输出实数。, %e,系统自动给出6位小数,共13位。, %m.ne,用法同f格式字符。, %-m.ne,用法同f格式字符。, %.ne,用法同f格式字符。,9. g(或G)格式字符,根据数值大小,自动选f或e。,3-7,3.2.3 scanf()函数(格式输入函数),3.2.3.1 scanf()函数(格式输入函数)的格式,scanf()函数是格式输入函数,其一般格式如下:,scanf(格式控制字符串,地址列表);,功能:按指定的格式从终端(键盘)上把数据输入到指定的变量之中。,3.2.3.2 scanf()函数的格式字符,scanf()函数的格式字符与printf()函数类似,有d,o,x,u,c,s,f,e,使,用方式亦与printf()函数类似,这里介绍常用的格式字符d、c、f的使用。,1. d格式字符,用来输入有符号的十进制整数。, %d,输入有符号的十进制整数。, %md,m代表一个正整数,指定输入数据占m列。, %*d或%*md,表示跳过指定的输入项或指定的m列。, %ld,输入长整型数据。,3-8,2. c格式字符,用来输入单个字符。, %c,输入一个字符。, %*c,表示跳过指定的输入项。,3. f格式字符,用来输入实数,可以用小数形式或指数形式输入。, %f,用小数形式或指数形式输入实数。, %lf,用于输入double型数据。, %*f,表示跳过指定的输入项。,3-9,3.3 顺序结构程序设计,3.3.1 顺序结构程序设计概述,在顺序结构程序中,各语句是按照位置的先后次序,顺序执行的,且每条语句都会被,执行到。,3-10,使用数学库函数时的头文件,使用,scanf(),函数、,getchar(),函数等,使用算术表达式、赋值表达式等,由语句组成,的执行部分,使用,printf(),函数、,putchar(),函数等,#include ,#include ,void main(),变量定义;,输入数据,数据运算部分,输出部分,顺序结构程序的组成,3.3.2 顺序结构程序设计示例,第4章 选择结构程序设计,选择结构是C语言的三种基本结构之一。在数据处理过程中,经常需要根据不同的条件,完,成不同的处理。例如,输出a和b两个数中的较大数。要求当a大于b时,输出a;否则,输出b。,对于这种根据一定的条件选择执行路径的问题,要用选择结构来解决。,本章主要介绍条件语句中“条件”的产生与表达,两种条件语句(if语句和switch语句)的使用。,4-1,返回目录,4-2,4.1 关系运算符和关系表达式,4.1.1 关系运算符,C语言的关系运算符一共有6种,关系运算符的结合性是自左至右。,算术运算符、关系运算符、赋值运算符的运算次序为:算术运算符关系运算符赋值运算符。,高,低,关系运算符,含义,使用形式,优先级,小于,a3,同级,运算符,=,小于等于,(x+y),大于,a-3,=,大于等于,a+b=x+y,=,等于,a*b+2=x+y,同级,运算符,!=,不等于,x!=0,4.1.2 关系表达式,关系表达式:用关系运算符将两个表达式连接起来的式子,称为关系表达式。,关系表达式的值是一个逻辑值,即“真”或“假”,当关系表达式成立时,其值为“真”,不成立时,其值为“假”。,C语言中没有逻辑型数据,而是用“1”表示“真”,用“0”表示“假”。在判断一个值是否为真时,只有“0”被认为是假,所有非“0”值均被认为是“真”。,4-3,4.2.1 逻辑运算符,C语言的逻辑运算符一共有3种。,4-4,4.2 逻辑运算符和逻辑表达式,高,低,x100,逻辑或,|,(双目),x=10&x=100,逻辑与,&(双目),!(a字符串2,则strcmp()函数的返回值大于0;, 若字符串1=字符串2,则strcmp()函数的返回值等于0;, 若字符串1字符串2,则strcmp()函数的返回值小于0。,6-10,第7章 函数,一个C程序往往由多个函数组成,每个函数具有一定的功能,通过函数之间的调用来完成整个程序的任务。,本章主要介绍函数的概述、函数的定义、函数参数和函数值、函数的调用、函数的嵌套调用和递归调用、数组作函数的参数、局部变量和全局变量、动态存储变量和静态存储变量。,7-1,返回目录,7.1 概述,7.1.1 C语言程序结构,一个C程序由一个或多个源程序文件组成,一个源程序文件由一个或多个函数组成;每个源程序以一个文件形式存储,并以文件为单位进行编译。,在C语言中,所有函数定义,包括main()函数在内,都是平行的,独立的。,函数之间可以相互调用,也可以嵌套调用,函数还可以自己调用自己。习惯上把调用者称为主调函数,把被调用者称为被调函数。,main()函数是主函数,是系统定义的,它可以调用其他函数,但不允许被其他函数调用。C程序的执行总是从main()函数开始,调用其他的函数后返回main()函数,并在main()函数中结束整个程序的执行。,7.1.2 函数的分类,库函数和用户定义函数,有返回值函数和无返回值函数,无参函数和有参函数,7-2,7.2 函数的定义,7.2.1 无参函数的定义,定义格式如下:,类型标识符 函数名(),函数首部,声明部分 函数体,语句,7.2.2 有参函数的定义,定义格式如下:,类型标识符 函数名(形式参数列表),声明部分,语句,7-3,7.3 函数参数和函数的值,函数参数,形参必须是具有某种类型的变量,而实参可以是常量、 变量或表达式,但当程序执行到函数调用语句时实参一定要有确定的值。,形参在未出现函数调用时,并不占内存的存储单元,只有在函数调用时,才给形参分配存储单元,在函数调用结束时,形参所占的存储单元也随之被释放。,实参与形参的个数应相等,类型应一致或赋值兼容。,实参与形参按顺序对应,一一传递数据,实参对形参变量的数据传递是单向的“值传递”。,7.3.2 函数的返回值,C通过return语句返回函数的值,return语句的一般格式如下:,return (表达式);,或 return 表达式 ;,其功能是将表达式的值作为函数的返回值带回主调函数,并结束被调函数的执行,返回到主调函数。,如果函数值的类型和return语句中表达式的值的类型不一致,则以函数类型为准。,7-4,7.4 函数的调用,7.4.1 函数调用的一般形式,1. 无参函数调用的一般形式:,函数名(),2. 有参函数调用的一般形式:,函数名(实参列表),7.4.2 函数调用的方式,按函数调用出现在语句中的位置,将函数调用方式分为三种。,1函数语句:把函数调用作为一条语句。,2函数表达式:函数调用出现在一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算,最常见的是赋值表达式,如:c=sum(a,b)。,3函数参数:把函数的返回值作为另一个函数或下一次函数调用的实参。,7-5,调用自定义函数时,自定义函数必须存在,一般还应在主函数中对被调函数作声明,声明方式如下:,类型标识符 被调函数名(类型说明 变量名);,当被调用函数的定义出现在主函数之前,函数声明可省略。,调用库函数时,一定要将包含该函数的头文件包含到程序中。例如:,调用p
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!