2023年java程序设计作业答案.docx
JAVA程序设计作业答案一、选择题1、编译HelloWorld.java的对的命令是:C) javac HelloWorld.java2、对的运营HelloWorld.java的对的命令是:A)java HelloVVorld3、下面程序代码,使用多行注释对的的是:C) /* int k=9;intj=8;k = k + j; */4、long型的取值范围是:D) -263263-l5、下面不属于Java保存字的是:C) malloc6、下面属于非法的Java标记符的是:D) abc-d7、对与。语句解释合理的是:C)执行后输出一个空行8、阅读下面的代码,回答问题,for( m = 0 ; m > -2 ; m - ).For循环执行多少次:C) 29、阅读下面的代码,I可答问题,for( m = 0; m < 5; m+ )Button ByeBut = new Button("Bye");add(HelloBut);add(ByeBut);setSize(300,300);setVisible(true);)/Code end a)两个按钮并列占据整个frame b) Hello按钮占据整个frame c) Bye按钮占据整个frameThe default layout manager for a Frame is a border layout. If directions are not given (ie North, South,East or West), any button w川 simply go in the centre and occupy all the space. An additional button will simply be placed over the previous button. What you would probably want in a real example is to set upa flow layout as insetLayout(new FlowLayout(); which would.31、Java程序是否可以在除了 Windows的其他平台上运营:B)可以A)不可以 32、对于一个Java源文献,impori, class定义以及package对的的顺序是:A) package, import, classB) class, import, packageC) import, package, classD) package, class, import33、那个方法可以不能被String型对象调用:Which methods can be legally applied to a string object?A) cquals(String)B) toSlringOB) trini()D) round()34、main方法中的参数对的的定义是:A) String args B) String argsB) float args D) Siring args35、在命令行执行:java Example 12 3e you45.6那么main方法的参数args数组的第一个元素args0的内容是:JavaB) ExampleC) 12D) 3e36F曲那个不是Java的关键字:A) gotoB) mallocB) extendsD) while37、编译下面的代码,结果是: public class Test public static void main (String args ) int age;age = age + 1;System.out.println("The age is " + age);A)编译运营都没有结果输出B)编译运营后输出The age is 1C)编译通过,但运营时会犯错 D)编译不通过38、下面合法的char型值是:B) "a"C) new Character(a)D) D) 000a39、可以给一个byte型变量赋值的范围是:What is the legal range of a byte integral type?A) 0 - 65, 535B) (-128)-127C) (-32,768)-32,767D) (-256)-25540、下面哪个是非法的:Which of the following is illegal:A) int i = 32;B) float f = 45.0;C) double d = 45.0;D) charc = 4u41、编译下面的代码,其结果是: public class Test static int age:public static void main (String args J) age = age + 1;Systcm.out.println("The age is " + age);D) 128 « 1 为-64D) |A)编译运营都没有结果输出B)编译运营后输出The age is 1C)编译通过,但运营时会犯错 D)编译不通过42、下面对的的是:Which of the following arc correct?A)128>>1 为 64 B)128vvl 为 64C)128»l 为-6443、下面返回true的是:A) "john" != "john"B) "john". equals(Mjohn,)C) "john" = "john"D) "john".equals(new Button("john")44、下面哪条语句不会导致运营时错误:A) "john" + " was " + " here"B) "john" + 3C) 3 + 5D) 5 + 5.5E)以上四个都不会导致运营时错误45、下面哪个是位运算符:A) >=B) |C) &&46、下面那个是可以被接受的:A) Object o = new ButtonCA*);B) Boolean flag = true;C) Panel p = new Frame();D) Frame f = new Panel();47、编译运营下面代码,其结果是: public class Test static int total = 10;public static void main (String args ) new Test();)public Test () Systcm.out.println("ln test");System.out.println(this);int temp = this.total;if (temp > 5) Systcm.out.println(tcmp);A)此类不会被编译B)编译犯错在第2行C)编译犯错在第9行 D)编译通过,运营后输出:1048、下面对的的是:A) String temp J = new String ("j" "a" V); B) String temp = "j ° " bu Mc");C) String temp = V, "b", "c"D) String temp =“b“,“c”;49、下面定义了一个抽象方法add,对的的是:What is the correct declaration of an abstract method that is intended to be public:A) public abstract void add(); B) public abstract void add() C) public abstract add();D) public virtual add();500、在什么情况下,你会获得一个缺省的构造方法:A)当你定义任何类的时候B)当类没有其他构造方法的时候C)当你至少定义了一个构造方法的时候51、阅读下面的代码: public class Test )那个是这个类的合法构造方法:A) public void Test() .B) public Test() .C) public static Test() .D) public static void Test() .52、Java编译器不能接受的是:A) if (2 = 3) System.out.piintln("Hi"); B) if (2 = 3) System.oiit.printlnC'Hi");C) if (true) System.out.println("Hi");D) if (2 != 3) System.out.println("Hi");53、若一个方法包含了一段也许引起异常的代码,那么此方法想要调用他的方法去解决这个潜在的异常的对的方法是:A) throw ExceptionB) throws ExceptionC) new ExceptionD) Don't need to specify anything54、若给参数a传递4,给b传递0,那么下面程序的结果是:public void divide(int a, int b) try int c = a / b; catch (Exception e) System.ou(.print("Exception "); finally System.out.println("Finally");)A) Prints out: Exception Finally B) Prints out: FinallyC) Prints out: ExceptionD) No output55、编写一个方法重载题目给出的方法add,那么他的返回类型可以是:public void add(int a) A) void B) int C)可以是任何类型 D) String56、合法的Java标示符有:A. IdoLikeTheLongNameClass B. $byteC. const 保存字D. _okE. 3_case57下面这段代码中定义的类在不同的文献中:class Vehicle public void drive() System.out.printlnC'Vehicle: drive");class Car extends Vehicle public void drive() Systcm.out.printlnC'Car: drive'*);public class Test public static void main (String args ) Vehicle v;Care;v = new Vehicle();c = new Car();v.drivc();c.drive();v.drive();编译运营的结果是:A) Generates a Compiler error on (he statement v= c;Generates runtime error on the statement v= c;C)输出:D )输出 Prints out:Vehicle: driveVehicle: driveCar: driveCar: driveCar: driveVehicle: drive58、考虑下面的这个类:1. public class Test void test(int i) 2. System.out.printlnC'I am an int.");3. void test(String s) System.out.printlnC'I am a string.");4. 5. public static void main(String argsfl) Test t=new Test();i 1. char ch='y't.test(ch);12. 哪一个说明是对的的:A.第5行编译犯错,由于方法test不能被重载B.第12行编译犯错,由于方法test的参数不是char类型C.编译运营通过,输出:lamanint.D.编译运营通过,输出:lam a String.点评:在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的ini型,并在运营时传给void test(int i)方法。59、一个类Ouler,其内部定义了一个内部类Inner,在Outer类的主方法中创建内部类对象的对的方法是:A) Inner inner = new Inner()B) Outer.Inner inner = (new Outer().new Inner()C) Outer inner = new Inner()D) Inner inner = new Outer()60、当x的值为2时,下面代码的运营结果是: switch (x) System.out.println( 1);case 1: System.out.println(3);case 2: System.out.println(4);A)什么都不会输出 B) 3 C) 34 D) 1341、4) double d=999d;2、2) new3、1) System.out.println( 1 +1);4、2) Math.max(7,9);5、1) byte的表达范围为-128 lo 1276、2)编译运营通过,输出Base7、2) public static void amethod()8、1)char c=,r;Systein.out.println(c» 1);9 3) transient10、2)输出 “Hello Crowle”二、改错1、答案:public static void main(String args)2、答案:public class Ex2(intj;public static void main(String args)System.out.println(MHello World!”);3、答案:z = a + b ;4、答案:l)intb = 2(M);float f=8.9f2) char c = 'h,boolean b = true5、答案:public class Ex5(ini x = 1;int y = 1;x = 2;6、答案:public class Ex6int x = 1;int y = 1;public static void main(String args )Systcm.out.print( "Hello”);)7、package mycode.idel;package mycode.ide2;)答案:不能有两个package8、import mycode.idelpackage mycode.ide2;public class Ex2)答案:imports和package顺序颠倒9、public abstract class Ex3(void m1()System.out.println( "ml");)void m2();答案:方法m2应当被声明为abstract,或者给出m2的方法体10、public interface Ex4(int j;void m1();void m2();答案:接口中的变量都是常量,应当给他赋初值;接口中的方法都是抽象方法,而ml不是抽象方法if( m = 3 )break;执行结果是:C) 0, 1, 2, 3,10、 阅读下面的代码,回答问题,public class Exint x = 1;void m()int x = 3;System.out.print( "x= " + x);public static void main( String! args ) (Ex ex = new Ex();ex.m();执行结果是:B) x=311、下面语句在编译时不会出现错误信息的是:a) float f = 1.3; b) char c = "aM; c) byte b = 257; d) boolean b = null; e) int i = 10;12、编译和运营下面的代码,会有什么结果产生:11、interface Parentint j = 1;void m1();)public class Ex5 extends Parent(void m1()(System.out.print( Hm1 in child");)答案:将 extends 改为 implements12、interface Parentivoid m1();)interface Parent2(void m2();)public class Ex6 implements Parenti, Parent2(void m1()System.out.print( Hm1 in child");)答案:方法m2没有在Ex6中具体定义下面程序有什么错误?请指出并改正。public class Basepublic static void main(String argvJ)intt= 1,2,3,4,5,6 ;try(l I 2);)catch( lOException e)(c.printStackTracc();Systcm.out.print( '*Ends OK");)答:把 lOException 改为 Exception14、下面程序有什么错误?请指出并改正。public class Ex Arraypublic static void main(Slring argv)intt= 1,2,3),4,5),(6) |;trySystem.out.print(tl 1 2J);Systeni.out.print( "after try block");catch( Exception e)e.printStackTrace();Syslem.out.print( "after catch block");答:在try和catch之间不能出现任何语句。因此去掉System.out.print( "after tr>, block");15、改正下面代码的错误:inti a = new int引;a0= I;al = 2.0;a2 = 3;答:把 al = 2.0 改为 al = 2三、名词解释1、重置:在继承类之间,子类和其父类都有一个同名的方法,该方法的方法头完全一致,子类对象调用这 个方法时,实际调用的是自己的,而非其父的,这种现象叫2、异常:程序在运营期间,出现错误而不能正常退出,这种现象叫3、Java虚拟机:在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在.class文献中;每个文献 都包含最多一个public类。Java虚拟机规范为不同的硬件平台提供了 种编译Java技术代码的规范, 该规范使Java软件独立于平台,由于编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运营于各种现存的计算机系统,也可用硬件来实现。4、节点流:直接提供输入输出功能的流5、解决流:高级流,增强了节点流的功能四、问答题1、答案:choice = 2choice = 3choice = default2、解释重载的概念。3、 答案:Ex6 obj = new Ex6( 3 )4、请写出所有的关系运算符以及逻辑运算符。答案:><>=<=!=! && | A简要解释下面存取控制符的作用。publicprotectedprivat答案:1)任何类都可访问2)继承类和同一软件包的类可访问3)只有在其修饰的数据和方法所在类可访问5、卜面的表达式会产生100以内的随机整数吗?100*Math.random()答:不会。6、下面的数组定义是否对的?int a=3.1,7,9)答:不对的。7、访问下面这个数组第4个元素是用a4吗?int a=3,l,7,9答:不是,应当是a38、下面是一个数组的声明:intlJt= 1,2,3,4,453,6,3 )问:Uength的值是多少? l1engih的值是多少?答:3, 39、给定两个字符串:String s 1 = "abc”; String s2 = "xyz22”;问:s2.concat(sl)的结果是什么? s2.replace(:x'H)的结果是什么?答:xyz22abc, ayz22五、编程题|、编写一个程序螺旋输出一个3X3矩阵的元素。3X3矩阵如下所示:1 8 7答案:public class matrix(public static void main(Stringl args)(ini k , m , n , i, j;inta = 1,8,7, 2,9.6, 3,4,5 ;n = 3;if(n%2>0)m = n / 2 + 1;elsem = n / 2;for ( k = 0 ; k < m ; k+ )Systcm.out.println( al k k J);j = k;for (i = k + 1 ; i < n - k ; i+ )System.out.println( a i j );i-;for (j = k + 1 ; j < n - k ; j+ )System.out.println( a i j );j-Sfor (i = n - k - 2 ; i >= k ; i-)System.out.println( a i j );i+;for (j = n - k - 2 ; j > k ; j-)Systcni.out.println( a i j );2、编写程序实现折半查找算法,其查找的序列为一个整数序列2, 4, 6, 9, 12, 56, 89, 100, 123, 567。答案:public class binsrch(private int r;private int key;public binsrch( int k )(r = new int 5 ;r 0 = 2;r 1 = 5;r 2 = 7;r 3 = 18;r 4 = 21;this.key = k;public boolean Bin_srch( int a, int k )int low , high , mid;boolean found = false;low = 0;high = a.length - I;while( low <= high && !found )(mid = (low + high )/2;if( a mid < k )low = mid + 1;else if( a mid = k )found = true;elsehigh = mid - I;return found;public boolean Bin_srchl( int aj , int k , int low , int high )int mid;boolean found = false;if( low <= high && !found )mid = (low + high)/2;if( a mid < k )low = mid + 1;found = Bin_srchl( a , k , low , high );else if( a mid = k )found = true;else(high = mid - 1;found = Bin_srchl( a , k , low , high );)return found;)public static void main(String args)boolean result;binsrch bin = new binsrch( Integer.parselnt( argsf 0 |);/result = bin.Bin_srch( bin.r , bin.key );result = bin.Bin_srchl( bin.r , bin.key , 0 , bin.r.Icngth - 1 );if( result)System.out.println("The number you search is found in the array!");elseSystem.out.printlnC'The number you search is existed!");public static void main(String arguments)amethod(arguments);public void amethod(String arguments) (System.out.println(arguments);System.out.println(arguments1);a)错误,静态方法不能直接引用非静态方法a)错误,静态方法不能直接引用非静态方法b)错误,主方法有错误c)错误,数据定义有错误d)方法amethod必须被声明为String型13、编译期间会犯错的是:a) import java.awt.*;package Mypackage;class Myclass b) package MyPackage;import java.awt.*;class MyClassc) /*This is a comment */ package MyPackage;import java.awt.*;class MyClass13、编译期间会犯错的是:d) import java.awt.*;package Mypackage;class Myclass e) package MyPackage;import java.awt.*;class MyClassf) /*This is a comment */ package MyPackage;import java.awt.*;class MyClass14、byte型的变量的表达范围为:a) -128 to 127b) (-2 power 8 )-1 to 2 power 8c) -255 to 256c) -255 to 256d)依赖Java虚拟机而定15、在命令行运营命令:java myprog good morning15、在命令行运营命令:java myprog good morning会有什么结果显示出来:public class myprogpublic static void main(String argv)(System.out.println(argv2)a) myprog b) good c) morningd) Exception raised: Mjava.lang.ArraylndexOutOfBoundsException: 2"16、下面不是Java保存字的是:a) if b) then c) goto d) while17、下面属于非法的标记符的是:a) 2variable b) variable2 c) _whatavariable d) _3_ e) $anothervar18、编译下面的代码,会有什么结果产生:public class MyClassstatic int i;public static void main(String argv)System.out.println(i);)a)错误,变量i没有初始化b) null c) 1 d) 019、编译运营下面的代码,会有什么结果产生:public class Q public static void main(String argv)int anar= new int1,2,3;System.out.println(anar1 );)a) 1b)3c)2 d)错误,数组anar的长度没有定义20、编译运营下面的代码,会有什么结果产生:public class Q public static void main(String argv)int anar= new int5;System.out.println(anar0);)a)编译错误b) null c) 0 d) 5Arrays are always initialised when they are created. As this is an array of ints it will be initalised with zeros.21、编译运营下面的代码,会有什么结果产生:abstract class MineBase abstract void amethod();static int i;)public class Mine extends MineBase(public static void main(String argv)int ar = new int5;for(i = 0;i < ar.length;i+)System.out.println(ari);)a)五个0被输出b)错误,ar使用前没有初始化c)错误,类Mine必须要被声明为抽象的类d) IndexOutOfBoundes Error i22、编译运营卜面的代码,会有什么结果产生:int i = 1;switch (i) case 0:System.out.println("zero");break;case 1: System.out.println("one");case 2: System.out.println(Mtwo");default:System.out.printlnC'default");)a) one b) one, default c) one, two, default d) default23、编译运营下面的代码,会有什么结果产生:int i = 9;switch (i) default:System.out.println("default");case 0:System.out.println("zero");break;case 1:System.out.println("two");)a) default b) default, zero c) error default clause not defined d) no output displayed24、下面不会在编译时犯错的是:a) int i=0;if(i)System.out.println("Hello");)boolean b = true;boolean b2 = true;if(b=b2)System.out.printlnSo true");int i=1;in" = 2;if(i =1 &j=2)System.out.println("OK");int i=1;intj = 2;if(i =1 &| j=2)System.out.printlnC'OK");25、编译运营下面的代码,会有什么结果产生,注意,在当前目录里没有文献Hello.txt:import java.io.*;public class Minepublic static void main(String argv)System.outprintln(m.amethod();public int amethod() try(FilelnputStream dis = new FilelnputStream("Hello.txt");Jcatch (FileNotFoundException fne) System.out.println("No such file found");return -1;catch(IOException ioe) finallySystem.out.printlnC'Doing finally");return 0;a) No such file foundb) No such file found ,-1d)0d)0c) No such file found, doing finally, -126、建立一个HTML去显示一个applet时,26、建立一个HTML去显示一个applet时,必须要定义的tags是:a) name, height, width b) code, namec) codebase, height, widthd) code, height, width27、编译运营下面的代码,会有什么结果产生: class Base class Sub extends Base public class CEx public static void main(String argv)Base b = new Base();Sub s = (Sub) b;)a) Compile and run without error b) Compile time Exception c) Runtime Exception28、用下面的HTML去显示app