文档库 最新最全的文档下载
当前位置:文档库 › 实验-数组与指针

实验-数组与指针

实验-数组与指针
实验-数组与指针

实验3 数组与指针

程序填空

1.

本题分值:10

题目描述:

随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出“不存在”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include

using namespace std;

int main( )

{

int a[101],k,x;

for(k=1;k<=10;k++) //从数组中下标1的元素开始存放数据

{

a[k]=rand( )%101; //产生0~100之间的的整数

// cout<

}

// cout<

cin>>x; //输入待查找数x

for(k=1;k<=10;k++)

if(a[k]==x) __(1)__; //若发现了x,则不用继续循环、继续查找if(k__(2)__)

cout<<"x存在,它的位置序号是:"<<__(3)__<

else

cout<<"不存在!"<

return 0;

}

参考答案:sy3-1.cpp

2.

本题分值:10

题目描述:

编写一个程序,可以根据用户输入的不同值,建立不同长度的整型数组。给这个数组赋值,并求其所有元素之和。请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include

using namespace std;

int main()

{

int n,i,sum=0,*p;

cin>>n; //输入一个整数n

p=new int[__(1)__]; //创建一个含有n个整数的整数数组

for(i=0;i

cin>>__(2)__;

for(i=0;i

sum=sum+*(p+i);

cout<

delete __(3)__; //删除动态数组p

return 0;

}

参考答案:sy2-2.cpp

3.

本题分值:10

题目描述:

输入5个整数依次存放到数组a中(从下标1开始存放),再输入待插入的整数x以及它要插入到数组中的位置下标k(1≤k≤5),要求插入后不影响a中原来下标为k到5的所有元素的先后顺序。请按照数组中的元素顺序,输出插入前的5个整数和插入后的这6个整数。提示:插入时,应该先从后往前地(从下标5到下标k)将每个数组元素都后移1个位置,最后再将x存放到下标k的元素中。请在计算机上调试以下程序以补足其中的空格。代码:

#include

using namespace std;

int main( )

{

int a[101],k,j,x;

//分别输入5个整数

for(j=1;j<=5;j++) cin>>a[j];

cin>>x>>k; //输入待插入的数x和插入的位置下标k

if(k<1 || k>5) return 0;

for(j=5;j>=k; __(1)__) //从下标5到下标k,将每个数组元素都后移1个位置a[j+1]=a[j];

__(2)__=x;

//输出将x插入到下标k后的这6个数

for(j=1;j__(3)__;j++) cout<

cout<

return 0;

}

参考答案:sy3-3.cpp

4.

本题分值:10

题目描述:

输入字符串s及待删除的字符ch,将s中所有与ch相同的字符都删除掉,输出删除后得到的新串。以下程序是直接在数组s中进行删除,得到的新串仍然在数组s中。请在计算机上调试该程序以补足其中的空格。

代码:

#include

using namespace std;

int main( )

{

char s[81], ch;

int k,j;

cin>>s; //输入一个字符串后按回车键,该字符串存入s中

cin>>ch; //输入待删除的字符后按回车键

//k代表s中每个字符的下标

//j代表未删除(保留)字符应放在s中新的位置下标

for(k=j=0;s[k]!='\0';k++)

if(s[k]!=ch)

{

s[j]= __(1)__;

__(2)__;

}

__(3)__='\0'; //得到的新串末尾要放结束符

cout<

return 0;

}

参考答案:sy3-4.cpp

5.

本题分值:10

题目描述:

输入一行字符串,分别统计其中英文字母、空格、数字和其他字符的个数,并输出。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include

using namespace std;

int main()

{

int a,b,c,d;//a,b,c,d分别用来记录英文字母、空格、数字和其他字符的个数

char s[101],*p;

p=s; //指针p指向字符串s的第一个字符

cin.getline(s,101); //输入一个含有空格的字符串存入s中

a=b=c=d=__(1)__;

while(__(2)__) //当p指向的字符不是字符串结束标记时循环

{

if(*p>='A'&&*p<='Z' || *p>='a'&&*p<='z')//如果p指向的是一个英文字母字符 a++;

else

if (*p==' ') //如果p指向的是一个数字字符

b++;

else

if(__(3)__) //如果p指向的是一个数字字符

c++;

else

__(4)__;

p++;//使指针p指向字符串中的下一个字符

}

cout<

return 0;

}

参考答案:sy3-5.cpp

程序设计

6.

本题分值:10

题目标题:陶陶摘苹果。

时间限制:1000MS

内存限制:32768KB

题目描述:

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入描述:

输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出描述:

输出只包含一个整数,表示陶陶能够摘到的苹果的数目。

样例输入:

100 200 150 140 129 134 167 198 200 111

110

样例输出:

5

参考答案:

sy3-6.cpp

7.

本题分值:10

题目标题:歌唱比赛选手成绩计算。

时间限制:1000MS

内存限制:32768KB

题目描述:

歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。

提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。

输入描述:

依次输入6位评委的打分score

1~score

6

,每个score

i

都是double型,且满足0≤score

i

≤100。

输出描述:

输出一行,表示该选手的最后得分。

提示:输出时不需要对精度特殊控制,用cout<

样例输入:

78.8 92.3 87.6 94.8 85.8 94.8

样例输出:

90.125

参考答案:

sy3-7.cpp

8.

本题分值:10

题目标题:神秘的字符加、解密技术。

时间限制:1000MS

内存限制:32768KB

题目描述:

插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。

提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。

输入描述:输入一行:密文字符串。

输出描述:输出有一行:翻译后的明文字符串。

样例输入:

Coheifnia

样例输出:

China

参考答案:

sy3-8.cpp

9.

本题分值:10

题目标题:字符串大小写转换。

时间限制:1000MS

内存限制:32768KB

题目描述:

输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。

要求用指针对字符串进行处理。

输入描述:

输入一行:长度小于20的不含空格的字符串。

输出描述:

输出一行:处理以后的字符串。

样例输入:

ILoveC++!

样例输出:

ilOVEc++!

参考答案:

sy3-9.cpp

10.

本题分值:10

题目标题:打印极值点下标。

时间限制:3000MS

内存限制:32768KB

题目描述:

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。

输入描述:

有2行输入:第一行是此数组的元素个数k(4

输出描述:

输出为1行:依次对应于数组的所有极值点下标值,下标值之间用空格分隔。样例输入:

15

12 12 122 112 222 222 222 221 76 36 31 234 256 76 73

样例输出:

2 3 10 12 14

参考答案:

sy3-10.cpp

实验三 数组和字符串

实验三数组和字符串 一、实验目的 1.掌握Java中的数组定义、引用 2.掌握向量的基本概念和应用技术 3.掌握使用字符串String类处理字符串的方法 4.掌握使用字符串StringBuffer类处理字符串的方法 5.掌握Date类以及Calendar类的常用方法; 二、实验内容 1.使用https://www.wendangku.net/doc/617835691.html,ng.Math类,生成100 个100~999 之间的随机整数,找出他们之中的最大的和最小的,并统计随机产生的大于300 的整数个数。 package exercise; publicclass shiyan3_1 { publicstaticvoid main(String [] args) { int count=0; int max=0; int min=Integer.MIN_VALUE; int num[]=newint[100];//声明并创建一个具有100 个元素的整型数组对象num int i; for(i=1;i<=100;i++) { num[i-1]=100+(int)(Math.random()*899); System.out.print(num[i-1]+"\t");//随机产生一个100~999 之间的随机整数 if(i % 10 == 0) System.out.println();//输出当前产生的随机数,并一行输出10 个数 if(num[i-1]>max) max=num[i-1]; if(num[i-1]300) count++; } System.out.println("最大的随机整数是:"+max); System.out.println("最小的随机整数是:"+min); System.out.println("大于300 的整数个数是:"+count); } }

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

VB实验3数组

本科实验报告 课程名称:人机界面程序设计基础实验项目:三、数组 实验地点:北区多学科楼 专业班级:学号: 学生姓名: 指导教师: 年月日

一、实验目的和要求 1、掌握数组的声明、数组元素的引用。 2、掌握固定长度数组和动态数组的使用差别。 3、掌握数组常用的操作和常用算法。 4、掌握列表框和组合框的使用。 二、实验内容和原理 1、随机产生30~100(包括30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。 2、随机产生20个学生的成绩,统计各分数段人数并显示结果。产生的数据在List1显示,统计结果在List2显示。 提示:①、在通用声明段声明一个数组。例如:Dim mark%(19);在Command2声明一个数组s(9),分别存放分数段的人数。 ②、统计时的关键在于确定每个人的分数mark(i)与数组s下标之间的关系。 3、窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换。 三、主要仪器设备 计算机 四、实验结果与分析(必填) 1.随机产生30~100(包括30,100)的10个正整数,求最大值、最小值、

平均值,并显示整个数组的值和结果,。 代码: Private Sub Form_Click() Dim i%, s%(1 To 10), max%, min%, avg! For i = 1 To 10 s(i) = Int(Rnd * 71 + 30) Next i max = s(1) min = s(1) avg = s(1) For i = 2 To 10 If s(i) > max Then max = s(i) If s(i) < min Then min = s(i) avg = avg + s(i) Next i avg = avg / 10 For i = 1 To 10 Print s(i); Next i Print Print "max="; max; "min="; min; "avg="; avg End Sub 2.随机产生20个学生的成绩,统计各分数段人数。即0~59,60~69,70~ 79,80~89, 90~100, 并显示结果。产生的数据在picture1显示,统计结果在picture2显示,如图E3所示。

实验3要求(数组)

实验3-1一维数组 目的和要求: 1.理解数组的概念以及用数组描述数据结构的好处; 2.掌握一维数组的定义、下标变量的引用、数组的初始化以及输入输出的方法; 3.学习应用数组解决查找和排序问题。 一. 实验内容 1.改错题 (1)下列程序的功能是:为指定的数组输入10个数据,并求这10个数据之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_1.c。 #include void main() {int n=10,i,sum=0; int a[n]; for(i=0;i<10;i++) { scanf("%d",a[i]); sum=sum+a[i]; } printf("sum=%d\n",sum); } (2)下列程序的功能是:读入20个整数,统计其中非负整数个数,计算所有非负整数之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_2.c。 #include main( ) { int i, n=20, s, count; int a[n];s = count = 0; for ( i = 1; i <= n; i++ ) scanf("%d",a[i]); for ( i = 1; i <= n; i++ ) { if ( a[i] <0 ) break; s += a[i]; count++; } printf("s=%d\t count=%d\n", s, count ); } 2.程序填空 (1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示示查找结果。根据题意,将程序写完整,并将程序保存到学号文件夹下,文件名为shiyan3_T1.c。

实验 6-3 数组

实验6-3 数组(三) 1 【实验目的】 (1)掌握字符数组的定义、赋值和输入输出的方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的基本操作和排序算法 【实验要求】 (1)熟悉掌握字符数组的定义、赋值和输入输出方法 (2)掌握字符数组和字符串函数的使用 (3)掌握数组的增加元素和删除元素的操作 (4)掌握数组的排序算法(比较、选择和冒泡三种算法,要求至少会一种) 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、Palindromes_easy version https://www.wendangku.net/doc/617835691.html,/acmhome/problemdetail.do?&method=showdetail&id=1384 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

输入 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串,每个字符串的长度不超过30。 输出:如果一个字符串是回文串,则输出"yes",否则输出"no". 样例输入: 4 level abcde noon haha 样例输出: yes no yes no 2、分割整数https://www.wendangku.net/doc/617835691.html,/acmhome/problemdetail.do?&method=showdetail&id=1173 描述:从键盘输入一个长正整数(不超过10位),从高位开始逐位分割并输出。 输入:正整数n,不含前导零。 输出:分割的整数序列,各整数之间用空格格开。注意,最后一个数字后面没有空格! 样例输入:654321 样例输出:6 5 4 3 2 1

数据结构_实验3_串和数组

实验3 串和数组的相关操作 一,实验目的 理解并掌握串的逻辑结构和定长顺序存储方式; 理解串的相关基本算法; 编程对相关算法进行验证。 理解数组的逻辑结构和顺序存储方式; 掌握对称矩阵和稀疏矩阵的压缩存储方法; 掌握稀疏矩阵的三元组顺序表表示法和快速转置运算。 二,实验内容 3.1 串的模式匹配运算 编写一个程序,实现顺序串的各种模式匹配运算,并在此基础上设计主程序完成如下功能: (1)建立目标串s=‘abcabcdabcdeabcdefabcdefg’和模式串t=‘abcdeabcdefab’;(2)采用简单模式匹配算法求t在s中的位置; (3)由模式串t求出next值和nextval值; (4)采用KMP算法求t在s中的位置; (5)采用改进的KMP算法求t在s中的位置。 3.2 数组的操作 1.建立一个n*n的对称矩阵A;用动态分配的一维数组B对矩阵A进行压缩存储,输出矩阵A和一维数组B; 2.在B中查找对称矩阵A中第row行,第col列(下标从1开始)的元素,输出该元素值; 3.建立一个稀疏矩阵C,输入其行数,列数和非零元个数,用三元组顺序表存储该矩阵,并按矩阵形式输出稀疏矩阵B; 4.对稀疏矩阵C做快速转置运算得到矩阵D,并按矩阵形式输出转置后的矩阵D。【要求】 1.矩阵元素相关信息要从终端输入; 2.在三元组顺序表中按行优先顺序存放非零元素; 3.具体的输入和输出格式不限; 4.算法要具有较好的健壮性,对错误操作要做适当处理。 三,源代码及结果截图 3.1 #include

#include #include #define MaxSize 100 typedef struct { char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长 }SqString; void StrAssign(SqString &str,char cstr[]) { //由串常量cstr创建串str int i; for(i=0;cstr[i]!='\0';i++) str.data[i]=cstr[i]; str.length=i; } void DispStr(SqString s) { //输出串s的所有元素 int i; if(s.length>0){ for(i=0;i=t.length)

虚拟仪器实验三

实验三LabVIEW编程的数组和簇与图形显示 (一)LabVIEW编程的数组和簇 一、实验目的 1.掌握如何创建、使用数组;数组函数的功能和应用,掌握它们的区别以及相应操作。 2.掌握如何创建、使用簇;簇函数的功能和应用,掌握它们的区别以及相应操作。 二、实验原理 1.数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。可以通过数组索引访问其中的每个元素。数组元素不能是数组、图表或者图形。 LabVIEW提供了很多用于操作数组的功能函数,位于函数Functions?数组Array中。其中包括创建数组、初始化数组、数组大小、数组子集、索引数组等。 创建数组:用于根据标量值或者其他的数组创建一个数组。 初始化数组:创建所有元素值都相等的数组。 数组大小:返回输入数组中的元素个数。 数组子集:选取数组或者矩阵的某个部分。 索引数组:用于访问数组中的某个元素。 建立数组的步骤如下: 1)从数组和类子模板(Controls-All Controls-Array & Cluster)上选中数组,放置在前面板中,此时为数组空壳,可以向里边添加(用拖拽的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。此时可以看到数组上有两个显示窗口:标号显示窗:标号从0开始,每单击一次“增加”键,标号显示值顺序递增。这个标 号就是数组元素的序号;对于一个含n个元素的数组,其标号为0~n-1。 元素显示窗:用来显示元素的数值。数组中的元素按序号排列。数组元素的查找按行 /列标号进行。 2)右键单击标号窗口,弹出一个快捷菜单,选择Add Dimension来增加数组的维数。 2.簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的structure。使用簇可以把分布在框图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度,减少子VI的连接端子的数量。 簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图。它有多个输入,一个输出。 要建立簇,可以选择控制模板中数组和类子模板上的Cluster,将其调入前面板。向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素“捆绑”在一起。 捆绑(Bundle)数据 Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的 簇中的元素。可以用位置工具拖曳其图标的右下角以增加输入端子的个数。

c++实验3程序结构和数组

实验3:C++语言程序结构、数组 说明:所有的程序和文档都建立在学生学号_名字_第三次实验文件夹内,最终以压缩文件的形式提交到指定邮箱。 第一部分 基础练习 1.用牛顿迭代法求方程:3x 3 +2x 2 -8x-5=0,在x=1.5附近的根。 ◆ 要求:前后两次求出的x 的差的绝对值小于10-6 ,则为结果。 ◆ 思路: 如图所示,设x n 为一个接近x a 的近似根,过(x n , f(x n )) 点做切线,其切线方程为: n n n n x x x f x f -= +1) ()(' 式中只有x n+1为未知量,将它放在等号的左边,即: 上式就为牛顿迭代公式。 源代码: #include #include using namespace std; int main() { float x1,x0,f,f1; x1=1.5; do

{ x0=x1; f=3*x0*x0*x0+3*x0*x0-8*x0-5; f1=9*x0*x0+4*x0-8; x1=x0-f/f1; }while (fabs(x1-x0)>1e-6); cout<<"该方程的根为:"<

C语言大学实用教程学习指导·138· 2.编程序,输出以下图形 ①********* ******* ***** *** * ②***** **** *** ** * ③ 1 13 135 1357 13579 ④ A BBB CCCCC DDDDDDD CCCCC BBB A 要求 应该使用双重循环。外循环体中包含两个并列的for循环语句,分别控制每行输出的空格符和非空格字符(如:星号);用cout <<“\n”; 语句控制输出一行字符之后回车换行。 源程序: #include using namespace std; int main () { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) cout<<" "; for(j=11-2*i;j>0;j--) cout<<"*"; cout<<"\n"; } cout<<"\n"; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) cout<<" "; for(j=6-i;j>0;j--) cout<<"*"; cout<<"\n"; } cout<<"\n"; for(i=1;i<=5;i++) { for(j=6-i;j>0;j--) cout<<" "; for(j=1;j<=i;j++)

实验三 数组与指针实验

实验三数组与指针实验 【实验目的】 1.学习使用数组数据对象。 2.掌握指针的使用方法。 3.学习通过动态内存分配实现动态数组的定义和使用,并体会指针在其中的作用。4.练习通过Debug观察指针的内容及其所指对象的内容。 【实验内容】 1.运行下列程序,观察运行结果。 (1)#include class ArrayElem { int x; public: ArrayElem(int i){x=i;} //带参数的构造函数 int getx(){return x;} }; int main() { ArrayElem obs[4] ={-1,-2,-3,-4}; //创建对象数组并初始化 for(int i=0;i<4;i++) cout<<"obs["< class NumClass { int num; public: void set_num(int val){num=val;} void show_num(){cout<<"The num is :"<set_num(20);p->show_num(); //通过指针调用成员函数 return(0); } (3)#include class NumClass

数组实验3

数组 一、实验目的:掌握数据组的声明、创建、初始化和数组元素的使用。 二、实验内容: 1、编写一个程序创建一个数组用于存放10个学生的成绩,计算10个学生的总成绩和平均成绩并输出。(stduent’s grade) 2、定义一个一维的整数数组,其中存储随机生成的100个整数,利用你所熟悉的一种排序方法对他们进行升序排序,输出排序后的结果。(sort) 3、定义一个一维数组,其中存储随机生成的1000个1~100以内的整数,统计每个整数出现的次数。(counter ) 4、Run the following program to write the outputting, and explain it. public class Q{ public static void main(String arg[]){ int anar[] = new int[]{1,2,3}; System.out.println(anar[1]); int i = 9; switch(i){ default: System.out.println("default"); case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); } boolean b=true; boolean b2 = true; if (b= =b2){ System.out.println("So true"); } } } 三、实验指导: 1、ScoreDemo.java程序 public class ScoreDemo{ public static void main(String args[]) { float sum=0;

实验三.数组与字符串

1.实验三数组与字符串 一、实验目的: 1.熟悉Java的数组的使用,编程练习数组声明、定义、遍历和排 序等操作。 2.熟悉Java的字符串相关类的使用,通过编程实现针对字符串的 一般操作。 二、实验内容: 1.定义一个有10个元素的整型数组,找出最大最小值; 2.定义一个有10个元素的整型数组,用选择法实现由小到大排序; 3.定义一个能实现冒泡法排序的方法bSort(int[] arr),然后定义并 初始化一4*5的二维数组,用bSort(int[] arr)将该二维数组的每 行元素进行升序排序; 4.编程求解一个3*3矩阵每一行的元素之和,每一列元素之和,对 角线元素之和,并输出。 5.接收键盘输入的字符串,使用String类的方法indexOf()来统 计该字符串中各个字符出现的次数。 6.设定并初始化一个字符串数组,并将数组中那些以字母b开头的 元素打印出来。 7.接收键盘输入的字符串,分别按顺序输出该字符串中的大写字符 和小写字符。 8.接收键盘输入的英文字符串(单词之间用空格隔开),将字符串 中出现的单词首字母改成大写后输出。 三、实验要求: 1.通过实验掌握数组的定义和初始化; 2.掌握数组最值求解算法; 3.掌握数组的基本排序算法; 4.掌握遍历数组的算法; 5.通过实验掌握String类的使用; 6.通过实验掌握String类常用方法的使用;

7.从JDK文档中查阅String类的以下方法(与本实验内容相关): split(),startWith(),toUpperCase(),indexOf(),charAt(),并说明 它们的用法; 8.写出实验报告。 四、实验学时:3学时 五、实验步骤: 1.进入Java编程环境; 2.新建一个Java文件,编写main()方法实现一维数组求最值的算 法; 3.新建一个Java文件,编写main()方法实现一维数组选择法排序 算法; 4.新建一个Java类,定义bSort(int[] arr)方法(冒泡法)实现数组 升序排序,然后在main方法里实现对一4*5二维数组每行元素 的升序排序; 5.新建一个Java文件,编写main()方法声明并初始化一两维3*3 数组,设计算法实现行、列和对角线元素的求和操作; 6.编写主方法main(),其中实现接收键盘输入功能、文件操作功能 和文件内容输出功能; 7.调用相应构造方法创建String对象; 8.查阅JDK文档,找出可以实现实验内容的String方法,设计算 法,编写程序; 9.调试运行程序,观察输出结果。

c语言 上机实验3 数组的应用

C语言程序设计实验报告 实验三使用数组的程序设计 班级 2012196 学号 201219613 姓名刘欢 一、实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握字符数组的使用。 (3)掌握与数组有关的算法。 二、实验内容及步骤 1、检验并打印幻方矩阵 在下面的5*5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 程序代码: #include void main() { int a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25 ,2,9}}; int i,j,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int sum6=0,sum7=0,sum8=0,sum9=0,sum10=0,sum11=0,sum12=0; for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%5d",a[i][j]); } printf("\n"); } for(j=0;j<5;j++) { sum1=sum1+a[0][j]; sum2=sum2+a[1][j]; sum3=sum3+a[2][j]; sum4=sum4+a[3][j]; sum5=sum5+a[4][j]; }

实验报告_实验3 类与对象

实验报告_实验3类与对象(学生学号_姓名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样? 答:四个,getRadius(),setRadius(floatradius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: classRectangle { privatefloatwidth;

privatefloatlength; publicfloatgetWidth() //获取矩形宽度 {returnwidth;} publicfloatgetLength() //获取矩形长度 {returnlength;} publicfloatgetPerimeter() //获取矩形周长 {return2*(width+length);} publicfloatgetArea() //获取矩形面积 {return(width*length);} publicvoidsetWidth(floatw) //设置矩形宽度 {width=w;} publicvoidsetLength(floatl) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么? 答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。 (2)Circle类定义了几个构造方法(即构造器)?Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做? 答:Circle类定义了个构造方法;不存在,写入Circle(){}; (3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的? 答:CircleTest类创建了两个Circle对象;Circle对象名=newCircle()。 (4)CircleTest类中如何调用对象的方法? 答:CircleTest类调用对象方法:对象名.方法 4.写出OverrideTest中所缺的三行代码: publicclass OverrideTest{ publicstaticvoid main(String[]args){ //使用Box类的无参构造方法创建方法创建对象box1 ; System.out.println(box1); //使用Box类的带一个参数的构造方法创建对象box2,参数值为5.0 ; System.out.println(box2);

实验3-方法和数组

实验3-方法和数组

x x x x大学计算机与信息技术学院实验报告

for(int i=0;ilist[j]){ //如果有比他小的 currentMin=list[j]; //吧此时的值放入currentMin currentMinIndex=j; //记下此时的位置 } } if(currentMinIndex !=i){ list[currentMinIndex]=list[i]; list[i]=currentMin; } //交换位置 } System.out.println("排序结果是:"); for(int i=0;i

public class LX3_2 { public static void main(String[] args) { double []text={ 7, 4, 3, 9, 0, 6}; insertionSort(text); } public static void insertionSort(double [] list){ for(int i=1;i=0&&list[k]>currentElement;k--){ list[k+1]=list[k]; //移动出插入位置} list[k+1]=currentElement; //放入插入数据} System.out.println("排序结果是:"); for(int i=0;i

实验3-数组与指针

实验3 数组与指针 程序填空 1. 本题分值:10 题目描述: 随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出“不存在”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。 代码: #include using namespace std; int main( ) { int a[101],k,x; for(k=1;k<=10;k++) //从数组中下标1的元素开始存放数据 { a[k]=rand( )%101; //产生0~100之间的的整数 // cout<>x; //输入待查找数x for(k=1;k<=10;k++) if(a[k]==x) __(1)__; //若发现了x,则不用继续循环、继续查找if(k__(2)__) cout<<"x存在,它的位置序号是:"<<__(3)__<

#include using namespace std; int main() { int n,i,sum=0,*p; cin>>n; //输入一个整数n p=new int[__(1)__]; //创建一个含有n个整数的整数数组 for(i=0;i>__(2)__; for(i=0;i using namespace std; int main( ) { int a[101],k,j,x; //分别输入5个整数 for(j=1;j<=5;j++) cin>>a[j]; cin>>x>>k; //输入待插入的数x和插入的位置下标k if(k<1 || k>5) return 0; for(j=5;j>=k; __(1)__) //从下标5到下标k,将每个数组元素都后移1个位置a[j+1]=a[j]; __(2)__=x; //输出将x插入到下标k后的这6个数 for(j=1;j__(3)__;j++) cout<

实验三 指针和数组

实验三指针和数组(4学时) 一.实验类型 验证性 二.实验目的 1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握与数组有关的算法(特别是排序算法)。 3.了解指针的概念,学会定义和使用指针变量。 4.掌握指针、变量和数组的关系及使用方法。 三.实验内容和要求 1. 在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。 分析:C中数组长度必须是确定大小,即指定N的值。 #define N 10 main() { int a[N],i,j,temp; printf("please input %d numbers\n",N); for(i=0;i #define M 3 #define N 4 main() { int max,i,j,r,c; int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;imax) { max=a[i][j]; r=i; c=j; } printf("max=%d,row=%d,colum=%d\n",max,r,c);

实验3-数组与指针

实验3-数组与指针

实验3 数组与指针 程序填空 1. 本题分值:10 题目描述: 随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出“不存在”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。 代码: #include using namespace std; void main( ) { int a[101],k,x; for(k=1;k<=10;k++) //从数组中下标1的元素开始存放数据

{ a[k]=rand( )%101; //产生0~100之间的的整数 cout<>x; //输入待查找数x for(k=1;k<=10;k++) if(a[k]==x) __(1)__; //若发现了x,则不用继续循环、继续查找 if(k__(2)__) cout<<"x存在,它的位置序号是:"<<__(3)__<

并求其所有元素之和。请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。 代码: #include using namespace std; void main() { int n,i,sum=0,*p; cin>>n; //输入一个整数n p=new int[__(1)__]; //创建一个含有n 个整数的整数数组 for(i=0;i>__(2)__; for(i=0;i

实验9数组3

实验9 数组(3) 9.1 实验目的 1. 掌握一维数组、二维数组的声明与初始化的方法; 2. 掌握一维数组和二维数组元素的直接访问方法; 3. 进一步理解数组名作为函数参数时的作用; 4. 理解字符数组、字符串的输入输出等基本方法。 9.2 实验预备工作 本次实验涉及一维数组、二维数组的声明和初始化、数组元素的引用、数组作为函数的参数等概念。在进入“实验内容”之前,请做好如下准备工作: 1.复习并理解数组声明与初始化的基本方法,掌握数组元素的引用方法; 2.理解数组名作为函数参数时的作用; 3. 理解常用的字符串函数。 9.3实验内容 1.请编辑调试下列程序,观察其运行结果,理解数组的声明、数组元素的引用等基本概念。 【源程序】 #include void main() { int a[3][3]={{3,8,12},{4,7,10},{2,5,11}}, i,j,k,t; for(j=0;j<3;j++) { for(k=0;k<2;k++) { for(i=0;i<2-k;i++) if(a[i][j]>a[i+1][j]) t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t; } } for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",a[i][j]); printf("\n"); } } 该程序的功能是________________________________________________________。

2. 在m行n列的二维数组中找出最小值的元素,然后将该元素所在行与最后一行交换,将该元素所在列与最后一列交换。请按功能要求改正下列程序中的错误,并调试运行程序。 【源程序】 #include #define M 3 #define N 4 main() { int x,k,j,com,col,t; int a[M][N]={12,1,56,34,10,2,45,3,9,7,4,65}; for(k=0;k

相关文档