实验05 数组
- 格式:doc
- 大小:32.50 KB
- 文档页数:3
c语言实验报告《数组》C语言实验报告:数组引言:C语言是一门广泛应用于计算机编程领域的高级编程语言,其强大的功能和灵活性使得它成为了许多程序员的首选。
在C语言中,数组是一种非常重要的数据结构,它能够存储多个相同类型的元素,并通过索引来访问和操作这些元素。
本篇实验报告将重点介绍C语言中的数组,并通过实例来展示其用法和特性。
一、数组的定义和声明在C语言中,数组的定义和声明非常简单。
我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。
例如,我们可以定义一个包含5个整数的数组:```int numbers[5];```这样,我们就成功地声明了一个名为numbers的整数数组,它包含了5个元素。
二、数组的初始化在声明数组的同时,我们还可以为数组的元素赋初值。
这个过程称为数组的初始化。
C语言提供了多种初始化数组的方式,例如:```int numbers[5] = {1, 2, 3, 4, 5};```上述代码将数组numbers的前5个元素分别初始化为1、2、3、4和5。
我们也可以只给部分元素赋初值,未赋初值的元素将自动被初始化为0:```int numbers[5] = {1, 2, 3};```这样,数组numbers的前3个元素将分别被初始化为1、2和3,而后两个元素将被初始化为0。
三、数组的访问和操作数组的访问和操作是我们使用数组的重要环节。
在C语言中,我们可以通过索引来访问和操作数组中的元素。
数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,以此类推。
例如,我们可以通过以下方式来访问数组numbers的第一个元素:```int firstNumber = numbers[0];```上述代码将数组numbers的第一个元素赋值给变量firstNumber。
同样,我们也可以通过索引来修改数组中的元素:```numbers[0] = 10;```上述代码将数组numbers的第一个元素修改为10。
C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。
通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。
数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。
数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。
可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。
数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。
二维数组数组可分为一维和多维数组。
一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。
二维数组有行号和列号,因此,它同样需要两个下标。
数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。
三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。
程序执行正常。
3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。
《Visual Basic 6.0程序设计》实验报告(五)一、实验名称:数组的应用(4学时)二、实验目的:1.掌握数组的声明和数组元素的引用;2.掌握静态数组和动态数组的声明和使用;3.学会应用数组解决与数组有关的常用算法问题;4.掌握控件数组的建立和应用。
三、实验环境多媒体计算机WindowsXP操作系统Visual Basic 6.0四、实验内容及实验步骤(或记录)1.输入10名同学的成绩,求平均分、最高分和最低分。
设计步骤如下:①在窗体上添加3个标签(Label1、Label2和Label3)和3个文本框(Text1、Text2和Text3),设计界面如图7.2所示。
各控件的主要属性和作用如表1所示。
控件的属性和作用②编写程序代码如下:Private Sub Command1_Click()Dim Score(1 To 10) As Integer '声明存放成绩的数组ScoreDim i As Integer,Max As Integer,Min As Integer,Average As SingleFor i = 1 To 10 '逐一输入每个同学的成绩Score (i) = Val (InputBox ("输入第" & Str(i)& "个学生的成绩","成绩统计",""))Next iEnd SubPrivate Sub Command2_Click()Dim i As IntegerDim sum As Single, aver As Singlesum = Score (1) ' sum 用于存放总成绩,初值为数组中的第一个元素Max = Score (1) ' 设变量Max的初值为数组中的第一个元素Min = Score (1) ' 设变量Min的初值为数组中的第一个元素For i = 2 To 10 ' 通过循环依次比较,求最大、最小值;求总和If Score(i) > Max Then Max = Score(i)If Score(i) < Min Then Min = Score(i)sum = sum + Score(i)Next iaver = sum / 10 ' 求平均值Text1.Text = Format (Average, "0.00 " ) ' 以两位小数显示平均值Text2.Text = MaxText3.Text = MinEnd Sub2.生成20个0到100之间的随机整数存于数组A,然后将这20个数按递增顺序排序。
C语言数组的应用实验报告实验题目:C语言数组的应用一、实验目的:1.理解数组的定义和使用方法;2.学会利用数组实现基本算法;3.了解数组在实际应用中的常见场景及解决方法。
二、实验原理1.数组是一种数据结构,可以存储一组相同类型的数据;2.数组的元素可以通过索引(下标)来访问和修改;3.数组的长度必须在定义时确定,且长度不能改变。
三、实验内容本次实验共包含三个不同的实验题目,下面将逐一介绍每个实验的内容和具体步骤。
实验一:计算数组元素的和与平均值1.题目描述:编写一个程序,计算一个包含n个元素的整型数组中所有元素的和与平均值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明一个整型变量sum,并将其初值设为0;3) 利用for循环遍历数组arr,将每个元素累加到sum中;4) 计算平均值avg,将sum除以数组长度;5)打印输出数组的和与平均值;6)用多组数据进行测试,验证程序的正确性。
实验二:查找数组中的最大值和最小值1.题目描述:编写一个程序,找出一个包含n个元素的整型数组中的最大值和最小值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明两个整型变量max和min,并将它们的初值设为数组的第一个元素;3) 利用for循环遍历数组arr,对比每个元素与max和min的大小,更新max和min的值;4)打印输出数组的最大值和最小值;5)用多组数据进行测试,验证程序的正确性。
实验三:矩阵转置1.题目描述:编写一个程序,对给定的二维数组进行转置操作;2.实验步骤:1) 定义一个二维整型数组matrix,并给数组赋初值;2) 声明一个与matrix规模相反的二维整型数组transpose,并将其所有元素初始化为0;3) 利用嵌套for循环遍历matrix数组,将每个元素的行列进行互换,并赋值给transpose数组;4) 打印输出转置后的transpose数组;5)用多组数据进行测试,验证程序的正确性。
C语言实验五实验报告——数组实验五:数组实验目的:1.掌握数组的定义和使用;2.熟悉数组在函数中的传递;3.练习编写使用数组的程序。
实验原理:数组是一组相同类型的变量的集合,这些变量称为数组的元素。
数组的名字是一个指针常量,它存放的是数组首个元素的地址。
数组元素在内存中是连续存放的,可以通过下标访问每一个元素。
数组的定义:数组的定义格式为:数据类型数组名[数组长度];数组的初始化:数组可以在定义时进行初始化,也可以在定义之后通过赋值进行初始化。
数组作为函数参数:数组可以作为函数的形参进行传递,可以通过指针传递整个数组,也可以传递数组的部分元素。
实验步骤:1.编写一个程序,实现对学生成绩的管理。
要求如下:-使用一个数组保存学生的成绩;-能够动态添加学生的成绩,并显示添加成功的信息;-能够计算学生的平均成绩,并显示;-能够根据用户输入的学号查找对应学生的成绩,并显示。
2.编写一个程序,实现对一组整数进行排序。
要求如下:-首先自定义一个整数数组,数组元素个数为用户输入;-编写一个函数,实现对数组进行排序,要求使用选择排序算法;-在主函数中调用该函数,对数组进行排序后显示。
实验结果与分析:1.学生成绩管理程序运行结果如下:```-------学生成绩管理系统-------[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:90添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:85添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:2平均成绩为:87.5[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:3 [1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:4退出系统。
```2.整数排序程序运行结果如下:```-------整数排序-------请输入待排序的整数个数:6请输入第1个整数:5请输入第2个整数:3请输入第3个整数:9请输入第4个整数:2请输入第5个整数:7请输入第6个整数:1排序前的整数序列为:539271排序后的整数序列为:123579 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。
一、实验项目名称数组二、实验目的1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
2.掌握字符数组与字符串的使用方法。
理解字符数组与其它数组的区别、理解字符串及其特点。
掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
3.掌握与数组相关的算法,包括排序算法和查找算法等。
三、实验内容进行有关数组的程序设计。
具体内容:1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。
要求:(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。
在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。
如果需要数组元素不断改变,应怎样修改程序?2.编程实现:在给定的字符串中查找满足条件的第一个字符。
要求:(1)字符串采用初始化的方式处理。
(2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。
如果不存在该字符,则要给出相应的信息。
3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ⨯n),形成n ⨯n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
例如:原始数据:n=4 结果数据:1 2 3 4 8 11 14 163 5 9 10 3 5 9 108 11 14 16 1 2 3 415 2 7 6 15 2 7 6要求:(1)本题中所涉及到的循环都采用for语句。
(2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。
实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。
使用for循环将数组元素初始化为0。
2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。
2)修改数组元素:通过下标将数组的元素修改为新的值。
3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。
4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。
实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。
实验五数组的使用一实验目的要求1 掌握数组的概念和使用方法。
2 掌握数组初始化的方法。
3学会字符数组和字符串的应用。
4 学会用数组名作函数的参数。
二有关概念1 只有静态数组和外部数组才能初始化。
2 引用数组时,对下标是否越界不作检查。
如定义int a[5];在引用时出现a[5],不给出错信息,而是引a[4]下面一个单元的值。
3 字符串放在字符数组中,一个字符串以‘/o’结束,有一些字符串函数如strcpy,strcmp,strlen等可以方便一进行字符串运算。
4 如有如下定义:char *str=“I love china”;表示 str是一个字符型指针变量,它的值是一个字符数据的地址。
不要认为str是字符串变量,在其中存放一个字串“I love china”。
5 用数组名作函数实参时,传到形参的是数组的首地址。
三实验内容和步骤1 定义三个数组int a[5];int b[2][2];char c[10];(1)分别在函数体外和函数体内对它们进行初始化,然后输出它们的值。
(2)在程序中再加一语句,输出a[5],b[2][2] ,分析结果。
(3)对C数组改为用赋值语句给各元素赋初值:c[0] ~ c[9]各元素分别为:…I‟, …‟, …a‟, …m‟, …‟, …b‟, …o‟, …y‟。
然后用printf(“%s”,c)输出字符串,分析结果。
参考程序如下:(1)main(){ int i,x,y;static int a[5]={1,2,3,4,5};static int b[3][2]={{3,4},{6,7},{9,5}}static char c[10]={ …i‟, …l‟, …p‟, …q‟, …k‟, …s‟, …d‟, …e‟, …a‟};for(i=0;i<5;i++)printf( “%5d”,a[i]);for(x=0;x<3;x++)for(y=0;y<2;y++)printf(“%5d”,b[x][y]);for(i=0;i<10;i++)printf(“%3c”,c[i]);}(2)结果无此值,在上面程序中要输出a数组第5个元素,和b数组的第3行第2例元素,应加此程序行:Printf(“%d”,a[4]);Printf(“%d”,b[2][1]);2 有一数组,内放10个整数,要求找出最小的数和它的下标。
实验五--数组--实验报告计算机科学与工程学院天津理工大学计算机科学与工程学院实验报告2018至2019学年第一学期课程名称程序设计(C语言)学号学生姓名班级级专业计算机科学与技术(合作)实验地点7-21实验项目数组实验时间批改意见成绩教师签字:实验(一))实验名称数组开发环境PC机,windows7操作系统开发工具VC6.0实验目的(11)掌握CC语言中一维数组、二维数组的定义方法;(22)掌握字符数组与常用字符串处理函数的使用;(33)掌握与数组有关的算法(如数组元素的排序);(44)进一步熟悉0VisualC++6.0开发环境下调试程序的基本步骤。
实验要求认真完成实验内容,编写程序代码;要求程序正确无误,并输出合理的实验结果;书写并提交实验报告。
实验内容(应包括实验题目、代码实现、编译、运行结果等,也可给出程序的算法描述、重点程序语句的注释等。
))(3)定义1个一维数组:intarr[20],然后从键盘输入20个整数,使用冒泡法编程将该数组从小到大进行排序,并将排序后结果打印在屏幕上。
提示:利用一个二重循环体实现冒泡排序(算法的基本思想参见教材P134)。
测试实例:10010-125-90907060300-250-7239482283159142-129-2453 9输出:-250-129-125-72-24-90102239486070839010014215930053 9实验代码:#includestdio.hvoidmain(){inta[20];inti,j,t;pri ntf(请输入20个数字:\nfor(i=0;ii++)scanf(%d,a[i]);printf(\nfor(j=0;j j++)for(i=0;i20-j;i++)if(a[i]a[i+1]){t=a[i];a[i]=a[ i+1];a[i+1]=t;}printf(\nfor(i=0;ii++)printf(%d,a[i]);printf(\n}编译结果:--------------------Configuration:06263-Win32De bug--------------------Linking...06263.exe-0error(s ),0warning(s)运行结果:经测试,该程序可以正常运行,没有错误。
第1篇一、实验目的本次实验旨在通过一系列的数组操作,验证数组的定义、创建、赋值、遍历、排序、查找等基本操作,掌握数组在实际编程中的应用,提高编程能力。
二、实验内容1. 数组的定义与创建通过定义数组变量,并使用不同的方式创建数组,如使用{}直接创建、使用new创建等,验证了数组的创建方法。
2. 数组的赋值通过给数组元素赋值,观察数组的实际内容,验证了数组的赋值操作。
3. 数组的遍历通过for循环、增强型for循环、foreach循环等不同方式遍历数组,验证了数组的遍历方法。
4. 数组的排序通过冒泡排序、选择排序、插入排序等算法对数组进行排序,验证了数组的排序操作。
5. 数组的查找通过顺序查找、二分查找等算法对数组进行查找,验证了数组的查找操作。
三、实验结果与分析1. 数组的定义与创建实验结果显示,通过定义数组变量,并使用不同的方式创建数组,均能成功创建数组。
在实际编程中,应根据具体需求选择合适的创建方式。
2. 数组的赋值实验结果显示,给数组元素赋值后,数组的内容发生了变化,验证了数组的赋值操作。
3. 数组的遍历实验结果显示,通过不同的遍历方式,均能成功遍历数组。
在实际编程中,应根据具体需求选择合适的遍历方式。
4. 数组的排序实验结果显示,通过冒泡排序、选择排序、插入排序等算法对数组进行排序,均能成功实现数组的排序。
在实际编程中,应根据具体需求选择合适的排序算法。
5. 数组的查找实验结果显示,通过顺序查找、二分查找等算法对数组进行查找,均能成功实现数组的查找。
在实际编程中,应根据具体需求选择合适的查找算法。
四、实验结论1. 数组是实际编程中常用的一种数据结构,具有丰富的操作方法。
2. 掌握数组的定义、创建、赋值、遍历、排序、查找等基本操作,有助于提高编程能力。
3. 在实际编程中,应根据具体需求选择合适的数组创建、遍历、排序、查找等方法,以提高编程效率和代码质量。
4. 本实验为后续学习其他数据结构和算法奠定了基础,有助于提高编程水平。
实验五数组
一、实验目的
1、熟练掌握一维数组、二维数组的定义、赋值和输入输出方法;
2、熟练掌握字符数组和字符串函数的使用;
3、掌握与数组有关的常用算法(如查找、排序等)。
二、实验预习
1、阅读教材中数组部分内容。
2、编写好所需要的程序。
三、实验指导
1、输入一长度不超过10 的字符串,判断它是否回文。
(51.c)
如:ab22ba,level 均为回文。
(1)算法分析:
回文其实就是字符串中的字符对称相等,所以就要判断对称的字符是否都相等,需要用循环来控制。
可设一字符数组a,长度为10,用来存放此字符串,再设循环变量i,j,兼做数组下标,进入循环时i 的值为0,指向第零个元素,j 的值为数组长度减1,指向最后一个元素,判断a[i]和a[j]是否相等,如出现不等就退出循环,下次循环时i 增1,j 减1,继续判断a[i]和a[j]的关系,若没出现过不等的情况就是回文。
另外应注意循环条件,如上例:
长度为偶数ab22ba,当i=3,j=2 时停止
长度为奇数level, 当i=2,j=2 时停止,故i<j 为循环条件。
(2)根据分析结果编写源程序。
#include "string.h" /* 程序中要用到字符串处理函数*/
#include <stdio.h>
void main( )
{
char a[10];
int i,j,f=1 ;
/* f 用做标志,若发现某一a[i]与a[j]不等,就置f 为0,
退出循环,若f 为1就是回文,否则不是*/ scanf("%s",a);
/*用格式符s 整体输入字符串,因a 为数组名,
已代表数组起始地址,所以输入时不必加取地址符*/ for(i=0,j=strlen(a)-1;i<j;i++,j--)
{
if(a[i]!=a[j])f=0 ;
if(!f)break ;
}
/* 若f 为0 提前退出循环,不是回文*/ if(f) printf("Y");
else printf("N");
}
(3)在c 编辑环境下编辑源程序。
(4)编译【F9】,直到没有错误。
(5)运行【Ctrl+F9】,输入:
wh33hw↙
(6)查看结果【Alt+F5】,输出:Y
2、编一个程序,将两个字符串s1 和s2 进行比较。
如果s1>s2,输出一个正数;s1=s2,输出0;s1<s2,输出一个负数。
不要用strcmp 函数。
两个字符串用gets 函数读入,输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII 码的差值。
(52.c)
(1)算法分析:
两个字符串从第一个字符开始一一对应进行比较,直到不相等的那个字符,从而求得它们的ASCII 码的差值。
比如,‘A’与‘C’相比,由于‘A’< ‘C’, 应输出负数,由于‘A’与‘C’的ASCII 码的差值为2,因此,应输出“-2”。
同理,“And”和“Aid”比较,根据第2 个字符比较结果,‘n’比‘i’大5,因此应输出‘5’。
(2)程序如下:
#include<stdio.h>
void main( )
{
int i,resu ;
char s1[100],s2[100];
printf("\n input string1:");
gets(s1);
/*输入串1*/
printf("\n input string2:");
gets(s2);
/*输入串2*/
i=0 ;
While((s1[i]==s2[i]&&(s1[i]!='\0'))i++;
if(s1[i]=='\0'&&s2[i]=='\0')resu=0 ;
/*如果相等, 输出0*/
else
resu=s1[i]-s2[i];
/*如果不等,输出ASCII 码的差值*/
printf("\n result: %d\n",resu);
}
(3)在C 编辑环境下输入源程序。
(4)编译【F9】,直到程序无错误。
(5)运行【Ctrl+F9】,输入:
Input string1: aid<回车>
input string2: and<回车>
(6)查看运行结果【Alt+F5】:
result: -5
四、实验内容
1、在C 编辑环境下编辑实验指导中给出的程序,编译并运行。
2、输入一个0 到255 之间的十进制整数,要求把此数转化为二进制形式。
如:127↙
01111111
提示:十进制转化为二进制用倒序取余法,可将每次产生的余数依次存入一数组中,输出时将数组倒序输出。
(53.c)
3、编一个程序,将两个字符串连接起来,不要用strcat 函数。
(例:输入china 和pliceman 两个字符串,结果应为chinapliceman 字符串)(54.c)
根据以上题目要求编程并上机调试运行。
五、实验报告要求
实验结束后,应整理实验报告,其内容应包括:
1、实验题目
2、设计思路
3、写出程序源代码
4、写出程序运行结果
5、对实验结果进行分析、总结。