




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 数组数组:整个数组是以首地址开头的一块连续的内存单元功能:存放大量相同类型数据。1.先为n个变量申请开辟连续的存储空间。2.存储的变量数据类型必须相同。3.储存的变量所占字节大小必须相同。 一维数组:一个单行存储的数组。格式:数组名常量表达式下标可以是宏定义 常量 不能是变量数组名+下标 就相当于 一个变量 就可以存放一个值。 下标放在中括号中例子: int a5 (看画图如何存储)打印地址 int a5=0,i;for(i=0;i5;i+)printf(%dn,ai); 如何初始化 数组的值。 值之间要有,隔开 完全初始化:int a5=1,2,3,4,5; 下标的引入不完全初始化:int a5=1,2,3 ; 不完全初始化的数组中,未赋值的元素系统自动赋零。(看程序演示)所有元素不初始化,的都是填充值。程序报错。 例:int a5=;(错误)int a5=0;所有先赋零值。关于下标:(看画图下标的重要性) printf(%d,i=%d,ai,i);printf(n )书上53页,(讲解宏定义) 54页a5.2 思考如何定义一个数组存储5科成绩的分数。 错误写法1:(重点)选择题必考int a5;a5=1,2,3,4,5;只有在定义数组的同时才可以给数组赋值,其它情况赋值都是错误的!错误写法2:int a5=100; 错误,应写成 int a5=100; 思考100这个值是赋给a数组的 那个元素、下标是多少。错误写法3:数组之间相互赋值int a5=1,2,3,4,5; int b5=0; b=a; b5=a5, 都是错误的,数组赋值必须通过函数找到地址和下标相对的赋值才行。常见考点:1. 一维数组赋值。 2. 一位数组中求出最大值。 3. 一维数组排序。正确的写法:for(i=0;i5;i+) bi=ai; 理解:多赋给少-错误。少赋给多会出错。 练习用while给数组赋值,数值间赋值。数组排序:(学生成绩) int a4=60,70,80,90; 用while排序解题思路1定义中间变量做交换。2遍历整个数组,找到最大的,将大的做交换对应的小数。可通过赋初值定义数组大小;int a=0,0,0,0,0,0,;int a8=0;一维数组排序(大到小)一维数组找出最大值的下标:int a9=12,423,123,3333,122,;int i=0,j,t;for(j=1;j9;j+)if(aiaj) ai=aj; t=j; printf(%d %d,ai,t); 数组找最大数是要借助标记。首先,在数组中输入n个数字,假设第一个数为最大值,将其与后面的数值一一进行比较,当遇到最大值时记录其坐标,将其与第一个数进行交换,这样就能找到一维数组中最大值了 自己理解;书上54页例4.1 4.2上机作业: 一维数组找出最小值 ? 一维数组排序(大到小)? (要求必须通过键盘给数组赋值) 真题练习:2011年9月 16 17 18 19 20 21 二维数组格式:二维数组元素的引用二维数组的元素也称为双下标变量,其表示的形式为: 数组名下标下标其中下标应为整型常量或整型表达式。例如: int a34表示a数组三行四列的元素。定义的类型名 数组名常量表达式1 常量表达式2、图解:int a34; 其中行下标可省,列下标不能省a00 a01 a02 a03a10 a11 a12 a13 a20 a21 a22 a23 二维数组初始化值 正常格式:分段赋值int a34= 1, 2, 3, 4,5, 6, 7, 8,9,10,11,12,;整体赋值int a34=1,2,3,4,5,6,7;没有赋值的自动补零值。行下标可省,列下标不能省; a 2=1,2,3,4,5,6,7,8,9;猜猜行下标为几 证明:它是5行2列 外层循环控制行下标 内存循环控制列下标 int a2=1,2,3,4,5,6,7,8,9;int i ,j,k=0;for(i=0;i5;i+)for(j=0;j2;j+) printf( %d ,aij ); printf( n );错误写法:a =1,2,3,4,5,6,7,8,9;错误写法错误写法:int ax+yy; 常见考点: 二维数组赋值: 在二维数组求最大值:真题练习:2011年9月 24 上机作业:定义一个a22二维数组,通过键盘给它赋值,输出二维数组,然后判断哪些是奇数,奇数存放在一维数组j2中,偶数存放在o2中,输出j2和o2数组。(输入3,4,5,6测试)真题练习: 2006年9月 15 17 18 19 20 21 22 23 2423题有点难重点理解22前面讲过 ,死循环 历年真题:2010年 9月 填空题 (8)(8)在C语言中,当表达式值为0时表达式的逻辑值为“假”,当表达式的值为_时表达式值为真。【例】一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。 NameMathCEnglish张807060王817161李827262赵837363周847464可设一个二维数组a53存放五个人三门课的成绩。再设一个一维数组v3存放所求得各分科平均成绩,设变量average 为全组各科总平均成绩。编程如下:main() int i,j,s=0,average,v3,a53; printf(input scoren); for(i=0;i3;i+) for(j=0;j=0)y= X5 (X0) 的值。2. 编程计算130之间是7的倍数的数值之和。2.1把7的倍数的值存放在一位数组汇中输出。3编程求出130之间的素数,打印出来。讲解书上:58页例4.5 字符数组:书上讲解。58页 用来存放字符量的数组称为字符数组。7.1.1字符数组的定义形式与前面介绍的数值数组相同。例如:char c10;由于字符型和整型通用,也可以定义为int c10但这时每个数组元素占2个字节的内存单元。int i, a4=12, 212,32, 2;for(i=0;i4;i+) printf( %cn, ai );字符数组也可以是二维或多维数组。char c510; 7.1.2字符数组的初始化 字符数组也允许在定义时作初始化赋值。例如: char c10=c, , p, r, o, g, r, a,m;赋值后各元素的值为:数组C c0的值为cc1的值为 c2的值为pc3的值为rc4的值为0c5的值为gc6的值为rc7的值为ac8的值为m其中c9未赋值,系统自动赋予0值。而在字符数组中零值以 形式出现。当对全体元素赋初值时也可以省去长度说明。例如: char c=c, ,p,r,o,g,r,a,m;这时C数组的长度自动定为9。如果你要把值输出来,你必须知道C数组的长度是多少。7.1.3字符数组的引用 【例7.8】main() int i,j;char a5=B,A,S,I,C, d,B,A,S,E; for(i=0;i=1;i+) for(j=0;j0) printf(st1st2n); if(k0) printf(st1st2”。测字符串长度函数strlen 格式: strlen(字符数组名)功能:测字符串的实际长度(不含字符串结束标志0) 并作为函数返回值。 【例7.17】#includestring.hmain() int k; static char st=C language; k=strlen(st); printf(The lenth of the string is %d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷拉丝工内部技能考核试卷及答案
- 节目审查流程执行监控工艺考核试卷及答案
- 陶瓷制品釉面涂层耐酸碱度工艺考核试卷及答案
- 豆制品酶法改性工艺效果分析工艺考核试卷及答案
- 饲草种子繁育工异常处理考核试卷及答案
- 石质文物修复师培训考核试卷及答案
- 职业教育质量评价指标构建:理念、问题与启示
- 新能源汽车电驱总成系统及设备管理测试卷附答案
- 专业证书试题模板及答案
- 建筑专业理论试题及答案
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 2025年审计部招聘考试模拟题及答案详解
- Bowtie安全分析培训课件
- 退役军人优抚政策课件
- 财务遴选笔试题及答案
- (2025秋新版)人教版二年级数学上册全册教案(教学设计)
- 六年级上册音乐课教案
- 肿瘤病人疼痛评估与干预策略
- 计算机视觉技术课件
- 初中道德与法治新课标理念解读
- GB/T 5783-2016六角头螺栓全螺纹
评论
0/150
提交评论