资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,PPT,模板下载:,/moban/,行业,PPT,模板:,/hangye/,节日,PPT,模板:,/jieri/PPT,素材下载:,/sucai/,PPT,背景图片:,/beijing/PPT,图表下载:,/tubiao/,优秀,PPT,下载:,/xiazai/PPT,教程:,/powerpoint/,Word,教程:,/word/Excel,教程:,/excel/,资料下载:,/ziliao/PPT,课件下载:,/kejian/,范文下载:,/fanwen/,试卷下载:,/shiti/,教案下载:,/jiaoan/,字体下载:,/ziti/,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,YCF,(中职)编程语言基础C语言模块4教学课件,模块,4,数组,任务,1,一维数组,任务,2,二维数组,任务,3,字符数组及字符串处理函数,任务,1,一维数组,4.1.1,定义一维数组,定义一维数组的格式为,:,定义了一个一维数组,数组名称为,a,,数组中数组元素的个 数为,100,,数组元素的类型为整型,可用的下标范围是,0 99,说明,:,(1),数组名的命名原则遵循标识符的命名规则,本例中数组名称为,a,(2),整型常量表达式表示数组元素的个数,(,数组的长度,),,可以是整型常量或符号常量,不允许是变量。整型常量表达式在说明数组元素个数的同时也确定了数组元素下标的范围,下标从,0,开始,至整型常量表达式减,1,。,下一页,返回,任务,1,一维数组,(3),类型说明是指数据元素的类型,可以是基本数据类型,也可以是构造数据类型。类型说明确定了每个数据占用的内存字节数,如整型占,2,个字节,实型占,4,个字节,双精度占,8,个字节,字符占,1,个字节。,(1),在同一个类型说明语句中可以同时定义几个数组,如,(2),每个数组元素占用一个存储单元,数组的输入和输出、计算是对单个元素进行的。,(3),数组元素的下标可以是表达式。,(4)C,语言编译程序为数组分配了一片连续的存储空间。,(5)C,语言规定,数组名是数组的首地址,即,上一页,返回,下一页,任务,1,一维数组,4.1.2,引用一维数组元素,数组必须先定义,然后使用。,C,语言规定,只能逐个引用数组元素,而不能一次引用整个数组。,数组元素的表示形式为,:,【,例,4-1】,数组元素引用示例。,上一页,返回,下一页,任务,1,一维数组,4.1.3,初始化一维数组,可以用赋值语句或输入语句使数组中的元素得到值,但占运行时间。可以使数组在运行之前初始化,即在编译阶段使之得到初值。对数组元素的初始化,可以用以下方法实现。,(1),在定义数组时对数组元素赋以初值。例如,:,(2),可以只给一部分元素赋值。例如,:,上一页,返回,下一页,任务,1,一维数组,(3),如果想使一个数组中全部元素的值为,0,,可以写成,:,(4),在对全部数组元素赋初值时,可以不指定数组长度。例如,上一页,返回,下一页,任务,1,一维数组,4.1.4,应用一维数组解决实际问题,【,例,4-2】,输入,10,个整数,存入数组,找出其中的最大值。,上一页,返回,下一页,任务,1,一维数组,【,例,4-3】,输入,10,个整数,存入数组,将其按照从小到大的 顺序排列。,上一页,返回,任务,2,二维数组,4.2.1,二维数组的定义,只有一个下标的数组称为一维数组,其数组元素称为单下标变量。有多个下标的数组称为多维数组,其数组元素称为多下标变量。在多维数组中最常用的是二维数组。,定义二维数组的一般形式为,:,上一页,返回,下一页,任务,2,二维数组,4.2.2,引用二维数组元素,二维数组中的元素也称为双下标变量,其表示形式为,:,数组说明的方括号中给出的是某一维的长度,即可取下标的最大值,;,而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。,上一页,返回,下一页,任务,2,二维数组,例,4-4,计算矩阵的两条对角线上元素的和。,上一页,返回,下一页,任务,2,二维数组,4.2.3,初始化二维数组,二维数组初始化也是在类型声明时给各个数组元素赋初值。二维数组可按行分段赋值,,1,也可按行连续赋值,这两种赋初值的结果相同。,1.,按行分段赋值,这时,把一行的内容括起来。例如,:,初始化后的数组元素为,:,上一页,返回,下一页,任务,2,二维数组,2.,按行连续赋值,这时,给数组元素连续赋值,也就是把所有数据写在一起。例如,初始化后的数组元素为,:,上一页,返回,下一页,任务,2,二维数组,4.2.4,应用二维数组解决实际问题,【,例,4-5】,找出,3 x4,矩阵所有元素中的最大值,并记录其行号和列号。解题思路,:,定义二维数组,a34,,最大值用变量,max,表示,变量,row,表示最大值所在的行号,变量,colum,表示最大值所在的列号。,先将矩阵中的第一个数看做是最大值,即起始状态为,max=a00,,则,:row=0,colum=0,。将后面的元素按行优先顺序依次和,max,进行比较,若当前值比最大值大,则将当前值代替原来的,max,值,同时记录当前值所在的行号和列号。,上一页,返回,下一页,任务,2,二维数组,上一页,返回,下一页,任务,2,二维数组,上一页,返回,下一页,任务,2,二维数组,【,例,4-6】,一个学习小组有,5,个人,每个人有,3,门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。,上一页,返回,下一页,任务,2,二维数组,可设一个二维数组,a5 3,,存放,5,个人,3,门课的成绩,;,再设一个一维数组,v3,,存放所求得各分科的平均成绩,设变量,1,为全组各科总平均成绩。编程如下,:,上一页,返回,下一页,任务,2,二维数组,上一页,返回,任务,3,字符数组及字符串处理函数,4.3.1,字符数组的定义、初始化及引用,1.,字符数组的定义,用来存放字符型数据的数组就是字符数组,一个元素存放一 个字符。字符数组的定义格式为,:,2.,字符数组的初始化,字符数组的初始化有以下几种方法。,将每个元素的字符逐一写出。例如,:,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,只给部分元素赋初值,例如,:,用字符串常量为字符数组赋初值。例如,:,此时是将字符串常量中的每个字符顺序赋值给字符数组的元素。但要注意,字符串的末尾有一个结束标志,所以以字符串常量为字符数组赋初值时,数组的长度至少要比字符串常量所含的字符数多,1,。,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,3.,字符数组的引用,字符数组可以像前面介绍的数值型数组一样取用其数组元素,但由于字符数组通常用以处理字符串,所以对字符数组的处理一般是在输入输出时使用格式控制符,”%s”,,将字符数组名,(,数组存储首地址,),置于相应的输入输出项位置。,例如,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,字符串的输入与输出,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,4.3.2,字符串处理函数,C,语言提供了丰富的字符串处理函数,这些函数大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数,在使用前应包含头文件“,stdio.h”;,使用其他字符串函数前则应包含头文件,”stringy.h,。,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,1.,用,scanf(),函数输入字符串,使用,for,循环来实现将输入的字符串存放到字符数组中,非常繁琐。其实,只需要使用一条,scanf,语句或者一条,gets,语句均可实现上述功能,用,scanf,语句实现的程序如下,:,使用格式,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,2.,用,gets(),函数输入字符串的格式,使用格式:,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,3.,使用,printf(),函数输出字符串,将一个字符数组中已存有的字符依次输出,如果使用,printf,语句和,puts,语句实现,就比用,for,语句逐个字符输出相对简便。先看用,printf,语句实现该功能的完整程序。,printf,语句的使用格式为,:,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,4.,使用,puts(),函数输出字符串,使用格式,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,5.,字符串长度函数,strlen(),在字符数组的操作中,经常需要测试一个字符数组,(,串,),的长度,实际上就是查看该字符数组中已占用的空间大小和计算该字符数组中剩余空间大小。,求字符串的长度使用,strlen(),函数,,strlen(),函数的使用格式比较简单,其用法如下。,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,6.,字符串的复制函数,strcpy(),把一个字符数组中的字符复制到另,1,个字符数组中,可以使用字符串赋值函数,strcpy(),来实现。相应的程序如下,:,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,7.,字符串的比较函数,strcmp(),在数组的操作中,有时需要比较两个字符串的大小,这时就要用到,strctmp(),函数,,strctmp,语句的使用格式为,:,该语句的执行规则如下。,两个数组按,ASCII,码的大小从左到右逐个字符进行比较,直到出现不同的字符为止。如果全部字符都相同,就认为两个字符数组相同,;,如出现不相同的字符,结果以第,1,个不同字符的比较结果为准。比较结果有以下,3,种情况,:,如果数组,1(,字符串,1)=,数组,2(,字符串,2),,函数返回,0,值。,如果数组,1(,字符串,1),数组,2(,字符串,2),,函数返回,1,个正数。,如果数组,1(,字符串,1),数组,2(,字符串,2),,函数返回,1,个负数。,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,4.3.3,字符函数的综合应用,前面已介绍了有关字符串操作的几个常用函数及其用法,下面通过一个实例来说明这些函数的综合应用方法。,【,例,4-8】,定义两个字符数组,在其中存入随机输入的字符串,然后比较两个字符串的大小,输出相应位置上相同的字符,并将短字符串复制到长字符串中去。若长度相等则不复制。,上一页,返回,下一页,任务,3,字符数组及字符串处理函数,分析要完成该题目应完成的工作。,定义字符数组。,输入字符串。,查找相应位置上是否有相同的字符,若有则输出。,判断两个字符串的长短。,把短字符串复制到长字符串中去。,上一页,返回,任务,3,字符数组及字符串处理函数,上一页,返回,
展开阅读全文