C语言程序设计 理实一体化教程 教学课件 ppt 作者 杜恒 第6章 数 组

上传人:E**** 文档编号:89187656 上传时间:2019-05-20 格式:PPT 页数:30 大小:690.50KB
返回 下载 相关 举报
C语言程序设计 理实一体化教程  教学课件 ppt 作者 杜恒 第6章  数    组_第1页
第1页 / 共30页
C语言程序设计 理实一体化教程  教学课件 ppt 作者 杜恒 第6章  数    组_第2页
第2页 / 共30页
C语言程序设计 理实一体化教程  教学课件 ppt 作者 杜恒 第6章  数    组_第3页
第3页 / 共30页
C语言程序设计 理实一体化教程  教学课件 ppt 作者 杜恒 第6章  数    组_第4页
第4页 / 共30页
C语言程序设计 理实一体化教程  教学课件 ppt 作者 杜恒 第6章  数    组_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C语言程序设计 理实一体化教程 教学课件 ppt 作者 杜恒 第6章 数 组》由会员分享,可在线阅读,更多相关《C语言程序设计 理实一体化教程 教学课件 ppt 作者 杜恒 第6章 数 组(30页珍藏版)》请在金锄头文库上搜索。

1、第6章 数 组,第6章 数 组,6.1 一维数组 6.2 二维数组 6.3 字符数组和字符串 6.4 综合实训 习 题,6.1 一维数组,知识导例 假设全班共有10名同学参加计算机竞赛,现在要求计算全班同学竞赛的平均成绩。,06(104-127)P24 fyy_Embed_1.png,图6-1 程序ex6_1_1.c的运行结果 相关知识 前面所说的变量,如a、i、t等,各个变量是各自独立的,在内存中的位置也各自独立。 1.一维数组的定义,6.1 一维数组,图6-2 数组a的存储空间分配,1)数组的类型,即数组元素的类型,可以是基本类型(整型、实型和字符型等)、指针类型、结构体类型或共用体类型。

2、 2)数组名和变量名一样,遵循标识符命名规则,不能与其他变量名相同,也不能与C语言中的关键字相同。,6.1 一维数组,3)常量表达式必须用方括号括起来,用来表示数组元素的个数,一经定义,长度就不能改变,系统就为其分配相对应的存储空间。 4)数组中每个元素的名称通过方括号中的序号加以区分,该序号也称为数组的下标,其值从0开始,最大到元素个数减去1,不能越界。 5)定义多个类型相同的数组,可以使用逗号隔开。 6)使用了数组的C语言程序在运行时,系统为数组分配连续地址空间,分配空间的大小为:数组元素占用字节数(数组长度。 2.一维数组元素的引用 1)由于数组元素本身等价于同一类型的一个变量,因此,对

3、变量的任何操作都适用于数组元素。,6.1 一维数组,2)在引用数组元素时,下标可以是整型常数或表达式,表达式内允许变量存在。 3)引用数组元素时下标最大值不能出界。 3.一维数组的初始化 (1)全部数组元素初始化 将所有初始化的数据写在一个花括号内,中间以逗号隔开。例如: (2)部分数组元素初始化 初始化值的个数小于数组元素的个数,剩余的元素被自动初始化为0。 1)字符 0 与 0 是不同的。 2)对于数值型数据部分赋初值,省略部分默认为0。,6.1 一维数组,3)全部省略不赋初值时,对于static类型的初始值默认为0,其他类型的都是随机值,但在VC+ 6.0平台下往往会给出一个确定的值。

4、实践训练 【实训项目】 1.实训内容 2.解决方案,06(104-127)P24 fyy_Embed_3.png,6.1 一维数组,图6-3 程序prac6_1_1.c的运行结果 3.项目分析,图6-4 冒泡法的排序过程,6.2 二维数组,知识导例 输入5个同学3门课的成绩并输出。,06(104-127)P24 fyy_Embed_5.png,图6-5 程序ex6_2_1.c的运行结果 相关知识,6.2 二维数组,1.二维数组的定义,图6-6 数组a的存储空间分配,1)常量表达式1表示数组第一维的长度,常量表达式2表示第二维的长度,一经定义,长度不能改变,,6.2 二维数组,系统就为其分配相对

5、应的存储空间。 2)在C语言中,因为内存空间是一维的,在存储二维数据的时候,也存在着行序优先和列序优先两种。 3)二维数组可以看成一个特殊的一维数组,其中的每一个元素又是一个一维数组。 2.二维数组元素的引用 1)下标可以是整型常量、整型表达式或变量。 2)在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。 3.二维数组的初始化 (1)全部数组元素初始化 将所有数据写在一个花括号内,以逗号分隔,按数组元素在内存中的排列顺序对其初始化。例如:,6.2 二维数组,图6-7 数组a的存储情况,(2)部分数组元素初始化 例如: 1)初始化值的个数小于数组元素的个数,剩余的元素被自动初始化为

6、0。,6.2 二维数组,2)在对部分元素赋初值时也可以省略第一维的长度,但应分行赋初值。 实践训练 【实训项目一】 1.实训内容 2.解决方案,06(104-127)P24 fyy_Embed_8.png,6.2 二维数组,图6-8 程序prac6_2_1.c的运行结果 3.项目分析 【实训项目二】 1.实训内容 2.解决方案,06(104-127)P24 fyy_Embed_9.png,6.2 二维数组,图6-9 程序prac6_2_2.c的运行结果 3.项目分析 1)输入五个学生,每个学生三门课的成绩,存入二维数组score中。 2)计算五门课程的总分,存到数组sum中;计算出每门课程的平

7、均分,存入数组avg中。 3)输出五个学生三门课的成绩,并输出每门课程的总分和平均分。 知识拓展 由二维数组可以推广到三维数组、四维数组以及更多维数的数组。,6.3 字符数组和字符串,知识导例 某个班级有40名学生,在选举班干部时有10名候选人,现要求输出候选人名单。,06(104-127)P24 fyy_Embed_10.png,6.3 字符数组和字符串,图6-10 程序ex6_3_1.c的运行结果 相关知识 字符数组的定义、引用和初始化同前面所介绍的一维数组、二维数组的定义、引用和初始化形式基本相同,其类型说明符为char。 1.字符数组的定义 2.字符数组的初始化 (1)对数组元素逐个初

8、始化 例如: 说明: 1)初值个数可以少于数组长度,多余元素自动为“0”(0是二进制数值0)。 2)对于一维字符数组指定初值时,若未指定数组长度,则长度等于初值个数。,6.3 字符数组和字符串,3)对于二维数组可以不指定第一维长度。 (2)用字符串常量对数组初始化 例如,初始化一维字符数组:,图6-11 数组c的存储空间分配,3.字符串及结束标志 4.字符数组的输入输出,6.3 字符数组和字符串,(1)单个字符的输入输出 用格式符“%c”输入或输出单个字符。例如: char c10; (2)字符串的输入输出 用格式符“%s”输入或输出字符串。 1)按“%s”格式符输出时,即使数组长度大于字符串

9、长度,也是遇“0”结束,且输出字符中不包含“0”。 2)按“%s“格式符输出字符串时,printf函数的输出项是字符数组名,而不是元素名。 3)按“%s“格式符输入时,遇“回车”键结束,但获得的字符中不包含回车键本身,而是在字符串末尾添“0”。 4)一个scanf函数输入多个字符串,输入时以“空格”键或者“回车”键作为字符串间的分隔。,6.3 字符数组和字符串,06(104-127)P24 fyy_Embed_12.jpg,图6-12 数组str1、str2、str3的数据存储情况 5)C语言中,数组名代表该数组的起始地址,因此,scanf函数中不需要地址运算符&。 5.字符串处理函数 (1)

10、字符串输入函数gets() 一般调用格式为:,6.3 字符数组和字符串,图6-13 数组str的存储情况,(2)字符串输出函数puts() 一般调用格式为: (3)字符串复制函数strcpy() 一般调用格式为: 说明: 1)str2可以是数组名或者数组元素的地址,也可以是字符串常量,还可以是指向字符串的指针。 2)字符数组str1的长度必须定义得足够大,以便容纳被复制的字符串。,6.3 字符数组和字符串,3)不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组。 (4)字符串连接函数strcat() 一般调用格式为: 说明: 1)字符数组str1必须足够大,以便容纳连接后的新字符串

11、,否则就会出问题。 2)连接前两个字符串的后面都有一个“0”,连接时将str1后面的“0”取消。 (5)求字符串长度函数strlen() 一般调用格式为: (6)字符串比较函数strcmp() 一般调用格式为: 实践训练 【实训项目一】,6.3 字符数组和字符串,1.实训内容 2.解决方案,06(104-127)P24 fyy_Embed_14.png,图6-14 程序prac6_3_1.c的运行结果 3.项目分析 【实训项目二】 1.实训内容 2.解决方案,6.3 字符数组和字符串,3.项目分析,06(104-127)P24 fyy_Embed_15.png,图6-15 程序prac6_3_

12、2.c的运行结果,6.4 综合实训,【综合实训】 1.实训内容 1 张三 98 87 88 273 91 2 李四 96 86 88 270 90 2.解决方案,06(104-127)P24 fyy_Embed_16.png,6.4 综合实训,图6-16 程序prac6_4_1.c的运行结果 3.项目分析,习 题,一、选择题 1.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )。 2.对以下说明语句的正确理解是( )。 3.若有说明:int a10;则对a数组元素的正确引用是( )。 4.下面程序的运行结果是( )。 5.以下对二维数组a的正确定义是( )。 6.若

13、有说明:int a34;则对数组元素的正确引用是( )。 7.以下不能对二维数组a进行正确初始化的语句是( )。 8.若有说明:int a 3=1,2,3,4,5,6,7;则a数组第一维的大小是( )。 9.定义如下变量k和数组:,习 题,10.下面程序的运行结果是( )。 1 1 1 1 10 0 0 1 00 1 0 0 00 1 0 1 0 1 1 1 1 10 0 1 0 00 0 1 0 00 0 1 0 0 1 1 1 1 10 1 0 0 00 0 0 1 00 1 0 1 0 1 1 1 1 11 0 0 0 00 0 0 0 11 0 0 0 1 11.以下能正确定义字符串的

14、语句是( )。 12.下面是对s的初始化,其中不正确的是( )。 13.下面程序段的运行结果是( )。 14.对两个数组a和b进行如下初始化: 15.判断字符串a和b是否相等,应当使用( )。 16.下面程序的运行结果是( )。 17.当运行以下程序时,从键盘输入:,习 题,二、填空题 1.数组就是一组具有相同 的数据的集合。 2.如果一个数组的长度是10,则该数组的数组元素下标的最小值是 ,最大值是 。 3.若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是 ,a21得到的初值是 。 4.下面程序可求出矩阵a的两条对角线上的元素之和,请填空。 5.下面程序

15、的功能是在三个字符串中找出最小的,请填空。 三、程序分析题 1.分析下面程序的运行结果。 2.分析下面程序的运行结果。 3.分析下面程序的运行结果。,习 题,4.分析下面程序的运行结果。 5.分析下面程序的运行结果。 四、编程题 1.青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求某位选手的平均得分(去掉一个最高分和一个最低分)。 2.将一个数组中的元素按逆序重新存放。 3.有一个已排好序的数组,现输入一个数,要求按原来排序的规律将他插入数组中。 4.有一篇文章,共有3行文字,每行有80个字符。 5.有一行电文,已按下面规律译成密码: 6.编写一个程序,将两个字符串s1和s2进行比较。,

展开阅读全文
相关资源
相关搜索

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

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