电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C程序设计 教学课件 ppt 作者 赵山林 9

51页
  • 卖家[上传人]:E****
  • 文档编号:89343339
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:360.50KB
  • / 51 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第9章 数组,9.1 数组的概念 9.2 一 维 数 组 9.3 多维数组的定义和使用 9.4 字符数组及字符串 9.5 数组作函数参数,9.1 数组的概念,数组是指一组相同类型数据的有序集合,由一个统一的数组名标识这一组数据。数组的每一个成员称作数组元素,用下标来标识数组元素在该数组中的位置。,把数学中的集合和数组对照一下。 假如有集合 s=1,2,3,4,5,6,7,8,9,10 要表示集合中某个元素,数学中可以描述为si ,其中s是集合的名字,i表示该元素在集合中的序号。为了表示C语言数组中的每一个元素,也必须确定数组名和该元素在数组中的位置信息。 数组名和该元素在数组中的位置信息是确定数组元素两个不可缺少的要素。在C语言中,数组元素的位置信息是由下标表示的,下标等同于集合中的序号。,9.2 一 维 数 组,9.2.1 一维数组的定义 由单一下标标识数组元素的数组称为一维数组。 一维数组的定义形式为: 类型标识符 数组名元素个数; 数组名必须符合标识符的规定。元素个数,又称为数组长度,只能用整型常量表达式表示。 数组和变量一样,也必须占据一定的存储空间。进行存储空间分配时,系统根

      2、据数组的长度和数组元素的类型确定分配存储单元的个数,C语言中数组元素的存储是连续的,数组名就是所分配内存空间的起始地址。,如整型数组a,共有10个元素,每个元素分配2个字节,共分配210个字节的存储单元,,图9.3 数组a的存储示意图,9.2.2 一维数组元素的初始化 数组初始化的一般形式如下: 类型标识符 数组名元素个数=元素值表列; (1)中的数组元素值与数组的每一个元素具备左对应关系。 (2)中的元素值表列,可以是数组所有的元素的初值,也可以是前面部分元素的初值,元素值之间使用逗号分割。 (3)当给数组部分元素赋初值时,其余元素的值为0。 (4)当对全部元素赋初值,数组长度可以省略,但 不能省略。 (5)数组初始化的赋值方式只能用于数组的定义,定义之后再赋值只能一个元素一个元素地赋值。,9.2.3 一维数组元素的引用 定义一个数组,相当于一次定义了许多变量。 一维数组元素的引用形式: 数组名下标 例如:a0、ak、ai+1等。 下标可以是整型常量、整型变量或者整型表达式,其范围是0L 1(L表示数组长度)。 C语言不检查数组的边界。所以当引用数组元素的下标超越边界时,系统不会提示

      3、错误,但是可能导致其他变量甚至程序被破坏。,例9.1 数组元素引用示例。 示例1: main( ) int i, a10; for (i=0;i10;i+) scanf(“d“, ,9.2.4 一维数组举例 使用一维数组可以实现实际应用中的多种数学模型,如队列、数列、堆栈等数据结构。在一维数组中,数组中的各个元素都是相关联的,它们是相同数据类型的数据的集合。在实际应用中,程序设计者应注意分析数据间的关系,合理地使用数组元素,才能编制出高效率的程序。本节从下面几个例子介绍一维数组的编程方法。,例9.2 利用数组求出Fibonacci数列的前40项。 在循环一章中讲述了利用变量计算Fibonacci数列之和的题目。数列的数据模型常用数组来表示。 main( ) int j; float f40; f0=1;f1=1; for(j=2;j40;j+) fj=fj-1+fj-2; for (j=0;j40;j+) printf(“10.0f“,fj); printf(“n“); ,例9.4 输入10个整数,输出最大值。 main() int array10,max,k; for(k=0;k10

      4、;k+) scanf(“d“, ,例9.5 用选择法对N个数排序,图9.5 例9.5的流程图,#define N 10 main( ) int aN,min,temp,i,j; for (i=0;iaj) min=j; temp=amin;amin=ai-1;ai-1=temp; for(i=0;iN;i+) printf(“5d“,ai); printf(“n“); ,9.3 多维数组的定义和使用,9.3.1 多维数组的定义 1二维数组的定义 二维数组的定义形式为: 类型标识符 数组名行元素个数列元素个数; 行元素个数是数组的行数(假定用M表示),列元素个数是数组的列数(假定用N表示)。,例如: int a23; 表示数组a由2行3列共6个整型元素组成。 二维数组中元素的存放顺序是按行存放的,即按顺序先存放第0行的数组元素,再存放第1行的数组元素。,2多维数组的定义 多维数组的定义类似二维数组的定义,格式为: 类型标识符 多维数组名元素个数1元素个数2元素个数n; 例如, float a102030;,9.3.2 二维数组元素的初始化 所谓初始化就是给数组元素赋初始值。 二维数组的初

      5、始化方法有以下几种形式。 (1)按行对二维数组初始化。 例如: int a23=1,1,1,4,4,4; (2)按数组的存储顺序赋初值。 例如: int b22=1,2,3,4; 表示将1初始化给b00,2初始化给b01,3初始化给b10,4初始化给b11。,二维数组初始化时,注意以下几点。 (1)对部分元素赋值,其余元素的值为0。 (2)如果对数组元素全部赋初值,定义数组时行长度可以省略,列长度不能省略。 (3)同一维数组一样,二维数组初始化的赋值方式只能用于数组的定义,定义之后再赋值只能单个元素赋值。,9.3.3 多维数组元素的使用 1二维数组中元素的引用形式 数组名下标1下标2,例9.6 二维数组元素引用示例。 main() int m,n; int x34,y34; for(m=0;m3;m+) for(n=0;n4;n+) xmn=m; for(m=0;m3;m+) for(n=0;n4;n+) ymn=n; printf(array x:n); for(m=0;m3;m+) for(n=0;n4;n+) printf(3d,xmn); printf(n); printf(a

      6、rray y:n); for(m=0;m3;m+) for(n=0;n4;n+) printf(3d,ymn); printf(n); ,程序运行的结果如下: array x: 0 0 0 0 1 1 1 1 2 2 2 2 array y: 0 1 2 3 0 1 2 3 0 1 2 3,例9.8 分别求某班数学成绩、语文成绩的最高分、最低分和平均分。 设某班有N个学生,应该定义两个一维数组存储该班的数学成绩和语文成绩。或者,定义一个二维数组存储该班的数学和语文成绩。例如,定义数组 float score2N;用第0行数组元素存储数学成绩,第1行数组元素存储语文成绩,列号表示学生的学号。 求最高分、最低分和平均分就是求成绩的最大值、最小值和平均值。定义另一个数组float result23,第0行数组元素、第1行数组元素分别存储数学、语文的最高分、最低分和平均分。具体算法如图9.9所示。,图9.9 例9.8的流程图,根据流程图编写程序如下。 #define M 2 /*功课门次 */ #define N 35 /*班级人数*/ #define K 3 /*三种成绩*/ main( )

      7、 float sum,scoreMN; float max,min, resultMK; float t; int i,j; for(i=0;iM;i+) for(j=0;jN;j+) scanf(“f“, ,for(i=0;iscoreij) min=scoreij; ,resulti0=max; resulti1=min; resulti2=sum/N; for (i=0;iM;i+) printf(“第d门课程的成绩:n“,i); printf(“最高分:.2f “,resulti0); printf(“最低分:.2f “,resulti1); printf(“平均分:.2f “,resulti2); pritnf(n); ,9.4 字符数组及字符串,字符数组是指数组元素是字符型数据的数组,它的每个数组元素能存储一个字符型数据。 9.4.1 字符数组的定义、引用及初始化 1字符数组的定义 字符数组的定义方法同前面介绍的整型、实型数组的定义相同。 例如: char s110,s2280; 表示定义s1是一维字符数组,s2是二维字符数组。,2字符数组和字符串的关系 C语言通过字符数组

      8、来描述字符串。如果某一字符数组中包含有字符0时,该字符数组可以作为字符串处理,此时,字符数组名类似于其他高级语言中的字符串变量名,简称串名。 在使用字符串时,程序设计者只需关心字符串的有效字符。字符数组中0前的字符的个数就是字符串有效字符的个数,通常称为字符串长度。在前面章节中讲述过printf函数使用s格式输出字符串时,printf()函数判断输出是否结束的标志就是0。,3字符数组元素的初始化 (1)按字符方式初始化。 (2)把一个字符串赋给字符数组。 例如: char s120=“123abcd#tm“; /*数组长度是20,把字符串常量赋给字符数组*/ char s2=“123abcd#tm“; /*花括号可以省略*/ char s3320= “123“,“abdc“; /*2个字符串常量赋给二维字符数组*/,4字符数组元素的引用 可以单个引用字符数组元素,也可以将字符数组作为字符串来使用。 (1)按数组元素引用。 具体引用形式如下。 数组名下标 例如: #include “stdio.h“ main() char f20; int k; for (k=0;k20;k+) sca

      9、nf(“c“, ,(2)按字符串引用。例如: main() char str1128,str1128; scanf(“ss“,str1,str2); printf(“sn,sn“,str1,str2); ,9.4.2 字符串及字符串处理函数 下面介绍几个常用的字符串处理函数。 1字符串输入函数gets() gets()函数调用形式为: gets(字符数组名) 其功能是从终端输入一个字符串,并把该字符串存储到字符数组中。,例如: #include “stdio.h“ main() char s128; gets(s); printf(“sn“,s); ,2字符串输出函数puts() puts()函数的调用形式为: puts(数组名) 或 puts(字符串常量),3字符串拷贝函数strcpy() strcpy()函数的调用形式为: strcpy(字符数组1,字符串2) 其功能是将字符串2复制到字符数组1。字符数组1只能是字符数组,字符串1既可以是字符数组,也可以是字符串常量。,4字符串连接函数strcat() strcat()函数的调用形式为: strcat(字符数组1,字符串2) 其功能是连接两个字符串,把字符串2连接到字符数组1后面,结果放到字符数组1中。,5字符串比较函数strcmp() strcmp()函数的调用形式为: strcmp(字符串1,字符串2) 其功能是比较两个字符串的大小。根据函数

      《C程序设计 教学课件 ppt 作者 赵山林 9》由会员E****分享,可在线阅读,更多相关《C程序设计 教学课件 ppt 作者 赵山林 9》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.