




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 数组编程(设计性实验)一、实验目的1进一步理解和掌握Java语言中数组的概念;2掌握数组在方法中的使用,包括把数组传递给方法和从方法中返回数组,并能使用数组进行程序设计。二、实验教学要求1性质:必做实验实验类型:设计性2时间要求:在讲完“数组”之后安排,需要6学时。2对学生的要求:编写好程序。3对教师的要求:预做本实验。4对实验室的要求:在windows环境中装有Java开发工具(如J2SE5.0版),以及IE6.0以上版本。二、实验原理创建Java数组需要下面三个步骤: 声明数组声明数组的语法格式有如下两种:数组元素类型 数组名 ;数组元素类型 数组名;如int a ; int a; 创建数组空间声明数组仅仅指定了数组的名字和数组元素的类型,要想真正使用数组还需要为它分配内存空间,即创建数组空间。在创建数组空间时,必须指明数组的长度,以确定空间的精确大小。语法格式为:数组名=new 数组元素类型数组元素的个数;如:int a ;a=new int10;以上两步可组合在一起,用一条语句完成:int a =new int10;用new运算符为数组分配内存空间的同时,数组的每个元素都会被自动赋予一个默认值。整型为0,浮点型为0.0,字符型为0,布尔型为false,引用型为null。 初始化数组元素如果是基本数据类型,那么这个步骤可以自行省略。也可以在创建数组空间的时候,同时将初始值给出。如:int a =1,2,3,4; /int a=new int1,2,3,4 在Java语言中,一个数组就是一个对象。每个数组都有一个属性length,用来指明数组的长度。数组元素的类型可以是基本数据类型,也可以是类类型,因此可以使用数组来包含一系列的对象。student 类名student s =new student50;创建元素需使用如下形式的代码段:for(int i=0;is.length;+i)si=new student( );三、实验实例1. 数据排序。数据排序就是将一群数据排成某种特定的顺序,这种顺序可能是升序或降序,是最重要的计算应用之一。使用冒泡排序法对数据进行排序:将相邻的两个数据加以比较,若左边的值大于右边的值,则将此两个值互相交换;若左边的值小于等于右边的值,则此两个值的位置不变。右边的值继续和下一个值做比较,重复操作,知道比较到最后一个值。程序import java.util.Scanner;public class BubbleSortpublic static void main(String args)int a = new int 10;Scanner input = new Scanner(System.in);System.out.println(任意输入十个数);for(int i= 0; i10;i+)ai = input.nextInt();bubbleSort(a);System.out.print(冒泡排序后的顺序: ); for(int i=0; i =1;i-)for(int j=0;jaj+1) int temp=aj;aj=aj+1;aj+1=temp;截图2. 顺序查找。利用查找关键值与每一个数组元素进行比较。1.程序import java.util.Scanner;public class SequentialSearchpublic static void main(String args)int a = new int 10;Scanner input = new Scanner(System.in);System.out.print(任意输入十个数:n);for(int i= 0; i10;i+)ai = input.nextInt();System.out.println(请输入查找的数);int n= input.nextInt();sequentialSearch(a,n);public static void sequentialSearch(int a,int m)int count=0;for(int i=0;i10;i+)if(ai=m)System.out.print(顺序查找这个数在第+i+位置n);count+; if(count=0) System.out.print(没有查到这个数n);2.截图3. 二分查找。又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。1.程序import java.util.Scanner;public class binarySearchpublic static void main(String args) int a = new int 10;Scanner input = new Scanner(System.in);System.out.print(任意输入十个数:n);for(int i=0;i10;i+)ai=input.nextInt();System.out.println(请输入查找的数);int d= input.nextInt();selsctsore(a); print(a); System.out.print(n); binarySearch(a,d); public static void selsctsore(int a) for(int i=0;ia.length;i+) for(int j=i+1;jaj) int temp; temp=ai; ai=aj; aj=temp; public static void print(int a)for(int i=0;ia.length;i+)System.out.print(ai+ );public static void binarySearch(int a,int n)int startpos=0;int endpos=9; int m=(startpos+endpos)/2; int count=0;while(startposendpos)if(amn)endpos=m-1; if(am=n) System.out.print(二分查到这个数是在第+m+个位置n);count+; break; m=(startpos+endpos)/2; if(count=0) System.out.print(没查到这个数); 2.截图 四、实验内容及步骤(1)从键盘输入n个数赋值给数an,输出这些数中大于其平均值的数,求且输出这n个数的最大值与最小值。(2)编写一个程序,生成一个10*10的二维随机整数(100以内的随机整数为(int)(Math.random()*100)数组,1)求对象线上各元素的和;2)求且输出矩阵中最大值与最小值;(3)编写一个Java程序,完成以下功能:1)声明一个名为name的String对象,内容是“My name is Networkcrazy”;2)打印字符串的长度;3)打印字符串的第一个字符;4)打印字符串的最后一个字符;5)打印字符串crazy的位置(从0开始编号的位置)五、实验报告要求 记录查看的结果。 写出程序编辑、编译及运行结果。第三章 数组与字符串 一、判断题 1下标是用于指出数组中某个元素位置的数字或变量。( ) 2同一个数组中可以存放多个不同类型的数据。( ) 3数组的下标可以是 int 型或 float 型。( ) 4数组可以声明为任何数据类型。( ) 5. 执行语句 int a后数组元素的值为0。( ) 6假定整形数组的某个元素被传递给一个方法并被该方法修改。当调用方法执行完毕时,这个元素中含有修改过的数值。( ) 7.执行语句 int a = new int50后数组元素的值为 0。( ) 8. 对于二维数组 s 来说,s 2.length 给出数组 s 第 2 行的元素个数。( ) 9数组作参数时,数组名后必须加方括号。( ) 10用运算符“=”比较字符串对象时,只要两个字符串包含的是同一个值,结果便为 true。( ) 11String 类字符串在创建后可以被修改。( ) 12方法 replace (String srt1, String srt2)将当前字符串中所有 srt1 子串换成 srt2子串。 13方法 compareTo 在所比较的字符串相等时返回 0。( ) 14方法 IndexOf(char ch,-1)返回字符 ch 在字符串中最后一次出现的位置。( ) 15方法 startsWith 判断当前字符串的前缀是否和指定的字符串一致。( ) 二、选择题 1.数组元素之所以相关,是因为它们具有相同的。A 名字 B 类型 C 下标 D 地址 2设有定义语句 int a =66,88,99; 则以下对此语句的叙述错误的是。 A 定义了一个名为 a 的一维数组 B a数组有 3 个元素 C a数组的元素的下标为 13 D 数组中的每个元素是整型 3为了定义三个整型数组 a1a2a3,下面声明正确的语句是。 A intArray a1,a2; int a3 =1,2,3,4,5; B int a1,a2; int a3 =1,2,3,4,5; C int a1,a2 ; int a3=1,2,3,4,5; D int a1,a2; int a3=(1,2,3,4,5); 4设有定义 int a=new int4; ,a 的所有数组元素是。 A a0, a1, a2, a3 B a0, a1, a2, a3 C a1, a2, a2, a4 D a0, a1, a2, a3, a4 5.下面哪个选项正确地声明了一个字符串数组: A char str B char str C String str D String str10 6.请看下面的程序段: public class class1 public static void main(String a) int x = new int8; System .out .println(x 1); 当编译和执行这段代码时会出现: A 有一个编译错误为“possible reference before assignment” B 有一个编译错误为“illegal array declaration syntax” C 有异常出现为“Null Pointer Exception” D 正确执行并且输出 0 7已知 String 对象 s=abcdefg,则 s.substring(2, 5)的返回值为_。 A bcdeB cde C cdef D def 8.请看下面的代码 String s = “people”; String t = “people”; String c = p,e,o,p,l ,e; 下面哪一选项的语句返回值为真: A s .equals(t); B t .equals(c); C s=t; D t .equals(new String(“people”); E. t=c; 9已知 s 为一个 String 对象,s=abcdefg,则 s.charAt(1)的返回值为_。 A a B b C f D g 10.请看下面的代码 String s = “good”; 下面选项语句书写正确的是: A s += “student”; B char c = s1; C int len = s .length; D String t = s.toLowerCase( ); 11.正确创建一个含有 5 个元素的字符串数组的选项是: A String s = new String5; for(int i=0;i5;si+=“”); B String s =“”, “”, “”, “”, “”; C String s5; D String 5s; 12.请看下面的代码 public class class1 String str = new String(Girl); char ch =d,b,c; public static void main(String args ) class1 x=new class1( ); x.change(x.str,x.ch); System .out .println(x.str + and +x.ch0+x.ch1+x.ch2); public void change(String str,char ch ) str=Boy; ch0=a; 该程序的输出结果是: A Boy and dbc B Boy and abc C Girl and dbc D Girl and abc 三、填空题 1定义一个整型数组 y,它有5个元素分别是 1,2,3,4,5。用一个语句实现对数组y的声明、创建和赋值:_。 2设有整型数组的定义:int x =12,34,-5,3,2,6;,则 x.length 的值为_。 3求取二维数组 a 第 i行元素个数的语句是_。 4若有定义 int a=new int8; 则 a 的数组元素中第 8 个元素的下标是_ 。 5已知 String 对象 s=“hello”,运行语句 System.out.println(s.concat (“World !”); 后 s 的值为_。 6使用+ =将字符串 s2 添加到字符串 s1后的语句是_。 7比较 s1 中的字符串和 s2 中的字符串的内容是否相等的语句是_。 8 已知 sb 为 StringBuffer 的一个实例, 且 sb= abcde , 则 sB reverse()后 sb 的值为_。 9已知 sb 为 StringBuffer 的一个实例,且 sb= abcde ,则 sB delete(1,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025音乐作品使用许可合同》
- 定金买地合同范本
- 话费代充合同范本
- 供热委托经营合同范本
- 破碎矿石加工合同范本
- 砌墙的劳务合同范本
- 农村迷信阴阳合同范本
- 移动公司合作合同范本
- 电梯设备转让合同范本
- 水电装修合同范本6
- 2025年副高卫生职称-公共卫生类-妇女保健(副高)代码:093历年参考题库含答案解析(5卷)
- 2023年高考作文备考之广东重点中学六校四联“鲁侯养鸟”分析
- 公路工程项目管理大纲
- GB/T 34557-2017砂浆、混凝土用乳胶和可再分散乳胶粉
- 半导体制造工艺基础之扩散工艺培训课件
- 溶剂油MSDS危险化学品安全技术说明书
- SURPAC软件地质建模操作步骤
- 新北师大单元分析六上第六单元《比的认识》单元教材解读
- 福建升辉鞋业有限公司年加工EVA鞋底385万双、TPR鞋底65万双、PVC鞋底60万双项目环评报告表
- 零星维修服务方案
- 华为客户接待规范接待礼仪课件
评论
0/150
提交评论