int[] a={42,99,5,63,95,36,2,69,200,96}; System.out.println(\排序前的数据序列:\ShowArray(a); Sort(a);
System.out.println(\排序后的数据序列:\ShowArray(a); }
public static void Sort(int[] x) { int w;
for(int i=1; i for(int j=0; j { w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ } } public static void ShowArray(int b[]) { for(int i=0; i 问题: 如果将方法Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么? 4、写出以下程序的功能。 将数组元素从大到小排序并显示到屏幕上 public class ABC { public static void main(String args[ ]){ int i , j ; int a[ ] = { 9,7,5,1,3}; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i System.out.print(a[i]+\ } } System.out.println( ); 5、假设已有一个ArrayMethods 类,包含以下的方法: public static void replace(double[] a, int p, double v) 将数组a中下标为p的元素的值替换为v. public static void fill(double[] a, int p, double v) 将数组a中的前p个元素用value值填充(即将数组a的前p个元素的值,设成v),如果数组的长度小于p,则全部元素都设成v public static void display(double[] a) 在屏幕上显示数组a的内容 现在假设你在main()方法中已经声明了如下变量: double[] array1={4.5, 6.0, 0.1, 2.2}; double[] array2; double num1; int pos=3; 要求对下面的3组语句,先回答是否合法(即没有编译错误),如果是合法的,请描述程序运行的效果,如果不合法,请说明理由. 1) num1 = array1[2]; ArrayMethods.replace(array1, pos, num1); ArrayMethods.display(array1); 2) num1 = array1[0]; ArrayMethods.fill(array1, pos, num1); ArrayMethods.display(array1); 3) num1 = array1[1]; array2=new double[num1]; ArrayMethods.display(array2); 6、设计一个类TestArraySum,定义一个含有10个元素的int类型数组a,10个数组元素的值是11~20,再定义一个方法arraySum(int[] a),返回数组所有元素的和,最后用main方法实现在屏幕上输出数组a所有元素的和。 } 7.写出以下程序的功能。计算命令行参数串大小写字母的个数并在屏幕上显示结果 class Test { public static void main(String[] args) { String s; char c; int upper,lower; upper=lower=0; s=args[0]; for (int i=0;i c=s.charAt(i); if(c>='a' && c<='z') if(c>='A' && c<='Z') lower++; upper++; } } System.out.println(upper+”,”+lower); 8.以下程序段的输出结果为 1 2 3 4 5 8 9 。 public class C { public static void main(String args[ ]){ int i , j ; int a[ ] = { 2,1,4,8,9,5,3}; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j] int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i System.out.print(a[i]+\ } System.out.println( ); } 9.下面程序的功能是输出数组各元素的和。 import java.awt.Graphics; import java.applet.Applet; public class SumArray extends Applet { float[] a; a= new _______[6]; float sum=0.0f; public void init( ) { for ( int j = 0; j < a.length; j++ ) a[j] = j+1; for ( int i = 0 ; i < a.length; i++ ) sum+= a[i]; } public void paint( Graphics g ) { g.drawString( \} } 10.写出以下程序的功能。 将数组元素从大到小排序并显示到屏幕上 public class ABC { public static void main(String args[ ]){ int i , j ; int a[ ] = { 9,7,5,1,3}; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i System.out.print(a[i]+\ } } System.out.println( ); 11.判断下面的说法是否正确。如果错误,请说明原因 ①一个数组中可以存放多个不同类型的值 ②数组下标通常是float型的 ③二维数组其实质是一维数组的一维数组 12.找出并改正下面各程序段中的错误 ①设int b[] = new int [10]; for ( int i = 0; i <= b.length; i++ ){ } ②设 int a[][] = { { 1, 2 } {3, 4} }; a[ 1, 1] = 5; ③int a[10] = new int[ 10 ]; 13.写出下面代码的输出结果 int[][] a = new int[10][5]; System.out.println(a.length); System.out.println(a[3].length); b[ i ] = 1; 14.设有一个名为table的数组,试执行以下任务 a)声明并创建该数组为3行3列的整数数组。 b)该数组包含多少个元素? c)用for结构将数组的每个元素初始化为各自下标的和(假设整数变量i,j为控制变量) 15.将一个数组中的值按逆序重新存放。假定原来的顺序为4,1,3,5,9,2,1。要求改为1,2,9,5,3,1,4。 16.现有类Book定义如下 Class Book{ private String author;//作者 private String ISBN;//书号 private double price;//价格 public String getAuthor(){ return this.author; } //返回作者名 public void setAuthor(String author){ this.author = author; } //设置作者名 public String getISBN(){ return this.ISBN; } //返回书号 public void setISBN(String ISBN){ this.ISBN = ISBN; }//设置书号 public double getPrice() { return this.price; }//返回书价 public void setPrice() { this.price = price ; }//设置书价 } 请用1个数组存放随机产生的10个书籍对象的数据,并显示其中书价最高图书的书号。(要求使用对象数组完成) 17. 写出比较2个字符串是否相同的方法,并加以说明。 18. 写一个输出整数10以内的奇数的Java程序,每个输出项之间空一个制表符位置。 第八章 界面编程 1、Container 的________方法可以将_______组件加入容器。 2、使用 方法为组件设置布局管理器,JFrame的缺省布局管理器是 ,内容面板的缺省布局管理器是 。 3、FlowLayout布局管理器按照组件加入容器的次序从( )到( )排列组件。 a) 上、下 b) 右、左 c) 左、右 d) 前、后 4. 利用AWT基本组件创建一个Frame窗口,在窗口中放一个按钮1(Button1)和一个面板(Panel1),在面板上放另一个按钮2(Button2)。 5、阅读下面的程序,写出带划线语句的注释,并写出运行结果。 import java.awt.*; import javax.swing.*; public class Test {// 继承JFrame private int screenOffset = 80; public Test() { super( \ ; // 设置JFrame的大小为300*300 show(); // } public void paint( Graphics g ) { for ( int i = 1; i <= 8; i++ ) { int origin = screenOffset + 80 - i * 10; g.drawOval(origin, origin, i * 20, i * 20); } } public static void main( String args[] ) { Test application = new Test(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } } 6、下列说法哪个是正确的? ( ) A) BorderLayout是面板的缺省布局管理器 B) 当鼠标指针位于一个GUI组件的边上时,发生一个MouseOver事件