8、数组程序设计作业(精选5篇)
8、数组程序设计作业 篇1
实验8数组程序设计(1)
一、实验目的1.掌握数组的定义、引用,以及数组的输入和输出方法;
2.掌握字符数组,以及字符函数的使用;
3.学习与数组相关的常见的算法,如:查找、排序等;
4.学习与矩阵相关的常见的算法,如:加、减、乘等。
二、实验预备知识
1.一维数组、二维数组、字符数组。
2.与数组相关的常见的算法。
三、实验内容
编写程序,实现以下功能。
1. 由键盘任意输入10个数据,找出其中的最大数。
2. 由键盘任意输入10个数据,找出其中的最小数。
3. 定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩。
4. 定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,分别统计优、良、中、及格、不及格的人数。
5. 编写程序,由键盘任意输入10个整数,分别统计其中的奇数和偶数的个数。
6. 编写程序,由键盘任意输入10个学生的成绩,分别统计各分数段的百分比。
7. 定义一个有80个元素的字符数组,从键盘输入一串字符,将其中的大写字母转换为小写字母,而将原来为小写的字母转换为大写字母,其他字符不变。
8. 由键盘任意输入10个整形数据,将其按由小到大的顺序排序后输出(用冒泡排序)。
9. 由键盘任意输入10个整形数据,将其按由小到大的顺序排序后输出(用选择排序)。
10. 由键盘任意输入10个数据,将它们倒序后输出。
四、实验分析
1.注意数组下标的起始值和终止值。
2.合理利用数组下标和循环变量的关系,以遍历数组中的元素。
3.注意利用字符数组处理字符的方法。
4.总结常见的算法。
五、实验报告
1.在实验过程中,将每一个程序的源代码保存,如1.C、2.C、3.C、。。。、10.C。
2.建立本人学号和姓名为名称的文件夹,如:2013211234王军-8,将每一个程序的源代码存入此文件夹。
3.将此文件夹上传到:上传作业教师名班级名,如:上传作业李明光信13-1。
8、数组程序设计作业 篇2
关键词:C语言,数组,下标
1、数组的概念
程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,这些有序排列的同类数据元素的集合称为数组。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名或下标来唯一地确定数组中的元素。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
2、数组类型
2.1 一维数组
2.1.1 一维数组的定义
一维数组的定义形式:
类型说明符数组名[常量表达式];
类型说明符是任意一种基本数据类型或构造数据类型。
数组名是用户定义的数组标识符。
方括号中的常量表达式表示数据元素的个数,也称为数组的长度,可以是整型常量或整型表达式。
例如:int n[5];
这条语句定义了一个具有5个整型元素的名为n数组。这些整数在内存中是连续存储的。
2.1.2 一维数组的初始化
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。
数组初始化赋值是指在数组说明时给数组元素赋予初值。数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。
例如:int array[5]={1, 2, 3, 4, 5};
还有一部分情况是在程序执行过程中,对数组作动态赋值。
2.2 二维数组
2.2.1 二维数组的定义
二维数组一般形式是:
类型说明符数组名[常量表达式1][常量表达式2];
其中常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。C语言对二维数组采用的定义方式,使我们可以把二维数组看作是一种特殊的一维数组,它的元素又是一个一维数组。
例如:
int a[3][4];说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
在c语言中,二维数组中元素是按行排列的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
2.2.2 二维数组的初始化
二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。例如对数组a[5][3]:
1) 按行分段赋值可写为:
2) 按行连续赋值可写为:
这两种赋初值的结果是完全相同的。
和一维数组一样,二维数组也可作动态赋值,它常常和二重循环联系在一起。
2.3 字符数组
2.3.1 字符数组的定义
用来存放字符数据的数组就是字符数组。在c语言中没有专门的字符串变量,通常就是用一个字符数组来存放一个字符串。字符数组中一个元素存放一个字符,字符数组的定义形式和数值数组类似。
2.3.2 字符数组的初始化
字符数组可以在定义之后用赋值语句加以赋值。
由于字符型与整型是互相通用的,故上面的定义也可以可写为:int a[5];但这时每个数组元素占2个字节的内存单元。
字符数组也允许在类型说明时作初始化赋值。
例如:char c[10]={`c`, ``, `p`, `r`, o`, g`, r`, `a`, `m`};
C语言允许用字符串的方式对数组作初始化赋值。例如:
用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志' '。
除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,而不必使用循环语句逐个地输入输出每个字符。
注意在本例的printf函数中,使用的格式字符串为"%s",表示输出的是一个字符串。而在输出表列中只给出数组名即可。
不能写为:printf ("%s", c[]) 。
2.4 指针数组
2.4.1 指针数组的定义
一个数组,其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量。
指针数组的定义格式为:
类型名*数组名[数组长度];
例如:float*p[3];
因为下标运算符[]的优先级高于指针运算符*,因此p先与[3]结合,形成p[3]形式,这显然是数组形式,它有3个元素。然后再与p前面的"*"结合,"*"表示此数组是指针类型的,每个数组元素(相当于一个指针变量)都可指向一个float变量。上述定义等价于:float* (p[3]) ;
说明p是一个含有3个元素的数组,数组元素为指向floa型变量的指针变量。
又如:
int*pn[5];/*定义一个5个元素的指针数组,数组元素为指向int型变量的指针变量*/
2.4.2 指针数组引用
不论指针数组是什么类型,指针数组的每个数组元素都用来保存一个地址值,在Turbo C下,每个数组元素是一个unsigned int型变量,占用2个字节。
指针数组定义后,可以使数组元素指向一个变量和其他数组的首地址。下面是一个指针数组定义和引用的例子。
程序运行的结果为:
How are you
说明:
(1) 程序中c1, c2被定义为字符数组并初始化;c3是一个指针变量,指向字符串所在字符数组的首地址。
(2) 语句char*pArray[3];定义了三个元素的指针数组pArray,数组元素是指向char型变量或数组的指针变量。
(3) 语句pArray[0]=c1;将字符数组c1的首地址赋给pArray[0],指针变量pArray[0]指向了c1的首地址。
(4) for循环中,语句printf ("%s", pArray[i]) ;依次打印了三个字符数组的内容。比如,pArray[0]里存放了c1的首地址,print ("%s", pArray[0]) 和printf ("%s", c1) 的作用是相同的。
3. 小结
3.1 数组是程序设计中最常用的数据结构,要掌握数据的定义方式。
3.2 数组的赋值常采用初始化赋值和赋值语句方式赋值。在用赋值语句赋值时,不能整体赋值,而必须采用循环语句法。
参考文献
[1].谭浩强《c语言程序设计》清华大学出版社[M], 2002
8、数组程序设计作业 篇3
数组 1.数组的概念
数组是一组值的集合,变量是单个值的容器,而数组是多个值的容器 2.数组的分类
1.枚举数组:数组的下标是从0开始的正整数
2.关联数组:数组的下标可以是字符串
$arr = array(“db_host” => “localhost”, “db_user” => “root”, “db_pwd” =>”root”,);
3.混合数组:下标既有整型的,也有字符串的
$arr = array(“db_host” => “localhost”, “db_user” => “root”, “db_pwd” =>”root”, “黑马程序员”, “济南分校”);
4.多维数组:数组的元素的值的类型是一个数组。数组套数组。数组元素的下标只能是正整数和字符串。数组元素的值,可以是任何类型,当然可以是数组。
黑马程序员济南中心 编著
$arr = array(Array(10,11,12,13), Array(20,21,22), Array(30,31), TRUE,NULL);3.数组的创建
a)使用array()来创建数组 $arr = array([$key=>]$value, [$key=>]$value, [$key=>]$value,.....);语法说明:
$key代表数组元素的下标,可以省略。
$key的类型可以是整型和字符型,如果$key省略,默认的数组应该是枚举数组。$value代表数组元素的值,值可以是任何类型。“=>”重载下标,或者重新指定下标。多个数组元素之间用英文下的逗号隔开。b)使用[]创建数组的语法
语法1:$arr[] = $value
黑马程序员济南中心 编著
说明: 1)如果数组不存在,则会创建一个数组 2)第一个元素就是下标为0的元素 3)如果数组存在,则相当于添加一个新元素 4)新元素的下标,应该是最大整数下标+1 语法2: $arr[$key] = $value 说明:
1)同时指定下标,指定的下标是多少,就是多少。2)如果指定的数组不存在,也会创建一个数组 3)如果指定的数组存在,则添加一个新元素 $arr[] = 100;$arr[] = 200;$arr[5] = 500;$arr[“a”] = “abc”;多维数组
1、使用array()来创建多维数组
$arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(Array(40,41),黑马程序员济南中心 编著
Array(42,43)));
2、使用[]来创建多维数组
$arr[“name”] = “Mary”;$arr[“sex”] = “男”;$arr[“contact”][“tel”] = “11111111111”;$arr[“contact”][“qq”] = “11233321”;$arr[] = array(10,20,30);实例:用表格输出二维数组 $arr = array(Array(“10010”,”Mary”,”大专”,”传智专修学院”), Array(“10020”,”Kate”,”大专”,”传智专修学院”), Array(“10030”,”James”,”大专”,”传智专修学院”), Array(“10040”,”Kobe”,”大专”,”传智专修学院”),);$str = “”;$str.= “
b)语法:print_r(mixed $expression)c)说明:如果给出的是string、interger或float,将打印变量值本身。如果给出的是array,将会按照一定格式显示键和元素
2.Count()a)描述:统计数组有效数据的个数
b)说明:计算数组中的单元数目或对象中的属性个数。c)语法:int count(mixed $var)d)参数:$mode是否统计多维数组中的个数 3.Unset()a)描述:删除变量或数组元素或者对象属性 b)语法:void unset(mixed $var)c)返回值:无
d)注意:如果删除变量的话,只是删除变量名称和到值之间的指向。如果删除数组元素的话,值会被删除,而下标还在。如果删除整个数组的话,而整个数组都不存在黑马程序员济南中心 编著
了。
实例:求一维数组中元素的平均值 $arr = array(1,2,3,4,5,6,7,8);$num = 0;$len = count($arr);For($i=0;$i<$len;++$i){ $sum += $arr[$i];} Echo “平均值为:”.$sum/$len;实例:求二维数组中元素的平均值 $arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(40,41), Array(50));$sum = 0;$len = 0;For($i = 0;$i 黑马程序员济南中心 编著 $len ++;} } Echo “平均值:”.round($sum/$len,2);实例:求一维数组中的最大值 $arr = array(9,2,3,45,5,7);$max = $arr[0];For($i=0;$i If($max<$arr[$i]){ 黑马程序员济南中心 编著 $max = $arr[$i];$max_index = $i;} //最小值 If($min>$arr[$i]){ $min = $arr[$i];$min_index = $i;} } //交换最大值和最小值的位置 $arr[$max_index] = $min;$arr[$min_index] = $max;数组遍历:foreach 语法结构: Foreach($arr as [$key=>]$value){循环体代码} 语法结构说明: $arr代表当前要遍历的数组名称 As是系统关键字 $key表示每一次取到元素的键名,可以省略 $value表示每一次取到元素的键值 如果数组指针指到数组的末端,则退出循环 实例:foreach遍历一维数组 黑马程序员济南中心 编著 $arr = array(“name” => “Mary”, “sex” => “男”, “age” => 24);Foreach($arr as $key=>$value){ Echo “$arr[$key]=$value 黑马程序员济南中心 编著 } $str.=” 2.List()a)描述:把数组中的值(前几个值)赋给一些变量 b)语法:array list(mixed $varname)c)举例:list($name,$sex,$age)= array(“Kobe”,”男”,24,”高中”);i.说明:将数组中前三个元素的值,赋给list函数中的三个变量。 ii.数组中多余的值不需要 黑马程序员济南中心 编著 iii.要求数组必须是枚举数组,下标必须是从0开始的正整数 iv.下标必须是连续的,中间不能断档。 一、阅读:点亮心灯 1、请同学们继续赏读中考必读书目:《简爱》、《三国演义》、《老人与海》、《草房子》、《呼兰河传》,尤其是从未读过的。如果说,一本书就是一位作家的心灵小屋,请你一定用自己的眼睛和头脑去拜访。 2、推荐书目: (1)《这才是中国最好的语文书》(共两册)选编:叶开——通过阅读古今中外的杰出作品,让我们的眼睛、心智更加明亮敏锐,从而“看见”、“感受到”更为复杂有趣的千万世界。这是文学对人心智慧最基本的涵养过程。 (2)《泰戈尔诗选》作者:泰戈尔——这部思绪点点的散文诗集,乍眼看来,其内容似乎包罗万象,涉及的面也比较广,然而,就是在这种对自然、对人生的点点思绪的抒发之中,诗人以抒情的彩笔,写下了他对自然、宇宙和人生的哲理思索,从而给人们以多方面的人生启示。 (3)《九篇雪》作者:李娟——作者在少女时代跟随家人在新疆阿勒泰草原生活和做生意的全部故事。这些古老而又富有尊严的真实生活,充满灵性,宁静而又厚重,是一部令人如痴如醉而又深藏原始野性的西域牧歌。 (4)《看见》作者:柴静——这是知名记者和主持人柴静讲述央视十年历程的自传性作品,既是柴静个人的成长告白书,某种程度上亦可视作中国社会十年变迁的备忘录。十年之间,非典、汶川地震、两会报道、北京奥运„„对生活与人性有了更为宽广与深厚的理解。书中记录下的人与事,是他们的生活,也是你和我的生活。 (5)《当彩色的声音尝起来是甜的》科学松鼠会编——精选自百位松鼠近三年创作的上千篇文章,内容天马行空,文字灵动活泼,一改传统科普的严肃面孔。他们的科普文章大多数情况下都很有趣,有时候甚至很酷”。 希望借由这一本本好书,能在你的心中打开一扇明亮的窗户,面朝大海,春暖花开。 二、写作:记录生活 1、题目:(1)《一个夏日的早晨》 (2)为_________点赞 (3)时间去哪儿了 (4)生活中总有一些味道是令人难以忘怀的:新翻泥土的味道,成熟果实的味道,舌尖上绽开的食物的味道,汗水滴落时劳动的味道,书籍里蕴藏的知识的味道…… 请以“味道”为话题写一篇作文。 2、要求:说真话,抒真情,忌抄袭。工整书写于统一下发的作文纸上,每篇不少于600字。 三、古诗:滋养智慧 1、内容:七上、七下、八上、八下,课内和课后附录所有古诗 2、要求:背诵熟练后,在方格稿纸上工整默写,红笔批改,错1改3。 1.电头:新华社长江浅显1949年4月22日2时电。导语:英勇的人民解放军21日已有30万人渡过长江。|2.主体部分的内容:说明渡江的时间和地点,描述国民党守军败退的情景,报道我军战况的发展和所取得的胜利。|3.二十日夜起,长江北岸人民解放军中路军首先突破安庆、芜湖线,渡至繁昌、铜陵、青阳、荻港、鲁港地区,二十四小时内即已渡过三十万人。|4.日本军方偷袭珍珠港,目的是为了摧毁美军的太平洋舰队,使美国再无强大的军事力量干涉日本的侵略,从而使日本最终获得战争的胜利。但结果激起了美国的公愤,促使美国对日本宣战。所以,日军在珍珠港偷袭成功,恰恰成为自己最后惨败的关键性转折。|5.美国将原子弹仍在广岛的复仇行为,是过度的以暴易暴,制造了人类历史上最惨烈的悲剧。| 6、战争没有赢家,因为正义与非正义战争在一定条件下都会发生转化的。而且在人类历史上,无论正义或是非正义的战争,都是以血和灾难为代价的,必然要遭到全世界爱好和平的人们的反对和谴责。 第二天 1。描写了当时莫斯科的冬天“异常寒冷”。作用:内容:尽管天气寒冷,但马路两边依然挤满了围观德国战俘的愤怒人群,表明莫斯科人民遭受的战争的创伤之深,对战争的仇恨之深;形式:为下文化解仇恨做铺垫。|2.(1)说明在这位慈祥的老妇人之前,尚未有一个莫斯科人在德国兵面前这样做过。(2)不能。因为这些修饰语写出了被俘德国兵的惨状,表明了他们也是战争的受害者,所以才能引起老妇人的同情。|3.原因是俘虏们的真诚忏悔和人们对和平生活的热切期望。|4。要点:用宽容化解众人心中的仇恨,把爱与和平播进所有人的心田。第四天 1.“我”从乞丐那儿得到了人与人之间的信任和爱。|2.略|3.优雅:优美高雅,即美好、高尚、不粗俗的意思。文章从三个方面表现清洁工的“优雅”:一是模样及穿着、打扮方面,他年轻英俊,平时总是打扮得很整洁,甚至时髦,干干净净的。二是行为态度和技术方面,当看到“我”提着垃圾袋时,他总是面带笑容,在垃圾车旁,优雅地做个“请”的姿势;用扫帚扫地上的一个烟蒂,摆出打高尔夫球的姿势,一杆把烟蒂挥入距离二三布的簸箕内。三是从品质方面,他选择清洁工,是为了照顾生病的父亲,他在做世俗人看不上的工作时,做得很体面、很自信、很有礼。|4.表现清洁工扫烟蒂的技术娴熟。形象地说明他动作的优美、潇洒。|5.照顾病重的父亲。说明他是一个孝顺的儿子。|6.只要是“劳动”,不管什么工种,都要做好,做得很体面;只要有事可做,都要心存感激;只要自己是在劳动,都要以此为傲。|7.深化主旨。对世人如何工作和生活来说,清洁工的行为、态度、精神都是一种启发和借鉴。第五天 1.它独自长在村头的大路边;它生长在最干旱的地方,并且枝叶茂盛,硕果累累。|2.原因: (1)这棵杏树是“父亲”到“我”家后,他亲自栽的。(2)这棵杏树肚子长在寸头的大路边,与“父亲”是倒插门女婿的经历相似,是一种“例外”。(3)这棵杏树是许多过路人歇脚乘凉的好地方。|3.与第2段、第3段、第6段的内容相照应。|4.这棵杏树无私地留给几个村的人一年又一年的果实和荫凉,但自己从来都是辛辛苦苦,默默无闻,甚至有时还不被人理解。这就是“父亲”高尚品格的象征。 第七天 1.侗家风雨楼|2.特点(1)长廊式(2)木石结构(3)建造时不用铁钉,以榫衔接。|3.以程阳风雨桥为例,意在说明侗家风雨桥的主要结构特点和作用。|4.既方便交通,又可供人休憩娱乐,还可避风雨。|5.举例子、列数字、作比较|6.昭示:明显地表示或宣布。矢志不渝:发誓立志,绝不改变。|7.①//②③④⑤//⑥⑦⑧或①/②③④⑤//⑥⑦⑧|8.志当存高远。|9.摆事实、讲道理或事实论证和道理论证。所举事例古今中外皆有,范围极广。所举事例包括革命导师、科学家、文学家、军事家等伟人和名人。所以,事例极有说服力。 第八天 1.是从解说概念、追溯历史、解释成因和说明作用四个方面来说明的。|2.目的是为了说明“晕”的特点。一是鲜亮的程度,二是色彩的排列。|3.阳光里的七种不同颜色的光。|4.无数兆亿小冰晶被阳光照射后,各色光按一定角度折射出来,便形成了绚丽多彩的晕环。|5.“晕”是天气变化的一种前兆,大多数的“晕”都是风雨之兆。|6.分类别、列数字、举例子。不是所有的“晕”都是风雨之兆。 第十天 1.(1)乐趣所得来的善的或恶的、美的或丑的、好的或坏的结果。(2)从低级趣味中的来的欢娱。|2.举了生活宏的人或以读书为乐趣,或以运动为乐趣,或以劳动为乐趣,或以吃喝玩乐、闲游浪荡为乐趣的例子。证明生活里“人人都有自己的乐趣”的观点。|3.劳动是一种乐趣,产品是它的果实。|4.我们需要和寻求的是高尚的、有意义的乐趣,和从中得到使自己为之激越振奋的那种欢娱。|5.不恰当。因为奥斯特洛夫斯基的名言说的是“习惯”,而文中谈的是“乐趣”。 第十一天 1(1)记述五哥哥用大蜈蚣到处吓人、以此取乐的恶戏。(2)记述五哥哥用老的蚕豆做“蚕豆水龙”射水的富有趣味的玩意儿。|2.顽皮(调皮),聪明(有智慧、有能力)|3不能。“恶戏”有“恶作剧”的意思,从文意看,用在第①句宏可与这句话之前的内容相吻合,但不能用在第②句话中;因为这里的“玩意儿”是指“发明的东西”。 第十三天 1.会当凌绝顶,一览众山小。|2.造化钟神秀,阴阳割昏晓。荡胸生层云,决眦入归鸟。|3.国破山河在,城春草木深。|4.(1)这是简陋的屋子,只是我(住屋的人)的品德好(就感觉不到简陋了)。(2)没有音乐声打搅我的宁静,没有官府公文使我身体劳累。|5(1)山不在高,有仙则名。水不在深,有龙则灵。|(2)苔痕上阶绿,草色入帘青。|(3)无丝竹之乱耳,午安牍之劳形。|6.惟吾德馨,鸿儒|7.chóng|8.(1)为什么不离开(这里)呢?(2)年轻人记住,苛狠的政令比老虎还要凶猛啊!|9.苛政猛于虎。 第十四天 【8、数组程序设计作业】推荐阅读: 数组程序设计作业206-13 结构数组07-15 动态数组05-16 数组技术06-26 关系数组07-29 中数组教研工作总结05-19 低数组教研工作总结07-22 学生信息管理系统数组08-18 C语言中数组与指针08-13 R语言中两个数组(或向量)的外积如何计算06-13
”;} 实例:foreach遍历二维数组 $arr = array(“a” =>array(“10010”,”Mary”,”男”,24), “b”=>array(“10020”,”Kate”,”女”,20), “c” => array(“10030”,”Kobe”,”男”,40));$str = “”;$str.=””;Foreach($arr as $arr2){ $str.=”
”;Echo $str;实例:foreach 中的$value引用传地址 $arr = array(1,2,3,4,5,6,7,8);Foreach($arr as &$value){ $value *=2;} Var_dump($arr);数组操作函数 1.each()a)描述:返回数组中当前的键/值对(数组元素)并将数组指针向前移动一步 b)语法:array each(array &$array)c)返回值:返回array数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回四个单元的数组。单元0和key包含有数组单元的键名,1和value包含有数据。”;Foreach($arr2 as $value){ $str.=” ”;$value ”;} $str.=”语文8下暑假作业 篇4
8上寒假作业答案(全部) 篇5