数组及结构化程序设计实验报告

合集下载

c语言实验报告《数组》

c语言实验报告《数组》

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语言实验7数组实验报告

c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。

2.熟练掌握字符数组和字符串函数的使用。

3.熟练掌握一位数组以及一位数组元素的存储关系。

4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。

5.通过上机实践掌握与数组有关的算法。

二、实验内容上机题1输入并运行以下程序。

实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。

a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。

○2数组赋值方法和一般变量一样。

例如,a[0]=2表示将2赋给a[0]。

运行结果上机题2 输入并运行以下程序。

实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。

C语言程序设计实验报告 数组

C语言程序设计实验报告 数组

C语言程序设计实验报告数组实验目的:1. 了解数组的概念和使用方法;2. 掌握数组的定义和初始化;3. 掌握数组的遍历和元素访问;4. 掌握数组的排序算法和查找方法。

实验内容:一、数组的定义和初始化:1. 在C语言中,数组是一组有序、相同类型的元素的集合。

数组中的每个元素可以通过一个下标来标识,下标从0开始,最大为元素个数减1。

2. 定义数组的语法:类型名数组名[元素个数];3. 数组的初始化:可以在定义数组的同时进行初始化,也可以在定义后逐个赋值,还可以用花括号{}将初始值逐一列出进行初始化。

示例代码:```// 定义数组并初始化int a[5] = {5, 4, 3, 2, 1};// 定义数组后逐个赋值int b[3];b[0] = 1;b[1] = 2;b[2] = 3;// 使用花括号逐一初始化int c[] = {1, 2, 3, 4, 5};```二、数组的遍历和元素访问:1. 数组的遍历:可以使用for循环来遍历数组中的每个元素。

```int a[5] = {5, 4, 3, 2, 1};printf("%d", a[1]); // 输出4```三、数组的排序算法和查找方法:1. 排序算法:常用的数组排序算法有冒泡排序、插入排序和快速排序等。

```void bubbleSort(int a[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}```2. 查找方法:常用的数组查找方法有线性查找和二分查找等。

实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。

数据结构实验报告一

数据结构实验报告一

数据结构实验报告一数据结构实验报告一一、引言数据结构是计算机科学中非常重要的一门课程,它研究的是数据的组织、存储和管理方式。

在本次实验中,我们将学习并实践一些常用的数据结构,包括数组、链表和栈。

通过实验,我们将深入理解这些数据结构的原理和应用。

二、实验目的本次实验的目的是通过编写代码实现一些常用的数据结构,并测试它们的功能和性能。

通过实际操作,我们将掌握这些数据结构的基本操作和使用方法。

三、实验过程1. 数组数组是一种线性数据结构,它由一组连续的存储单元组成。

在本次实验中,我们将实现一个动态数组,它可以根据需要自动调整大小。

我们首先定义一个数组类,包含插入、删除和查找等基本操作。

然后,我们编写测试代码,验证数组的功能和性能。

2. 链表链表是另一种常用的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

在本次实验中,我们将实现一个单向链表。

我们首先定义一个节点类,然后定义一个链表类,包含插入、删除和查找等基本操作。

最后,我们编写测试代码,验证链表的功能和性能。

3. 栈栈是一种特殊的线性数据结构,它只能在一端进行插入和删除操作。

栈的特点是后进先出(LIFO)。

在本次实验中,我们将实现一个栈。

我们首先定义一个栈类,包含入栈、出栈和查看栈顶元素等基本操作。

然后,我们编写测试代码,验证栈的功能和性能。

四、实验结果通过实验,我们成功实现了动态数组、单向链表和栈的基本操作。

我们编写了测试代码,并对这些数据结构的功能和性能进行了验证。

实验结果表明,这些数据结构在不同场景下都有很好的表现,并且可以满足我们的需求。

五、实验总结本次实验让我们更加深入地理解了数据结构的原理和应用。

通过实际编写代码并进行测试,我们掌握了数组、链表和栈等常用数据结构的基本操作和使用方法。

实验过程中,我们遇到了一些问题,但通过不断的调试和优化,最终成功解决了这些问题。

通过本次实验,我们不仅提高了编程能力,也增强了对数据结构的理解和应用能力。

数组程序设计实验报告

数组程序设计实验报告

数组程序设计实验报告数组程序设计实验报告引言在计算机科学领域,数组是一种重要的数据结构,用于存储和操作大量相同类型的数据。

数组的使用广泛,无论是在算法设计还是软件开发中,都扮演着重要的角色。

本实验旨在通过编写数组程序,探索数组的特性和应用。

一、数组的定义与初始化数组是一种由相同类型的元素组成的集合,每个元素都可以通过索引访问。

在程序中,我们可以通过声明数组变量来定义一个数组。

例如,int numbers[5]就定义了一个包含5个整数的数组。

数组的初始化可以在声明时进行,也可以在后续的代码中进行。

二、数组的基本操作1. 访问数组元素数组元素可以通过索引来访问,索引从0开始。

例如,numbers[0]表示数组numbers的第一个元素。

通过循环遍历数组,我们可以逐个访问数组中的元素。

2. 修改数组元素数组元素的值可以通过索引进行修改。

例如,numbers[0] = 10将把数组numbers的第一个元素的值修改为10。

3. 数组的长度数组的长度是指数组中元素的个数。

在C语言中,可以通过sizeof运算符来获取数组的长度。

例如,sizeof(numbers) / sizeof(numbers[0])将返回数组numbers的长度。

三、数组的应用1. 数组的排序数组排序是数组程序设计中常见的任务之一。

常见的排序算法包括冒泡排序、选择排序和插入排序。

通过对数组元素进行比较和交换,可以将数组按照升序或降序排列。

2. 数组的搜索数组搜索是另一个常见的任务,它涉及在数组中查找特定的元素。

线性搜索是一种简单直观的搜索方法,它逐个比较数组元素,直到找到目标元素或搜索完整个数组。

二分搜索是一种更高效的搜索方法,它要求数组事先有序。

3. 多维数组除了一维数组,我们还可以使用多维数组来存储和处理更复杂的数据。

二维数组是最常见的多维数组形式,它可以看作是一个表格或矩阵。

通过使用行和列的索引,我们可以访问和修改二维数组中的元素。

结构化程序设计实训报告

结构化程序设计实训报告

一、实验背景结构化程序设计是一种计算机编程方法,旨在提高程序的可读性、可维护性和可扩展性。

通过使用顺序结构、选择结构和循环结构等基本程序结构,可以使程序更加清晰、易于理解。

本次实训旨在通过实践操作,使学生掌握结构化程序设计的基本思想和方法,提高编程能力。

二、实验目的1. 掌握结构化程序设计的基本思想。

2. 熟练掌握三种基本程序结构:顺序结构、选择结构和循环结构。

3. 学会利用结构化程序设计思想解决数据处理问题。

4. 掌握VF(Visual FoxPro)程序调试的基本方法,能进行基本的程序设计。

三、实验内容及步骤1. 实验内容本次实训主要包括以下内容:(1)顺序结构:编写一个简单的程序,实现数字1到10的累加。

(2)选择结构:编写一个程序,根据用户输入的年龄判断是否成年。

(3)循环结构:编写一个程序,计算1到100的整数之和。

(4)结合以上结构,实现一个简单的学生成绩管理系统。

2. 实验步骤(1)在VFP环境下新建一个程序文件,命名为“结构化程序设计实验.prg”。

(2)编写程序代码,实现实验内容。

(3)保存程序文件。

(4)运行程序,验证程序功能。

(5)对程序进行调试,解决可能出现的问题。

四、实验过程及结果1. 顺序结构实验代码如下:```visual foxpro顺序结构实验clearlocal sum = 0for i = 1 to 10sum = sum + iendfor"1到10的累加和为:" + str(sum) ```运行结果:1到10的累加和为:55 2. 选择结构实验代码如下:```visual foxpro选择结构实验clearlocal age = 18if age >= 18"您已成年"else"您还未成年"endif```运行结果:您已成年3. 循环结构实验代码如下:```visual foxpro循环结构实验clearlocal sum = 0for i = 1 to 100sum = sum + iendfor"1到100的整数之和为:" + str(sum)```运行结果:1到100的整数之和为:50504. 学生成绩管理系统代码如下:```visual foxpro学生成绩管理系统clearlocal score_list = {}local input_scorefor i = 1 to 5"请输入第" + str(i) + "位学生的成绩:"input_score = input("请输入成绩:") aadd(score_list, input_score) endforlocal max_score = score_list[1]local min_score = score_list[1]for i = 2 to len(score_list)if score_list[i] > max_scoremax_score = score_list[i]endifif score_list[i] < min_scoremin_score = score_list[i]endifendfor"最高分为:" + str(max_score)"最低分为:" + str(min_score)```运行结果:请输入第1位学生的成绩:90请输入第2位学生的成绩:85请输入第3位学生的成绩:78请输入第4位学生的成绩:92请输入第5位学生的成绩:88最高分为:92最低分为:78五、实验总结1. 实验收获通过本次实训,我掌握了以下内容:(1)顺序结构、选择结构和循环结构的语句格式、功能及使用方法。

数组程序设计实验报告

数组程序设计实验报告

数组程序设计实验报告《数组程序设计实验报告》在计算机科学领域,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且可以通过索引来访问和操作这些数据。

在本次实验中,我们将使用数组来设计和实现一些简单的程序,以加深对数组的理解和应用能力。

实验一:数组的基本操作在这个实验中,我们首先学习了如何声明和初始化数组,然后进行了一些基本的数组操作,比如访问数组元素、修改数组元素、以及遍历数组等。

通过这些操作,我们对数组的基本特性有了更深入的了解,并且能够更加灵活地使用数组来存储和处理数据。

实验二:数组的排序算法在这个实验中,我们学习了几种常见的数组排序算法,比如冒泡排序、选择排序和插入排序。

通过实现这些排序算法,我们深入理解了数组元素之间的比较和交换操作,以及不同排序算法的时间复杂度和空间复杂度。

同时,我们也学会了如何根据具体的需求选择合适的排序算法来优化程序性能。

实验三:数组的应用案例在这个实验中,我们将学习如何利用数组来解决实际的问题。

比如,我们可以使用数组来实现一个简单的学生成绩管理系统,或者用数组来存储和统计一组数据的频率分布。

通过这些案例,我们不仅能够加深对数组的理解,还能够提高自己的编程能力和解决问题的能力。

总结通过本次实验,我们对数组的基本操作、排序算法和应用案例有了更深入的了解,同时也提高了自己的编程能力和问题解决能力。

数组作为一种重要的数据结构,在实际的软件开发中有着广泛的应用,因此我们需要不断地学习和掌握数组的相关知识,以便更好地应用它们来解决实际的问题。

希望通过这次实验,我们能够更加熟练地使用数组,并且能够将所学到的知识应用到实际的软件开发中去。

《C程序设计》之数组实验报告

《C程序设计》之数组实验报告

实验项目:数组(二)实验内容:实验1:输入两个字符串A和B,判断字符串B是否在A中出现,如果出现,给出在A中出现的位置(即B 串的第一个字符在A中第一次出现的位置,从一开始计)。

示例:A串:abcabcdeabcdefg B串:abcde结果:B串包含在A串中,位置是4实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。

姓名示例:Long Zhengji实验3:实现字符串联。

程序实现:程序:实验1:字符串的包含关系#include<stdio.h>#include<string.h>void main(){ char A[20],B[20];int n,m=0,i,j,a,b;printf("输入字符串A:");gets(A);printf("输入字符串B:");gets(B);a=strlen(A);b=strlen(B);printf("\n");for(i=0;i<=a-1;i++){ n=1;if(A[i]==B[0]){ n=0;for(j=1;j<=b-1;j++)if(A[i+j]!=B[j])n++;}if(!n){ printf("B串包含在A串中,位置是%d\n",i+1);m++;}}if(m==0)printf("B串不在A串中\n");}实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。

#include <stdio.h>#include <string.h>#define N 11void main(){char temp[10],name[10];char c;char str[N][20];int i,j,sign,top,bott,loca,flag=1,mid;printf("请输入10个人的名字:");printf("\n");for(i=0;i<11;i++)gets(str[i]);for(j=0;j<11;j++)for(i=0;i<10-j;i++)if(strcmp(str[i],str[i+1])>0){strcpy(temp,str[i]);strcpy(str[i],str[i+1]);strcpy(str[i+1],temp);}printf("对此10人的名字的排序为:\n");for(i=0;i<11;i++)printf("%s\n",str[i]);printf("\n");while(flag){printf("要查找的名字:");scanf("%s",name);sign=0;top=0;bott=N-1;if(strcmp(name,str[0])<0||strcmp(name,str[N-1])>0) loca=-1;while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(strcmp(name,str[mid])==0){loca=mid;printf("找到了:%s,位于:%d\n",name,loca+1); sign=1;}else if(strcmp(name,str[mid])<0)bott=mid-1;elsetop=mid+1;}if(!sign||loca==-1)printf("没有此名\n");printf("是否继续(Y/N)?");scanf(" %c",&c);if(c=='N'||c=='n')flag=0;}}实验3:实现字符串联:#include<stdio.h>void main(){char s1[80],s2[40];int i=0,j=0;printf("输入字符1:");scanf("%s",s1);printf("输入字符2:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("串起来的字符是:%s\n",s1);}运行结果:实验1:字符串的包含关系B在A中:B不在A中:实验2:输入10个人的姓名(拼音),用冒泡法排序,然后再用折半法查找给定的一个人名是否存在,如果存在给出位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
reader.close();
}
public static void printStarRecursion (int i,int size) {
if (i == 0)
return;
printStarRecursion (i - 1, size);
for (int k = 0;k < size - i; ++k)
2、随机生成两个0~255之间的整数,如果生成的两个整数相等,重新生成,否则求出它们的最大公约数和最小公倍数。(随机数的生成:请参看课本第七章7.3 Math类的静态方法random()或
3、(选做题)使用递归的方法,对用户给定的n,输出n行星号。如图为n=4
*
* * *
* * * * *
* * * * * * *
il.*;
public class test {
public static void main (String args[]) {
Scanner reader=newScanner(System.in);
int n=reader.nextInt();
printStar (n);
深 圳 大 学 实 验 报 告
课程名称:Java程序设计
实验项目名称:数组及结构化程序设计
学院:计算机与软件学院
姓名:学号:
日期:2014-10-8
指导教师:王平
一、实验目的与实验环境:
数组的使用,结构化程序设计。
二、方法、步骤:
1、要求用户从键盘输入数目,生成数组存放若干个同学的姓名、数学成绩,将成绩按降序排序。输出排序后的姓名与成绩。
}
Student ts =newStudent();
ts.test(stu);
ts.display(stu);
reader.close();
}
privatevoiddisplay(String[][] s) {
for(inti = 0; i < s.length; i++) {
for(intj = 0; j < s[i].length; j++) {
五、指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
+" ");
}
;
}
}
privatevoidtest(String[][] s) {
for(intj = 0; j < s.length; j++) {
for(inti = 0; i < s.length- 1; i++) {
String[] ss;
if(s[i][1].compareTo(s[i + 1][1]) < 0) {
" ");
for (int k = 0;k < 2 * i - 1; ++k)
"*");
;
}
public static void printStar (int size) {
printStarRecursion(size, size);
}
}
4、实验结论及思考:
答:通过这次实验,熟悉了eclipse编程环境,对于java编程语言的应用也愈加熟练。
三、实验过程及结果:(源代码和程序运行截图)
1.代码:
packagetest1;
importjava.util.*;
publicclassStudent {
publicstaticvoidmain(String args[]){
Scanner reader=newScanner(System.in);
Random random=newRandom();
intn1=random.nextInt(256);
intn2=random.nextInt(256);
while(n1==n2){
n1=random.nextInt(256);
n2=random.nextInt(256);
}
"生成的二个数为%d和%d\n",n1,n2);
intnumber=0;
"请输入学生个数:");
number = reader.nextInt();
String[][] stu=newString[number][2];
for(inti=0;i<number;i++){
stu[i][0]=reader.next();
stu[i][1]=reader.next();
ss = s[i];
s[i] = s[i + 1];
s[i + 1] = ss;
}
}
}
}
}
截图:
2。代码:
packagetest1;
importjava.util.*;
publicclassMath {
publicstaticvoidmain(String args[]){
Scanner reader=newScanner(System.in);
intm=fun1(n1,n2);
"最大公约数为:"+m);
"最小公倍数为:"+(n1*n2)/m);
reader.close();
}
publicstaticintfun1(inta1,intb1){
intc;
c=a1%b1;
while(c>0) {
a1=b1;
b1=c;
c=a1%b1;
}
returnb1;
相关文档
最新文档