C语言程序设计基础教程(第2版)教学课件u5

举报
资源描述
C语言程序设计基础教程(第2版)第五章 批量数据的存储-数组CONTENTS目录01010202一位数组的应用数组的认知0303二维数组的应用0404字符串与字符数组0505字符串处理函数C语言知识树数组的认知C语言程序设计C语言数组的认知为什么要使用数组?能够方便的存储多个值!能够分类存储信息。C语言数组的认知为什么要使用数组?唉,有这么大堆书。在哪里才能找到亲爱的C语言程序设计的书呢?C语言数组的认知为什么要使用数组?文学类计算机类西方音乐类中国音乐类C语言数组的认知为什么要使用数组?容器中保存的物品日常生活中的容器日常生活中的容器数组内存内存12065984数组的元素程序中的数组程序中的数组C语言数组的认知八个儿子4间房刘老汉老大老四老七刘老汉家老大老二老三老八什么是数组C语言刘老汉家刘老汉家老四家老四家老三家老三家老二家老二家老大家老大家3210liu 4 数组名下标标明了元素在数组中的位置 数组元素下标数组大小数 组是一种数据类型,这种类型描述的是在一块连续的地址空间内存储相同类型的多个值的方法。数组的认知C语言数组的认知数组的分类数组按照维度或者说按照下标的个数分为一维数组、二维数组,数组和变量的使用一样可以归纳为三步:第一、数组的定义;第二、数组的初始化;第三、数组的引用。一维数组多维数组899077示例:学生单生课程的成绩739033458087学号科目01012示例:学生两门课程的成绩一维数组的应用C语言程序设计C语言本次任务利用数组存储多名学生成绩C语言程序设计-一维数组的应用C语言一维数组的应用任务分析任务分析成绩成绩9932981003210score 4 数组名下标标明了元素在数组中的位置 数组元素下标数组大小数 组是一种数据类型,这种类型描述的是在一块连续的地址空间内存储相同类型的多个值的方法。C语言一维数组的应用步骤一维数组的应用相关知识声明初始化引用C语言datatype arrayNamesize;元素类型说明符int、char、float 数组名符合标识符的规则常量表达式:数组大小int num50;char list_of_initials20;double pressure_level6;#define LIMIT 20.int emp_codesLIMIT;一维数组的声明一维数组的应用相关知识C语言数组使用-一维数组的初始化初始化的几种形式:在数组声明时初始化int a5=1,2,3,4,5;在使用时进行初始化int a5;a0=1;a1=2;部分初始化int a5=1,2,3;直接初始化int a=1,2,3,4;数组不初始化,其元素值为随机数。对static数组元素不赋初值,系统会自动赋以0值。int a5=1,2,3,4,5;等价于:a0=1;a1=2;a2=3;a3=4;a4=5;int a=1,2,3,4;编译系统根据初值个数确定数组维数static int a5;等价于:a0=0;a1=0;a2=0;a3=0;a4=0;如 int a5=6,2,3;等价于:a0=6;a1=2;a2=3;a3=0;a4=0;如 int a3=6,2,3,5,1;()一维数组的应用相关知识C语言数组使用-一维数组的动态初始化内存int score4;printf(“请输入4个学生的成绩n”);for(i=0;i=3;i+)scanf(“%d”,&score i);score3score2score1score0score80659973一维数组的应用相关知识C语言1、数组必须先定义,后使用2、只能逐个引用数组元素,不能一次引用整个数组3、数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式4、数组的引用不能越界例 int i=15;int datai;(不能用变量定义数组维数)例 int a10;printf(“%d”,a);()必须 for(j=0;j10;j+)printf(“%dt”,aj);()例 int data5;data5=10;/C语言对数组不作越界检查,使用时要 注意数组使用-一维数组的引用一维数组的应用相关知识C语言任务实现#include stdio.hvoid main()int i;int a5;/*定义含有5个元素的一维数组*/printf(请输入5个学生的成绩:n);/*提示输入*/for(i=0;i5;i+)/*输入5个分数*/scanf(%d,&ai);for(i=0;i5;i+)/*输出5个分数*/printf(第%d个学生的成绩为%dn,i,ai);一维数组的应用任务实现运行结果二维数组的应用C语言程序设计C语言二维数组的应用应用中的问题本次任务 利用二维数组存储多个学生的多门成绩,并求每门课平均成绩,和总平均成绩。C语言程序设计 二维数组的定义与引用C语言二维数组的应用C语言存储某一门课的成绩可以使用一维数组,同时存储多门课的成绩,存储某一门课的成绩可以使用一维数组,同时存储多门课的成绩,其实就是存储一个二维的表格,其实就是存储一个二维的表格,C语言中用二维数组来存储二维语言中用二维数组来存储二维表的值表的值任务分析C语言二维数组定义的一般形式是:类型说明符 数组名常量表达式1常量表达式2 其中:常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。二维数组的应用例如:int a34;说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有34个,即:a00,a01,a02,a03a10,a11,a12,a13a20,a21,a22,a23 二维数组的声明C语言程序设计 二维数组的定义与引用C语言二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值(逐行),也可按行连续赋值(整体)。逐行赋值int a23=80,70,90,60,65,70;整体赋值int a23=80,70,90,60,65,70;二维数组的初始化C语言程序设计 二维数组的定义与引用C语言 二维数组的元素也称为双下标变量,其表示的形式为:数组名下标下标其中下标应为整型常量或整型表达式。例如:a23表示a数组2行3列的元素二维数组的引用C语言程序设计 二维数组的定义与引用C语言任务实现#include stdio.hvoid main()int i,j,s=0,average,v3;int a53=80,75,92,61,65,71,59,63,70,85,87,90,76,77,85;for(i=0;i3;i+)for(j=0;j5;j+)s=s+aji;vi=s/5;s=0;average=(v0+v1+v2)/3;printf(C语言平均分:%dn数据库平均分:%dn网络基础平均分:%dn,v0,v1,v2);printf(总平均分:%dn,average);字符串与字符数组C语言程序设计C语言可以存储的数据计算机内存常量值变量值变量名变量名常量名常量名内存 score3score2score1score0score80659973数组数组名名C语言程序设计 字符串与字符数组C语言本次任务输入一个字符串,统计其中空格的个数。C语言程序设计 字符串与字符数组C语言任务分析输入字符串统计空格存储字符存储字符串 字符串输入空格统计完成任务输入字符串统计空格字符变量字符数组输入函数特殊标记字符串与字符数组-任务分析C语言字符串char a=W;char b=a;char c=n;char d=g;char e=L;char f=i;如何让程序存储我的姓名?Wang Li用若干个字符char name15=W,a,n,g,L,i,0;用字符数组用字符串WangLi0u在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。u字符串的末尾有一个空字符0数 组数组:是一种数据类型,在一块连续的地址空间内存储相同类型的多个值。字符串与字符数组-相关知识C语言u形式与前面介绍的数值数组相同。例如:char c10;u字符数组也可以是二维维数组。例如:char c510;字符数组的声明char arrayNamesize;类型说明符char数组名符合标识符规则常量表达式:数组大小字符串与字符数组-相关知识C语言字符数组的初始化将字符串“c program”赋值给字符数组c。u逐一元素赋值例如:char c10;c0=c;c1=p;c8=m;u定义时作初始化赋值例如:char c10=c,p,r,o,g,r,a,m;u当对全体元素赋初值时也可以省去长度说明例如:char c=c,p,r,o,g,r,a,m;语言允许用字符串的方式对数组作初始化赋值。可写为:char c=“c program;或去掉写为:char c=“c program;u字符串以0 作为串的结束符。u用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志 0 。0是由C编译系统自动加上的。u由于采用了 0标志,所以在用字符串赋初值时一般无须指定数组的长度,而由系统自行处理字符结束符字符串与字符数组-相关知识C语言1、数组必须先定义,后使用2、数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式3、数组的引用不能越界4、只能逐个引用数组元素,不能一次引用整个数组(字符这条不成立)。字符数组的引用#include stdio.hmain()char st15;printf(请输入要存储到字符数组中的值:n);scanf(%s,st);printf(字符数组中的值是n%sn,st);案例cprogramc0c1c2c3c4c5c6c7c8字符串与字符数组-相关知识C语言字符数组的输入#include stdio.hmain()char st15;printf(请输入要存储到字符数组中的值:n);scanf(%s,st);printf(字符数组中的值是n%sn,st);案例输入连续的值输入连续的值输入带空格的值输入带空格的值注意:当用scanf函数输入字符串时,串中不能含有空格,否则将以空格作为串的结束符。字符串与字符数组-相关知识C语言char name10;scanf(%s,name);printf(%s,name);格式描述串中使用转换字符串“%s”Wang LiWang0使用 scanf 时,不能输入空格Wang标准的I/O函数字符串与字符数组-相关知识C语言char name10;gets(name);puts(name);W angLi0Wang LiWang Li从键盘上读入一个完整的行,存入字符数组name。并用空字符0取代行尾的换行符n。把字符数组中的字符串输出到显示器。使用 gets函数允许输入空格字符串的I/O函数字符串与字符数组-相关知识C语言#include void main()char line30;int i,count=0;printf(n 请输入一行字符:n);gets(line);i=0;while(linei!=0)if(linei=)count+;i+;printf(n 其中的空格总数为%d n,count);C is a programming language在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i 和 count。其中的空格总数为 4任务实现字符串与字符数组-任务实现字符串处理函数C语言程序设计C语言字符串处理函数字符串处理函数q与字符串有关的内置函数在头文件string.h中定义q要使用标准库字符串处理函数,程序前应该包含:#include string.hstrlenstrcpystrcmpstrcatputsgetsC语言puts函数字符串处理函数格式:puts(字符数组名)功能:把字符数组中的字符串输出到显示器上。puts/预处理#include stdio.hvoid main()/主函数 /定义字符数组并赋值 char c=i love china!;/字符数组的输出 puts(c);C语言gets函数
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 高等教育 > 大学课件


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号