




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称可修改COURSETITLE 课程名称可修改COURSETITLE NAME可修改
课程名称可修改COURSETITLE NAME可修改
第6章数组任务1一维数组的定义、引用及应用一维数组的语法格式。一维数组的定义与引用。知识目标教学目标技能目标1.会定义与引用一维数组。2.会使用一维数组进行算法设计与实现。3.会调试和运行程序。1.学习过程中形成乐于探究的意识和敢于创新的精神。2.养成主动与他人交流合作的精神。素质目标1.一维数组的定义提纲2.一维数组的初始化及元素引用3.一维数组的应用实例1.一维数组定义定义说明如何处理一个班学生的学习成绩?一行文字怎样存储?一个矩阵怎样存储?这些数据的特点:具有相同的数据类型。为了很方便地使用这些数据,C语言提供了一种构造数据类型:数组。一组具有相同数据类型的数据的有序集合。1.一维数组定义定义:一维数组用来存放多个相同类型数据组成的一个集合。一般形式:数据类型说明符数组名[长度];
例如:定义一个含有5个元素的一维数组,代码应该书写为:inta[5];
存储空间表示图
:定义说明a[0]a[1]a[2]a[3]a[4]1.一维数组定义定义说明注意说明:(1)数组名的命名规则必须遵循标示符的命名规则。(2)长度必须是整数,整型常量或整型常量表达式来表示,不能使用变量或含有变量的表达式,长度必须用方括号括起来。(3)数据类型说明符可以是基本类型,也可以是构造类型。(4)数组中的元素用数组名和下标相结合来区分,下标是从0开始。(5)数组名等价于数组的首地址,也就是数组中第一个元素的地址。即a与&a[0]等价。
例如:intb[3+4];是合法的。
floatc[n];doubled[n+1];是非法的。a[2]是数组中的第3个元素。1.一维数组定义定义说明注意说明:(1)数组名的命名规则必须遵循标示符的命名规则。(2)长度必须是整数,整型常量或整型常量表达式来表示,不能使用变量或含有变量的表达式,长度必须用方括号括起来。(3)数据类型说明符可以是基本类型,也可以是构造类型。(4)数组中的元素用数组名和下标相结合来区分,下标是从0开始。(5)数组名等价于数组的首地址,也就是数组中第一个元素的地址。即a与&a[0]等价。
例如:intb[3+4];是合法的。
floatc[n];doubled[n+1];是非法的。a[2]是数组中的第3个元素。2.初始化及引用初始化元素引用一维数组初始化:(1)在定义数组时,赋给数组各元素的初值。(2)数组的长度可以省略不写。(3)数组中部分元素初始化,则长度不能省略,其他没有赋值的元素的初始值为0。(4)数组中的元素初始化时,括号中只有一个零。例如:inta[3]={3,1,5};
例如:intb[]={2,7,9,4};
例如:intc[5]={5,2,9};
c[3]和c[4]的初值为0。例如:floatd[4]={0};
4个元素的初值都为0.0。2.初始化及引用初始化元素引用数组引用格式:数组名[下标]例如:inta[5]={2,7,9,4,3};下标为整数,从0开始,最大值为长度-1,下标要用方括号括起来。a[0]a[1]a[2]a[3]a[4]274398如果执行语句a[2]=8,结果会变化。3.应用实例输入10个学生的某一门功课成绩,求出这些学生该门功课的平均成绩、最高分和最低分?语句编写main(){}floata[10],max,min;inti;floatsum=0,ave;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){sum=sum+a[i];//累加求总成绩if(a[i]>max)max=a[i];//求最高分if(a[i]<min)min=a[i];//求最低分}printf(“平均分%.2f,最高分%f,最低分%f.\n",ave,max,min);
运行结果90808875986778959385↙平均分84.90,最高分98,最低分67.max=a[0]; min=a[0];ave=sum/10;//求平均成绩算法设计如下:1、定义一个浮点型数组a,长度为10;2、通过scanf语句进行数组元素赋值;3、将第一个元素设为最高分和最低分;4、通过累加求和得到10学生的总成绩,同时通过比较得到最高分和最低分;5、总分除以10就得到平均成绩;6、输出平均分、最高分和最低分;3.应用实例
对10个数组元素依次赋值,要求按逆序输出。语句编写main(){}inta[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--){printf(“%-5d”,a[i]);}printf(“逆序输出为:");
运行结果90808875986778959385↙85939578679875888090算法设计如下:1.定义一个整型数组a,长度为10;2.使用循环结构通过scanf语句进行数组元素赋值;3.使用循环结构将数组元素逆序输出。printf(“请输入10个数组元素:");
用冒泡算法对5个数进行从小到大排列。算法原理:3.应用实例排序过程:(1)比较第一个数与第二个数,若a[0]>a[1],则交换;
然后比较第二个数与第三个数;
依次类推,
直至第4个数和第5个数比较为止——第一趟冒泡排序,
结果:最大的数
被安置在最后一个元素位置上。(2)对前4个数进行第二趟冒泡排序,结果使次大的数被安置在第4个元素位置。(3)重复上述过程,共经过4趟冒泡排序后,排序结束。89542859428549285429大数沉底,小数起泡a[0]a[1]a[2]a[3]a[4]for(i=0;i<4;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}985423.应用实例
执行过程:第一趟语句编写a[0]a[1]a[2]a[3]a[4]for(i=0;i<3;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}3.应用实例
执行过程:第二趟语句编写85429584295482954289a[0]a[1]a[2]a[3]a[4]for(i=0;i<2;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}3.应用实例
执行过程:第三趟语句编写542894528942589a[0]a[1]a[2]a[3]a[4]3.应用实例
执行过程:第四趟4258924589for(i=0;i<1;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}语句编写3.应用实例for(i=0;i<4;i++)if(a[i]>a[i+1]){……}for(i=0;i<3;i++)if(a[i]>a[i+1]){……}for(i=0;i<1;i++)if(a[i]>a[i+1]){……}for(i=0;i<4-j;i++)if(a[i]>a[i+1]){……}for(j=0;j<4;j++)算法设计如下(双层循环):第一趟第二趟第四趟for(i=0;i<3;i++)if(a[i]>a[i+1]){……}第三趟用冒泡算法对5个数进行从小到大排列。语句编写main(){}inta[5]={9,8,5,4,2},i,j,t;for(i=0;i<4-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<=4;i++)printf("%d",a[i]);运行结果2
4589for(j=0;j<4;i++){}算法设计如下:1、数据的输入;2、数据的输出;3、每一趟比较程序设计;4、趟数控制的程序设计;3.应用实例任务小结1.学会定义与引用一维数组。2.学会使用一维数组进行算法设计与实现。3.学会调试和运行程序。我学会了什么?课程名称可修改COURSETITLE 课程名称可修改COURSETITLE NAME可修改
课程名称可修改COURSETITLE NAME可修改
第6章数组任务2字符数组的定义、引用及应用字符数组的语法格式。字符数组的定义与引用。知识目标教学目标技能目标1.会定义与引用字符数组。2.会使用字符数组进行算法设计与实现。3.会调试和运行程序。1.学习过程中形成乐于探究的意识和敢于创新的精神。2.养成主动与他人交流合作的精神。素质目标1.字符数组的定义、初始化及元素引用提纲2.字符串定义及相关函数3.字符数组应用实例1.字符数组其数组元素的数据类型为字符型变量,关键字为char。一般形式:char数组名[长度];
例如:charch[5];该代码表示定义ch为一个字符数组,在内存中占据连续5个字节的存储单元,每个存储单元分别存放一个字符。存储空间表示图
:ch[0]ch[1]ch[2]ch[3]ch[4]‘h’‘e’‘l’‘l’‘o’定义初始化
元素引用一行文字怎样存储?1.字符数组定义:其数组元素的数据类型为字符型变量,关键字为char。一般形式:char数组名[长度];
例如:charch[5];该代码表示定义ch为一个字符数组,在内存中占据连续5个字节的存储单元,每个存储单元分别存放一个字符。存储空间表示图
:ch[0]ch[1]ch[2]ch[3]ch[4]‘h’‘e’‘l’‘l’‘o’定义初始化
元素引用1.字符数组定义初始化元素引用一维数组初始化:(1)在定义数组时,赋给字符数组各元素的初值。(3)字符数组中部分元素初始化,则数组的长度不能省略不写,其他没有赋值的元素的初始值为’\0’
例如:charch[5]={‘h’,‘e’,‘l’,‘l’,‘o’};
例如:charch[]={‘h’,‘e’,‘l’,‘l’,‘o’};
例如:charch[5]={‘h’,‘e’,‘l’,‘l’};其中ch[4]的初值为‘\0’。(2)字符数组的长度也可以省略不写。1.字符数组定义
初始化元素引用字符数组引用格式:字符数组名[下标]例如:charch[]={‘h’,‘e’,‘o’,‘l’,‘o’};下标为整数,从0开始,最大值为长度-1,下标要用方括号括起来。ch[0]ch[1]ch[2]ch[3]ch[4]‘h’‘e’‘l’‘o’‘o’‘l’如果执行语句ch[2]=ch[3],结果会变化。运行结果语句编写main(){}charch[12]={'G','o','o','d','','m','o','r','n','i','n','g'};
inti;for(i=0;i<12;i++)printf("%c",ch[i]);Goodmorning2.字符串定义:字符串一般使用字符数组来处理,字符串的结束标志’\0’也要存放在该字符数组中。介绍处理函数例如:charch[6]={‘h’,‘e’,‘l’,‘l’,‘o’,‘\0’
};存储空间表示图
:ch[0]ch[1]ch[2]ch[3]ch[4]ch[5]‘h’‘e’‘l’‘l’‘o’‘\0’另外一种简单的赋值方法:charch[6]=“hello”;同上面赋值方法等价,系统自动在末尾加‘\0’。2.字符串1、字符串输出函数puts():介绍处理函数一般形式:puts(字符数组名);函数作用:字符串输出函数puts()来自头文件stdio.h,该函数的作用是在显示器上显示一个字符串。
运行结果语句编写main(){}chara[11]="agoodman";puts(a);agoodman2.字符串2、字符串输入函数gets()介绍处理函数一般形式:gets(字符数组名);函数作用:字符串输入函数gets()来自头文件stdio.h,该函数的作用是从键盘上接收一个字符串,存放在字符数组中,最后在字符串末尾自动加上结束标志’\0’。运行结果语句编写main(){}chara[11];printf("请输入一个字符串:");gets(a);printf("该字符串显示为:");puts(a);请输入一个字符串:agoodman↙该字符串显示为:agoodman2.字符串3、字符串连接函数strcat()介绍处理函数一般形式:strcat(字符数组1名,字符数组2名);函数作用:字符串连接函数strcat()来自头文件string.h,该函数的作用是把字符数组2中的字符串连接到字符数组1中字符串后面。
运行结果语句编写main(){}chara[20],b[20];printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);strcat(a,b);printf("字符串分别为:\n");puts(a);puts(b);请输入第一个字符串:abcd↙字符串分别为:abcd12341234请输入第二个字符串:1234↙2.字符串4、字符串复制函数strcpy()介绍处理函数一般形式:strcpy(字符数组1名,字符数组2名);函数作用:字符串复制函数strcpy()来自头文件string.h,该函数的作用是把字符数组2中的字符串复制到字符数组1中,末尾自动加上结束标志’\0’。
运行结果语句编写main(){}chara[20],b[20];printf("请输入第一个字符串:");gets(a);printf("请输入第二个字符串:");gets(b);strcpy(a,b);printf("字符串分别为:\n");puts(a);puts(b);请输入第一个字符串:abcd↙字符串分别为:12341234请输入第二个字符串:1234↙2.字符串5、字符串比较函数strcmp()介绍处理函数一般形式:strcmp(字符数组1名,字符数组2名);函数作用:字符串比较函数strcmp()来自头文件string.h,该函数的作用是按ASCII码依次比较2个数组中的字符串,并带回一个返回值。运行结果语句编写main(){}chara[20],b[20]="a1b2c3d4";inti;printf("请输入一个密码:");gets(a);i=strcmp(a,b);if(i==0)printf("密码正确\n");elseprintf("密码不正确\n");请输入一个密码:a1b2c3d4↙密码正确字符串1=字符串2,返回值为0字符串1>字符串2,返回值>0字符串1<字符串2,返回值<02.字符串6、求字符串长度函数strlen()介绍处理函数一般形式:strlen(字符数组名);函数作用:函数strlen()来自头文件string.h,该函数的作用是求字符数组中字符串的实际字符个数,不包括字符串结束的标志’\0’。运行结果语句编写main(){}chara[20];inti;printf("请输入一个字符串:");gets(a);i=strlen(a);printf(“字符数组a长度:%d\n",i);请输入一个字符串:student↙字符数组a长度:72.字符串7、大写字母转换小写字母函数strlwr()介绍处理函数一般形式:strlwr(字符数组名);函数作用:函数strlwr()来自头文件string.h,该函数的作用是将字符数组中字符串的大写字母转换成小写字母。运行结果语句编写main(){}chara[20];printf("请输入一个字符串:");gets(a);strlwr(a);printf("字符串转换后:");puts(a);请输入一个字符串:GoodMan↙字符串转换后:goodman2.字符串8、小写字母转换大写字母函数strupr()介绍处理函数一般形式:strupr(字符数组名);函数作用:函数strupr()来自头文件string.h,该函数的作用是将字符数组中字符串的小写字母转换成大写字母。运行结果语句编写main(){}chara[20];printf("请输入一个字符串:");gets(a);strupr(a);printf("字符串转换后:");puts(a);请输入一个字符串:GoodMan↙字符串转换后:GOODMAN3.应用实例从键盘上输入一串字符,将字符串里的小写字母变成大写字母,其他字符不变并全部显示出来。(不使用库函数中的strupr()函数)
算法设计如下:1、定义一个字符数组a;2、输入一个字符串存放在数组a中;3、依次读取字符串的每个字符;4、如果为小写字母,则变成大写字母;5、输出字符数组a;运行结果语句编写main(){}chara[100];inti;printf("请输入一个字符串:");gets(a);for(i=0;a[i]!='\0';i++){}printf("字符串转换后:");puts(a);请输入一个字符串:GoodManif((a[i]>='a')&&(a[i]<='z'))a[i]=a[i]-32;字符串转换后:GOODMAN任务小结1.学会定义与引用字符数组。2.学会使用字符数组进行算法设计与实现。3.学会调试和运行程序。我学会了什么?课程名称可修改COURSETITLE 课程名称可修改COURSETITLE NAME可修改
课程名称可修改COURSETITLE NAME可修改
第6章数组任务3二维数组的定义、引用及应用二维数组的语法格式。二维数组的定义与引用。知识目标教学目标技能目标1.会定义与引用二维数组。2.会使用二维数组进行算法设计与实现。3.会调试和运行程序。1.学习过程中形成乐于探究的意识和敢于创新的精神。2.养成主动与他人交流合作的精神。素质目标1.二维数组的定义提纲2.二维数组的初始化及元素引用3.二维数组的应用实例课程导入如何体现矩阵的数据关系?a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]122356371855行、列的关系1.二维数组定义定义:定义一般形式:数据类型说明符数组名[常量表达式1][常量表达式2];
例如:inta[2][3];含有2行3列共6个元素存储空间表示图
:定义说明0120a[0][0]a[0][1]a[0][2]1a[1][0]a[1][1]a[1][2]1.二维数组定义定义说明注意说明:(1)二维数组中的每个元素都有2个下标,都必须分别放在单独的方括号内。(2)二维数组定义中常量表达式1表示该数组具有的行数,常量表达式2表示该数组具有的列数;两个数字的乘积是该数组的元素的个数。
(3)二维数组的存放规律是按行存储的。
例如:intb[3,4];是非法的。
floats[3][4];含有12个元素。intb[2][3];
存储过程:a[0][0]→a[0][1]→a[0][2]→a[1][0]→a[1][1]→a[1][2]2.初始化及引用初始化元素引用二维数组初始化:(1)按行给二维数组所有元素初始化。(2)按存储顺序给二维数组所有元素初始化。(3)二维数组第1维长度可以省略。(4)对部分元素赋初值。例如:intb[3][2]={{1,6},{2,5},{3,4}};例如:intd[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
例如:intarray[][3]={1,3,9,2,4,6,5,7,8};
例如:intarray[2][3]={1,3,9};2.初始化及引用初始化元素引用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖州湖州雷博人力资源服务有限公司招聘笔试参考题库含答案解析
- 2025年河南信阳建投投资集团有限责任公司招聘笔试参考题库含答案解析
- 2025山东购房合同范本
- 病理生理学复习考试习题
- 消防安全的2024年工作计划(15篇)
- 2025《营销策划合同》
- 别墅建筑装饰工程施工方案
- 2025年怒江货运从业资格证题库
- 函数调用格式
- 海绵25d测试标准
- 新教材高中生物选择性必修2课件:1 2 种群数量的变化(人教版)
- 车辆租赁服务保障计划
- 《装配式混凝土建筑》全套教学课件
- (二模)温州市2025届高三第二次适应性考试语文试卷(含答案)
- 2024-2025学年人教版数学八年级下册第一次月考模拟练习(含答案)
- 2025届河北省承德市、张家口市高三下学期一模考试英语试题(含答案)
- 2024山西云时代技术有限公司社会招聘59人笔试参考题库附带答案详解
- Unit+4+Eat+Well+Section+A+2a~2e课件-2024-2025学年人教版(2024)英语七年级下册+
- 2025年部编版新教材语文一年级下册期中测试题(有答案)
- 《FAB销售法则》课件
- 卫生院、社区卫生服务中心《死亡医学证明书》上报制度
评论
0/150
提交评论