Java练习 实验 数组
- 格式:docx
- 大小:24.38 KB
- 文档页数:8
Java Object-Oriented Programming Experimental Report3.2 Grading Quizzes (Choose to do)3.3 Reversing an Array(Choose to do)3.4 Adding To and Removing From an Integer List(Choose to do) 3.5 A Shopping Cart (Choose to do)3.6 Averaging Numbers (Choose to do)3.7 Exploring Variable Length Parameter Lists3.8 Magic Squares(Choose to do)3.9 A Shopping Cart Using the ArrayList Class (Choose to do) 3.10 A Polygon Person(Choose to do)3.11 An Array of Radio Buttons\3.12 Drawing Circles with Mouse Clicks3.13 Moving Circles with the Mouse(Choose to do)3.14 Moving a Stick Figure(Choose to do)4.Experimental results and data processing5.Analysis and discussionScore: 6.Teacher ReviewsSignature:Date:Experimental Report List1 Tracking Saleepackage test_java_07_01;import java.util.Scanner;import java.util.Arrays;public class test_01{public static void main(String[] args){final int SALESPEOPLE = 5;int[] sales = new int[SALESPEOPLE];Scanner scan = new Scanner(System.in);for (int i=0; i<sales.length; i++){System.out.print("Enter sales for salesperson " + i + ": ");sales[i] = scan.nextInt();}int sum,max=0,maxi=0,min=sales[0],mini=0;for(int i=1;i < sales.length;i++){if(sales[i]<min){min=sales[i];mini=i;}}System.out.println("\nSalesperson Sales");System.out.println("--------------------");sum = 0;for (int i=0; i<sales.length; i++){System.out.println(" " + i + " " + sales[i]);if(sales[i]>max){max=sales[i];maxi=i;}sum += sales[i];}float avg=sum/5;System.out.println("\nTotal sales: " + sum);System.out.println("Salesperson "+ (maxi+1) +" had the highest sale with" + max);System.out.println("Salesperson "+ (mini+1) +" had the leatst sale with " + min);System.out.println("put in the sale");int sal=scan.nextInt(),summer=0;for(int i=0;i<sales.length;i++){if(sales[i]>=sal){System.out.println("saleman "+(i+1)+" expend this sale,he has "+sales[i]);summer++;}}System.out.println("the salesmen have "+summer+" people can acquire this goal");}}7 Exploring Variable Length Parameter Listspackage test_java_07_07;import java.util.Scanner;public class test_01{//-----------------------------------------------// Calls the average and minimum methods with// different numbers of parameters.//-----------------------------------------------public static void main(String[] args){double mean1, mean2,mean3, mean4;int [] number=new int[20];Scanner scan =new Scanner(System.in);mean1 = average(42, 69, 37);mean2 = average(35, 43, 93, 23, 40, 21, 75);mean3 = average(13);mean4 = average();for(int i =0;i<number.length;i++){number[i]=scan.nextInt();}double avg=average(number);int min=minnumber(number);System.out.println ("mean1 = " + mean1); System.out.println ("mean2 = " + mean2); System.out.println ("mean3 = " + mean3); System.out.println ("mean4 = " + mean4); System.out.println ("avg = " + avg);System.out.println ("min = " + min);}public static double average (int ... list) {double result = 0.0;if (list.length != 0){int sum = 0;for (int num: list)sum += num;result = (double)sum / list.length; }return result;}public static int minnumber(int ...list){int min=list[0];for(int i=1 ;i < list.length;i++){if(list[i]<=min){min=list[i];}}return min;}}11 An Array of Radio Buttons(1)package test_java_07_11;import javax.swing.*;public class test_01{// ------------------------------------------------------------- // Creates and presents the frame for the color change panel.// ------------------------------------------------------------- public static void main (String[] args){JFrame colorFrame = new JFrame ("Color Options");colorFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);test_02 panel = new test_02();colorFrame.getContentPane().add (panel);colorFrame.pack();colorFrame.setVisible(true);}}(2)package test_java_07_11;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class test_02 extends JPanel{private final int WIDTH = 350, HEIGHT = 100, FONT_SIZE = 20;private final int NUM_COLORS = 5;private Color [] color = new Color[NUM_COLORS];private JLabel heading;private JRadioButton [] colorButton ;// ------------------------------------------------------------------// Sets up a panel with a label at the top and a set of radio buttons // that control the background color of the panel.// ------------------------------------------------------------------public test_02 (){color[0] = Color.yellow;color[1] = Color.cyan;color[2] = Color.red;color[3] = Color.green;color[4] = Color.magenta;heading = new JLabel ("Choose the background color!");heading.setFont (new Font ("Helvetica", Font.BOLD, FONT_SIZE)); //刚开始add (heading);setBackground (Color.WHITE);colorButton = new JRadioButton[NUM_COLORS]; //创建选框colorButton[0] =new JRadioButton("yellow");colorButton[1] =new JRadioButton("cyan");colorButton[2] =new JRadioButton("red");colorButton[3] =new JRadioButton("green");colorButton[4] =new JRadioButton("magenta");ButtonGroup group = new ButtonGroup(); //为选框分组group.add(colorButton[0]);group.add(colorButton[1]);group.add(colorButton[2]);group.add(colorButton[3]);group.add(colorButton[4]);colorButton[0].setSelected(true);ColorListener linster =new ColorListener(); //为选框添加监听器for(int i = 0;i < colorButton.length;i++) //把选框添加到面板{colorButton[i].addActionListener(linster);add(colorButton[i]);}setPreferredSize (new Dimension (WIDTH, HEIGHT));}private class ColorListener implements ActionListener{// Updates the background color of the panel based on// which radio button is selected.private test_02 test;public void actionPerformed (ActionEvent event){if(colorButton != null){for(int i = 0;i < colorButton.length; i++){if(colorButton[i].isSelected()){//test =new test_02();setBackground(color[i]);}}}}}}12 Drawing Circles with Mouse Clicks(1)package test_java_07_12;import javax.swing.JFrame;public class test_01{//----------------------------------------------------------------- // Creates and displays the application frame.//----------------------------------------------------------------- public static void main (String[] args){JFrame circlesFrame = new JFrame ("Circles");circlesFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);circlesFrame.getContentPane().add (new test_03_JFrame());circlesFrame.pack();circlesFrame.setVisible(true);}}(2)package test_java_07_12;import java.awt.*;import java.util.Random;public class test_02{private int centerX, centerY;private int radius;private Color color;static Random generator = new Random();//---------------------------------------------------------// Creates a circle with center at point given, random radius and color// -- radius 25..74// -- color RGB value 0..16777215 (24-bit)//---------------------------------------------------------public test_02(Point point){radius = Math.abs(generator.nextInt())%50 + 25;color = new Color(Math.abs(generator.nextInt())% 16777216);centerX = point.x;centerY = point.y;}//---------------------------------------------------------// Draws circle on the graphics object given//---------------------------------------------------------public void draw(Graphics page){page.setColor(color);page.fillOval(centerX-radius,centerY-radius,radius*2,radius*2);}public void drawwhite(Graphics page){page.setColor(Color.WHITE);page.fillOval(centerX-radius,centerY-radius,radius*2,radius*2);}public void move(Point p){centerX = p.x;centerY = p.y;}public boolean isInside(Point p){if(Math.sqrt((p.x-centerX)*(p.x-centerX)+(p.y-centerY)*(p.y-centerY))>radi us){return false;}else{return true;}}}(3)package test_java_07_12;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class test_03_JFrame extends JPanel{private final int WIDTH = 600, HEIGHT = 400;private test_02 circle;//-----------------------------------------------------------------// Sets up this panel to listen for mouse events.//-----------------------------------------------------------------public test_03_JFrame(){addMouseListener (new CirclesListener());setPreferredSize (new Dimension(WIDTH, HEIGHT));}//-----------------------------------------------------------------// Draws the current circle, if any.//-----------------------------------------------------------------public void paintComponent (Graphics page){super.paintComponent(page);if (circle != null)circle.draw(page);}//***************************************************************** // Represents the listener for mouse events.//***************************************************************** private class CirclesListener implements MouseListener{//--------------------------------------------------------------// Creates a new circle at the current location whenever the// mouse button is pressed and repaints.//--------------------------------------------------------------public void mousePressed (MouseEvent event){if (circle == null){circle = new test_02(event.getPoint());}else{if(circle.isInside(event.getPoint())){circle=null;}else{circle = new test_02(event.getPoint());circle.move(event.getPoint());}}repaint();}//-----------------------------------------------------------------// Provide empty definitions for unused event methods.//-----------------------------------------------------------------public void mouseClicked (MouseEvent event) {circle = new test_02(event.getPoint());circle.move(event.getPoint());}public void mouseReleased (MouseEvent event) {}public void mouseEntered (MouseEvent event) {setBackground(Color.WHITE);;}public void mouseExited (MouseEvent event) {setBackground(Color.blue);}}}。
java数组实验报告《Java数组实验报告》在计算机编程中,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且可以通过索引来访问和操作这些数据。
在Java编程语言中,数组也是一个非常常用的数据类型,它可以用来解决各种问题,比如存储一组数字、字符串或者其他对象。
为了更好地理解和掌握Java数组的使用,我们进行了一系列的实验。
首先,我们学习了如何声明和初始化一个数组,以及如何访问和修改数组中的元素。
接着,我们实验了数组的遍历和排序,掌握了常见的数组操作技巧。
然后,我们深入研究了多维数组的使用,比如二维数组和三维数组,以及如何在程序中使用这些复杂的数据结构。
在实验过程中,我们发现了一些有趣的现象。
比如,在数组遍历和排序的过程中,我们可以通过循环和条件判断来实现各种不同的算法,从而对数组进行高效的操作。
另外,多维数组的使用也为我们提供了更多的可能性,可以用来表示更加复杂的数据结构,比如矩阵和图等。
通过这些实验,我们不仅深入理解了Java数组的使用方法,还提高了自己的编程技能。
我们相信,掌握了数组这一基础的数据结构,我们在以后的编程工作中一定会更加得心应手,能够更加高效地解决各种问题。
同时,我们也意识到,数组作为一种基础的数据结构,它的重要性不言而喻,我们应该不断地加强对它的学习和理解,以便更好地应用它来解决实际问题。
总之,通过这次实验,我们对Java数组有了更加深入的了解,也提高了自己的编程能力。
我们相信,通过不断地学习和实践,我们一定能够成为更加优秀的程序员,为社会的发展做出更大的贡献。
第三次Java实验报告实训1》:1.实训目的:(1).了解Java中数组的定义。
(2).掌握不同类型数组的声明方法及其应用。
(3).掌握一维和二维数组的创建及其使用方法。
2.实训内容:编写一个Java程序,用随机生成一维字符数组,然后先按正序再按反序输出它们。
3.实训步骤:1》.在包“su”中创建可视类“sujian”.2》.添加组件:Lable和Button更改其属性和Text。
3》.添加事件响应代码:对“确定”选择Events- widgetSelected并将代码改为:char[] s=new char[15];for(int i=0;i<s.length;i++){int k=(int)(Math.random()*26+97);s[i]=(char)k;}String str="随机字符";String str1="反向输出";for(int i=0;i<s.length;i++){str=str+Character.toString(s[i]);str1=str1+Character.toString(s[s.length-i-1]);}label.setText(str);label1.setText(str1);运行结果为:实训2》.1.实训内容:编写一个Java程序,用二维数组实现奇数阶的魔方矩阵:规律为:1.数1放在第一行的正中一列,2.从2起{每个数所在的行数比前一数的行数减1,列数加1。
如果行数超过下界(上界)则改为上界(下界),3.如果数为n 的倍数,则其后的数所在位置列数不变,行数加1}2.实训步骤:(1).在包中创建一个sujian1可视类(2).添加组件:Lable和Button更改其属性和Text。
(3).添加事件响应代码:对“确定”选择Events- widgetSelected 并将代码改为:MessageBox box=new MessageBox(sShell,SWT.ICON_WARNING|SWT.OK);int n=Integer.parseInt(text.getText()==""?"-1":text.getText());if(n>9||n<1||n%2==0){box.setMessage("输入一个不超过9的正奇数:");}else{box.setText(n+"阶魔方阵");String[][] f=new String[n+1][n+1];String str="";int i=1,j=(n+1)/2;f[i-1][j-1]="1";for(int k=2;k<=n*n;k++){if((k-1)%n==0){i++;}else{i=(i==1)?n:i-1;j=(j==n)?1:j+1;}if(k<10){f[i-1][j-1]=""+Integer.toString(k);}else f[i-1][j-1]=Integer.toString(k);}for(i=0;i<n;i++){for(j=0;j<n;j++){str=str+f[i][j]+" ";}str=str+"\n";}box.setMessage(str);}box.open();text.selectAll();text.setFocus();运行结果为:。
实验七数组一实验目的1.掌握数组相关常用算法2.掌握方法的定义和调用二实验内容1. 使用程序生成两行随机整数,整数之间用逗号分隔,并写入文本文件data.txt中。
Math.random()返回0-1之间的随机数,通过乘以n并取整可得到0~n-1之间的随机数。
打开文件、关闭文件和写入文件的代码如下:BufferedWriter bw=new BufferedWriter(new FileWriter("data.txt")); //打开文件bw.write(new Integer(x)); //输出数据到文件bw.close(); //关闭文件另外,bw.newLine()可在文件中输出换行符。
写入数据类:package exp7(FileWrite);import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;public class FileWrite {public FileWrite(String fileName,int n,int size) throws IOException {//n为需要写入的几行数,size为一行有多少个数字BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));// 创建字符流for (int j = 1; j <= n; j++) {for (int i = 1; i <= size; i++) {int random = (int) (100 * Math.random());// 产生0-100之间的随机数String st = random + "";// 将整型转化为字符型数据bw.write(st);// 写入文件if(i<=size-1)bw.write('\t');// 在每个数据后面写入"制表位"}bw.newLine();// 另起一行}bw.close();// 关闭文件输出流}public FileWrite(int[] tar, String fileName) throws IOException {BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));for (int i = 0; i < tar.length; i++) {String st = tar[i] + "";bw.write(st);if(i<tar.length-1)bw.write('\t');}bw.close();System.out.println("文件写入成功!!!");}}读出数据类(ReadData)package exp7;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner;public class ReadData {public static ArrayList<int[]> readData(String fileName) throws IOException { // 创建ArrayList集合用于返回数组对象Scanner sc = new Scanner(new BufferedReader(new FileReader(fileName)));// 读入制定路径的文件ArrayList<int[]> al = new ArrayList<int[]>();// 创建ArrayList集合while (sc.hasNextLine()) {// 循环读出每行数据,并将每行数据装入数组中,再将数据装入集合中String st = sc.nextLine();// 一次性读取整行数据String strArr[] = st.split("\t");// 根据制表位分割数组int lengths = strArr.length;// 定义数组的长度int strToInt[] = new int[lengths];// 创建用于存储数字的整形数组for (int i = 0; i < strArr.length; i++) {strToInt[i] = Integer.parseInt(strArr[i]);// 将字符型数据转化为整型数据}al.add(strToInt);// 将两个数组存入集合中}int a[] = al.get(0);return al;// 返回集合对象}}2.读取第一题生成的data.txt文件中的第一行整数存放到整型数组a中。
知识点:数组的综合应用。
1、新建一个整数型数组,数组包括4个元素,通过循环为各个元素
赋值,然后打印数组内的各个元素。
2、定义一个由整数组成的数组,要求输出里面的奇数个数和偶数个
数。
3、定义一个10个元素组成的一维数组,输出该数组中的最大值、
最小值、所有元素总和,以及最大值和最小值在该数组中的位置。
4、通过循环按行优先顺序为一个5×5的二维数组a赋1到25的自
然数,然后输出该数组的左下半三角。
5、定义一个数组,存储10个学生的成绩,使用冒泡排序法按从小
到大输出。
6、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始
的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
7、打印斐波那契数列,从键盘输入打印第几项(必做)
要求:用数组实现。
说明:斐波那契数列:1,1,2,3,5,8,13,21,34,……其定义为:
f n =
1n=1,n=2
f
n-1
+f
n-2
n>2
ì
í
î
8、数组a包括10个整数,把a中所有的后项除以前项之商取整后
存入数组b,并按每行3个元素的格式输出数组b。
9、打印杨辉三角形。
从键盘输入杨辉三角形的行数。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
要求:用循环和数组实现。
说明:杨辉三角左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和。
实验4-2 数组与字符串【实验目的】1、熟练掌握String类的构造方法以及一些常用的方法的使用;2、熟练掌握StringBuffer类的构造方法以及一些常用的方法的使用;【实验内容】1、运行//TestStringCase2.java程序,分析该程序的作用。
public class TestStringCase2 {public static void main(String[] args) {String str = "Chinese New Year is the most important festival for Chinese people all over the world. It is also called the Spring Festival or the Lunar New Year.";String sFind = "Chinese";int count = 0;int index = -1;while(str.indexOf(sFind) !=-1) {index = str.indexOf(sFind);str = str.substring(index + sFind.length());count ++;}System.out.println(count);}}考虑:能否用indexOf(String str,int fromIndex)方法在不截取字符串的情况下实现。
2、编程实现下列问题,判断下列两个字符串是否相等:str1 = “The Lion King”,str2 = “THE LION KING”,若忽略大小写,是否相等?//Test.java3、编写一个方法,返回一个Double的二维数组。
数组中的元素通过解析字符串参数获得,如字符串参数:"1, 2;3, 4, 5;6, 7, 8"对应的数组应为:a[0][0] = 1.0; a[0][1] = 2.0;a[1][0] = 3.0; a[1][1] = 4.0; a[1][2] = 5.0;//TestArrayParser.java。
java实验报告--数组Java实验报告 - 数组引言:Java是一种广泛应用于软件开发的编程语言,其强大的数组功能使得它成为处理大量数据的理想选择。
本实验报告将探讨Java中数组的基本概念、使用方法以及一些常见的应用场景。
一、数组的定义与初始化在Java中,数组是一种用于存储多个相同类型元素的数据结构。
数组可以存储基本数据类型(如整数、浮点数等)或者对象。
声明一个数组需要指定元素的类型和数组的名称,然后使用关键字"new"来创建数组对象。
二、数组的访问与操作通过索引(index)可以访问数组中的元素,索引从0开始计数。
例如,对于一个长度为10的整数数组,可以使用arr[0]来访问第一个元素,arr[1]来访问第二个元素,以此类推。
数组的长度可以通过arr.length来获取。
三、数组的遍历与排序遍历数组是指逐个访问数组中的元素。
常用的遍历方法有使用for循环和foreach循环。
对于需要对数组进行排序的情况,可以使用Java提供的排序算法(如快速排序、冒泡排序等)或者使用Arrays类中的sort方法。
四、多维数组除了一维数组,Java还支持多维数组。
多维数组可以看作是数组的数组,可以用于存储表格、矩阵等结构化数据。
在声明多维数组时,需要指定每一维的长度。
五、数组的应用场景1. 数据存储与处理:数组可以用于存储和处理大量数据,如学生成绩、员工工资等。
通过数组,可以方便地进行数据的查找、排序和统计等操作。
2. 图像处理:图像可以用二维数组表示,每个元素代表一个像素点的颜色值。
通过对数组的操作,可以实现图像的旋转、缩放等功能。
3. 算法实现:许多算法的实现都需要使用数组,如查找算法、排序算法等。
数组的高效访问和操作使得算法的实现更加简洁和高效。
六、实验案例:数组的查找与统计为了更好地理解数组的应用,我们设计了一个实验案例:数组的查找与统计。
假设有一个整数数组,我们需要找到其中的最大值、最小值、平均值以及某个特定元素的出现次数。
学号Java语言程序设计C实验报告实验2 数组及常用算法学生姓名专业、班级指导教师成绩计算机与信息工程学院年月日一、实验目的学习课程相关章节知识,通过上机练习,掌握以下知识:1.掌握Java中对象和引用变量的概念2.掌握Java数组的使用和本质3.掌握数组相关常用算法(复制及排序方法)二、实验内容写一个方法,功能:定义一个一维的int 数组,长度为10,把从控制台输入整数赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)(知识点:数组遍历、数组元素访问)三、实验思想1.Java中对象和引用变量的概念2.Java数组的使用和本质3.数组相关常用算法(复制及排序方法)四、实验结果package sss;import java.util.Scanner;public class aaa {public static void main(String[] args){// TODO自动生成的方法存根Scanner input=new Scanner(System.in);System.out.println("排序之前的数组:");int a[]=new int[10];for(int b=0;b<a.length;b++){a[b]=input.nextInt();}for(int i=0;i<a.length-1;i++){for(int j=0;j<a.length-1-i;j++){if(a[j]>a[j+1]){int temp=a[j+1];a[j+1]=a[j];a[j]=temp;}}}System.out.print("\n");System.out.print("排序之后的数组:");printArray(a);}public static void printArray(int[] arry){1for(int i=0;i<arry.length;i++){System.out.print(arry[i]+" ");}}}五、实验心得通过这个实验明白了:Java中对象和引用变量的概念,Java数组的使用和本质,数组相关常用算法(复制及排序方法)。
一填空题1)数组的元素通过下标来访问,数组Array的长度为Array.length 。
2)数组复制时,"="将一个数组的引用传递给另一个数组。
3)JVM将数组存储在栈(堆或栈)中。
4)数组的二分查找法运用的前提条件是数组已经排序。
5)Java中数组的下标的数据类型是整型。
6)数组最小的下标是0 。
7)arraycopy()的最后一个参数指明复制元素的个数。
8)向方法传递数组参数时,传递的是数组的引用。
9)数组初始化包括数组的申明,创建和初始化。
10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值是0.0f 。
12)数组创建后其大小不能改变。
二选择题1.下面错误的初始化语句是_ABD__A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是_B__A. a[0]=1;B. a[10]=2;C. a[0]=5*2;D. a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是_D___A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是__B__A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C. char str[5]={"hi"};D. char str[100]="";7.数组在Java中储存在 C 中A. 栈B. 队列C. 堆D. 链表8.下面程序的运行结果是____main() {int a[][]={{1,2,3},{4,5,6}};System.out.printf("%d", a[1][1]);}A. 3B. 4C. 5D. 69.下面程序的运行结果是_C___main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5010.下面程序的运行结果是__BDF__main() {char s1[]="ABCDEF".toCharArray();int i=0;while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE11.下面不是创建数组的正确语句CA.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];12.下面不是数组复制方法的是(C)A. 用循环语句逐个复制数组B. 用方法arraycopyC. 用"="进行复制D. 用clone方法13.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]14.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过15.使用arraycopy()方法将数组a复制到b正确的是AA. arraycopy(a,0,b,0,a.length)B. arraycopy(a,0,b,0,b.length)C.. arraycopy(b,0,a,0,a.length)D. arraycopy(a,1,b,1,a.length)16.关于数组默认值,错误的是BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 017.关于数组作为方法的参数时,向方法传递的是AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素18.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递19.下列语句会造成数组new int[10]越界是DA. a[0] += 9;B. a[9]=10;C. —a[9]D. for(int i=0;i<=10;i++) a[i]++;20.在JDK环境下编译JAVA源程序使用的命令是(B )A.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法21.main方法是java Application程序执行的入口点。
实验九数组一、一维数组1、编写程序,测试下列数组的定义方式是否正确(1)#include<stdio.h>voidmain(){int n;scanf("%d",&n);int a[n];//…….}(2)#include<stdio.h>voidmain(){int n=10;int a[n];a[0] = 1;//......}(3)#include <stdio.h>#define M 10voidmain(){int a[M];a[0] = 1;//......}(4)#include<stdio.h>voidmain(){int a[2+2*4];a[0] = 1;//......}(5)#include <stdio.h>#define M 2#define N 8voidmain(){int a[M+N];a[0] = 1;//......}通过这一实验,可以说明什么问题?2、运行下面的C程序,根据运行结果,可以说明什么?#include <stdio.h>void main(){intnum[5]={1,2,3,4,5};int i;for(i=0;i<=5;i++) //尤其注意最后一次循环printf("%d,",num[i]);}3、调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
写出调试过程。
#include<stdio.h>voidmain( ){ inti,n,a[10],av;for(i=0;i<n;i++)scanf("%d",a[i]);for(i=0;i<n;i++){ printf("%d",a[i]);if(i%3==0)printf("\n");}for(i=0;i!=n;i++)av+=a[i];printf("av=%f\n",av);}上面给出的程序是完全可以运行的,但是运行结果是完全错误的。
调试时请注意变量的初值问题、输出格式问题等。
请使用前面实验所掌握的调试工具,判断程序中的错误并改正。
5、编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。
分析讨论通过实验,分析定义与引用数组的区别。
二、二维数组1. 写出程序输出结果(1)#include<stdio.h>voidmain(){ int i, j, t, a[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42};for(i=0;i<4;i++)for(j=0;j<i;j++) {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}for(i=0;i<4;i++){printf(“\n”);for(j=0;j<4;j++)printf(“%d”,a[i][j]);}}(2)#include<stdio.h>voidmain(){inti,j,m,n,a[3][4]={43,32,22,13,11,22,33,44,44,11,32,31};m=n=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[m][n]>a[i][j]) {m=i;n=j;}printf(“a[m][n]=%d,m=%d,n=%d”,a[m][n],m,n);}3、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。
现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。
4、输入4×4的数组,编写程序实现:⑴求出对角线上各元素的和;⑵求出对角线上行、列下标均为偶数的各元素的积;⑶找出对角线上其值最大的元素和它在数组中的位置。
三、字符数组1.验证程序输出结果#include<stdio.h>voidmain(){char a[ ]=“ab12cd34ef”;inti, j;for(i=j=0;a[i ];i++)if(a[ i]>=’a’&&a[ i]<=’z’) a[ j++ ]=a[ i ];a[ j ]=’\0’;printf(“%s\n”,a);}2、编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。
以"stop"作为输入的最后一个字符串。
3、1983 年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX 的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson 上台的第一句话是:“我是一个程序员,在我的1040表上我自豪地写上了我的职业。
作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。
”这个程序如下:#include <stdio.h>char s[]={'\t', '0', '\n', '}', ';', '\n', '\n', '/', '*', '\n', 0 };/* (213 lines deleted)*//** The string is a* representation of the body* of this program from '0'* to the end*/void main(){int i;printf("char \ts[]= {\" ");for (i=0; s[i]; i++){printf("\t%d,\n", s[i]);}printf("%s", s);}请上机运行这个程序,指出它的功能和运行结果。
1.以下为一维整型数组a的正确说明是_________.a)inta(10); b)int n=10,a[n];c)int n; d)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.a)int a[3][]; b)float a(3,4);c)double a[1][4] d)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______. (假设a[0][0]位于数组的第一个位置上。
)a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+15.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.a)对数组a进行插入排序(升序)b)对数组a进行插入排序(降序)c)对数组a进行选择排序(升序)d)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.a)gets(a,b); b)scanf("%s%s",a,b);c)scanf("%s%s",&a,&b); d)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,b);printf("%c",a[5]);a)空格b)\0 c)e d)f8.判断字符串s1是否大于字符串s2,应当使用_______.a)if(s1>s2) b)if(strcmp(s1,s2))c)if(strcmp(s2,s1)>0) d)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。
#include <stdio.h>main(){char s[80],c1,c2='';int i=0,num=0;gets(s);while(s[i]!='\0'){c1=s[i];if(i==0)c2='';else c2=s[i-1];if(___)num++i++;}printf("There are %d words.\n",num);}a)c1==''&&c2=='' b)c1!=''&&c2==''c)c1==''&&c2!='' d)c1!=''&&c2!=''10.下面程序的运行结果是________.#include <stdio.h>main(){char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k])!='\0';k++){switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}a)SSW* b)SW* c)SW*A d)SW答案:1-5 dcdbb 6-10 bddbb二、填空题1.若有定义:double x[3][5];则x数组中行下标的下限为______,列下标的上限为_____. 2.下面程序以每行4个数据的形式输出a数组,请填空。