Java基础练习题 附答案.doc
Java基础练习题 附答案一、简单Java程序调试1)以下哪个是Java应用程序main方法的有效定义?A. public static void main();B. public static void main( String args );C. public static void main( String args );D. public static void main( Graphics g );E. public static boolean main( String a );2) 编译和运行以下代码的结果为:public class MyMainpublic static void main(String argv) System.out.println("Hello cruel world"); A编译错误;B运行输出 "Hello cruel world";C编译无错,但运行时指示没有定义构造方法。D编译无错,但运行时指示没有正确定义main方法。3) 下列选项中不属于Java虚拟机的执行特点的一项是:A异常处理 B多线程 C动态链接 D简单易学4) 不属于Java语言特点的一项是:A分布式 B. 安全性 C. 编译执行 D.面向对象5) 以下程序的运行结果为: public class Testpublic static void main(String argv ) System.out.println("x="+5);A. 5 B. x=5 C. "x="+5 D. "x="56) 以下程序的运行结果为: public class Testpublic static void main(String argv ) System.out.println("good"+"morning");A. goodmorning B. "good"+"morning" C. good morning D. good+morning二、Java符号与表达式1) 现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为: Aint类型 B. double类型 C. float类型 D. long类型 2)下面程序段的输出结果是: int a = 2; System.out.print( a+); System.out.print( a); System.out.print(+a); A333 B334 C234 D233 3) 以下代码的输出结果?public class Test int x=3; public static void main(String argv) int x= 012; System.out.println(x); A12 B012 C10 D3 4) 下列定义语句正确的是:Achar c="/n" Bint i=12; Cfloat f=2.8; Dboolean b=null;5)检查如下代码: public class Quiz2_l public static void main(String args) int a = 8; int b = -8; System.out.print(a<<2); System.out.print("," + (b>>1) ); 下列哪条语句正确描述了程序在编译和运行时的行为?A编译成功,输出为“32,-4 ”B. 编译成功,输出为“16,4 ”C. 编译成功,输出为“32,2147483644”D. 编译成功,输出为“16,2147483644”E. 编泽器拒绝表达式 b>>,因为不能对一个负数应用>>操作符6)以下代码中变量result的可能类型有哪些? byte b = 11; short s = 13; result = b * +s;Abyte, short, int, long, float, doubleBboolean, byte, short, char, int, long, float, doubleCbyte, short, char, int, long, float, doubleDbyte, short, charEint, long, float, double7)以下代码的输出结果为: System.out.println(" " +2 + 3); System.out.println(2 + 3); System.out.println(2 + 3 +""); System.out.println(2 + "" +3); A第3行出现编译错误B输出23, 5, 5 和23.C输出5, 5, 5 和23.D输出 23, 5, 23 和23.8)设有如下变量说明:byte myByte;int myInt;long myLong;char myChar;float myFloat;double myDouble; 以下赋值语句哪个需要强制转换。AmyInt = myByte;BmyInt = myLong;CmyByte = 3;DmyInt = myChar;EmyFloat = myDouble;FmyFloat = 3;GmyDouble = 3.0;9)考虑如下两语句: 1. boolean passingScore = false && grade = 70; 2. boolean passingScore = false & grade = 70;表达式grade = 70 在什么地方被计算A在 1 和 2中均计算B在 1 和 2中均未计算C在1中计算,在2中未计算D在2中计算,在1中未计算E非法,因为 false 应写 FALSE10)设有一个整数x 其二进制值为10011100 (用1 字节表示),则执行如下语句后 z的二进制值为: int y = 1 << 7;int z = x & y; A10000001B10000000C00000001D10011101E1001110011) 以下哪些编译正确?Ashort myshort = 99S;BString name = 'Excellent tutorial Mr Green'Cchar c = 17c;Dint z = 015;12) 以下哪些是java关键字?AdoubleBSwitchCthenDinstanceof13) 以下程序行的输出结果为?System.out.println(010|4);A14 B0 C6 D1214) 设有如下变量char c = 'c'int i = 10;double d = 10;long l = 1;String s = "Hello"以下哪些语句编译不出错?Ac=c+i; B s+=i; C i+=s; D c+=s;15) 整型变量a,b的值定义如下: int a=3; int b=4;则表达式 +a=b的值为:A4 Bfalse C3 Dtrue 16) 执行下列代码后输出结果为:public class test public static void main(String args) int a=2; int b=3; int c=7; int d=a>c?a:c; d=d>>2>b? d:b; System.out.println(b); A2 B3 C5 D7三、分支程序设计1)下列语句片段的结果为int result; int a=17,b=6; result=(a%b>4)? a%b:a/b ;System.out.println(result); A. 0 B. 1 C. 2 D. 52)以下程序的运行结果为: 1. public class Conditional 2. public static void main(String args ) 3. int x = 4; 4. System.out.println( "value is " +(x >4) ? 99.99 : 9); 5. 6. A. 输出:value is 99.99 B. 输出: value is 9 C. 输出: value is 9.0 D. 在第4行出现编译错误3)以下代码段的输出结果为1. int x = 0, y = 4, z = 5;2. if (x > 2) 3. if (y < 5) 4. System. out .println ( "message one" );5. 6. else 7. System.out.println( "message two");8. 9. 10. else if (z > 5) 11. System.out.println("message three");12. 13. else 14. System.out.println( "message four");15. A. message oneB. message twoC. message threeD. message four4) 以下程序的输出结果为:public class test public static void main(String args) int x=1,y=1,z=1; if (x-=1&&y+=1|z+=1) System.out.println("x="+x+",y="+y+",z="+z); A x=0,y=2,z=1B x=1,y=2,z=1C x=0,y=1,z=1D x=0,y=2,z=25) 编译和运行以下代码结果为:1. public class EqualsTest2. public static void main(String args)3. byte A=(byte)4096;4. if(A=4096) System.out.println("Equal");5. else System.out.println("Not Equal");6. 7. A在第3行出现转换丢失精度的编译错误.B输出 "Not Equal".C输出 "Equal".6) 关于以下程序哪条叙述正确?1. int j = 2;2. switch ( j ) 3. case 2:4. System.out.println ("value is two");5. case 2 + 1:6. System.out.println ("value is three");7. break;8. default:9. System.out.println("value is " + j);10. break;11. A. 第5行的表达式不合法;B. 变量j是可接受的,switch中表达式可以是byte, short, int,或long的任何类型;C. 输出为value is twoD. 输出是value is two 后跟value is threeE. 输出是value is two 后跟 value is 27)以下程序的编译运行结果为:1: public class Q102: 3: public static void main(String args)4: 5: int i = 10;6: int j = 10;7: boolean b = false;8: 9: if( b = i = j)10: System.out.println("True");11: else12: System.out.println("False");13: 14: A. 第9行出现编译错误;B. 第9行出现运行错误;C. 输出 TrueD. 输出 False8)以下程序的编译和运行结果为?class test static boolean check; public static void main(String args) int i; if(check = true) i=1; else i=2; if(i=2) i=i+2; else i = i + 4; System.out.println(i); A. 3 B. 4 C. 5 D. 6 E. 语句if(i=2)编译出错 9) 以下代码: if (a >4)System.out.println("test1");else if (a >9)System.out.println("test2");elseSystem.out.println("test3"); a为何值将有输出结果test2 ?A. 小于 0 B. 小于 4 C. 4 和9之间 D. 大于9 E. 无任何可能10)有如下代码段:switch ( x ) case 1:System.out.println("One");break; case 2: case 3:System.out.println("Two");break; default:System.out.println("end");变量x的取值下列哪些情形时,能使程序输出"Two" 。 A. 1 B. 2 C. 3 D. default11)以下程序的输出结果为 public class test public static void main(String agrs) char c1=B,c2=C; if (c1+1<c2) +c1; System.out.println(c1); A. B B. b C. C D. c 12) 假设a是int类型变量,并初始化为1,则下列哪个为合法的条件语句? A. if (a) B. if (a<<3) C. if (a=2) D. if (true) 四、循环程序设计1)执行以下程序后,输出结果为public class ex2 public static void main(String args) int f=1; int k; for (k=2;k<5;k+) f*=k; System.out.println(k); A. 0 B. 1 C. 5 D. 4 E. 242) 设有如下类class Loop public static void main(String agrs) int x=0;int y=0; outer: for(x=0;x<100;x+) middle: for(y=0;y<100;y+) System.out.println("x="+x+" y="+y); if(y=10) <<<insert code>>> 在<<<insert code>>>处插入什么代码可以结束外循环?Acontinue middle;Bbreak outer;Cbreak middle;Dcontinue outer;Enone of these3)以下代码的运行结果为:public class Calc public static void main (String args ) int total = 0; for (int i = 0, j = 10; total > 30; +i, -j) System.out.println(" i = " + i + " : j = " + j); total += (i + j); System.out.println("Total " + total); A. 产生运行错误B. 产生编译错误C. 输出 "Total 0"D. 产生如下输出: i = 0 : j = 10 i = 1 : j = 9 i = 2 : j = 8 Total 304)以下程序的运行结果为: public class test public static void main(String args) int i=0, j=2; do i=+i; j-; while(j>0); System.out.println(i); A. 0 B. 1 C. 2 .35)以下程序的运行结果为? class xyz public static void main(String args) int i,j,k; for (i = 0; i < 3; i+) for(j=1; j < 4; j+) for(k=2; k<5; k+) if(i = j) && (j=k) System.out.println(i); A. 0 B. 1 C. 2 D. 3 E. 4 6) 以下程序的运行结果为?class test public static void main(String args) int i,j=0; for(i=10;i<0;i-) j+; switch(j) case (0) : j=j+1; case (1) : j=j+2; break; case (2) : j=j+3; break; case (10) : j=j+10; break; default : break; System.out.println(j); A. 0 B. 1 C. 2 D. 3 E. 10 7) 观察以下程序段: int i=1,j=10; do if(i+>-j) continue; while(i<5); 执行完后,i、j的值分别为: A i=6 j=5 B i=5 j=5 C i=6 j=4 D i=5 j=68)以下程序的输出结果为: public class example public static void main(String args) int s=0; for (int i=0;i<5;i+) for (int j=10;j>3*i;j-) s += i*j; System.out.println(s); A. 127 B.136 C. 147 D.1539) 以下程序的输出结果为: public class example public static void main(String args) int i=0; for (i=0;i<4;i+) if (i=3) break; System.out.print(i); System.out.println(i); A.0123 B.0122 C.123 D.23410) 以下程序的运行结果为 class Prob10 static boolean b1; public static void main(String args) int i1 = 11; double f1=1.3; do b1 = (f1 > 4) && (i1- < 10); f1 += 1.0; while (!b1); System.out.println(b1 + "," + i1 + "," + f1); A. false,9,4.3 B. true,11,1.3 C. false,8,1.3 D. true,8,7.3五、方法设计1)以下代码的输出结果?public class Test static int x=5; public static void main(String argv) change(x); x+; System.out.println(x); static void change(int m) m+=2; A. 7 B. 6 C. 5 D. 8 2) 以下代码的输出结果?public class Test int x=5; public static void main(String argv) Test t=new Test(); t.x+; change(t); System.out.println(t.x); static void change(Test m) m.x+=2; A. 7 B. 6 C. 5 D. 8 3) 以下代码的输出结果?public class Test public static void main(String argv) String x="hello" change(x); System.out.println(x); static void change(String m) m=m+2; A. hello B. hello2 C. 编译报错 D. 运行报错,不能将串与整数相加4)设有如下类:class MyPoint void myMethod() int x, y; x = 5; y = 3; System.out.print( " ( " + x + ", " + y + " ) " ); switchCoords( x, y ); System.out.print( " ( " + x + ", " + y + " ) " ); void switchCoords( int x, int y ) int temp; temp = x; x = y; y = temp; System.out.print( " ( " + x + ", " + y + " ) " ); 如果执行myMethod()方法,则输出结果为?A. (5, 3) (5, 3) (5, 3)B. (5, 3) (3, 5) (3, 5)C. (5, 3) (3, 5) (5, 3)5)以下程序的输出结果为:public class test public static void main(String args) int s=0; for (int k=0;k<=10;k+) s+=method(2,k)-1; System.out.println(s); public static int method(int n,int m) if (m=0) return 1; else return n*method(n,m-1); A. 2048 B. 1024 C. 2036 D.20006) 以下程序的输出结果为:public class test public static void main(String args) int m=0; for ( int k=0;k<2;k+) method(m+); System.out.println(m); public static void method(int m) System.out.print(m); A. 000 B. 012 C.123 D.111 六、数组的使用1)输入如下命令运行Java应用程序。 java MyTest "1 2 3"则命令行参数数组args中得到的值哪个正确?A. args0 = "MyTest 1 2 3"B. args0 = "1 2 3"C. args0 = "1"D. args1= "1 2 3"2) 在注释/Start For loop 处要插入哪段代码可实现根据变量i的值定位数组ia的元素?public class Lin public void amethod() int ia = new int4; /Start For loop iai=i; System.out.println(iai); A. for (int i=0; i < ia.length() -1; i+) B. for (int i=0; i< ia.length(); i+) C. for (int i=1; i < 4; i+) D. for (int i=0; i< ia.length;i+)3)以下代码的调试结果?public class Q public static void main(String argv) int anar= new int5; System.out.println(anar0); A. 编译错误:anar 在引用前未初始化。B. nullC. 0D. 54) 下列创建二维整型数组正确语句是:A. int a = new int 10,10;B. int a1010 = new int ;C. int a = new int 1010;D. int a = new int 1010;5) 给出下面代码: public class Person static int arr = new int10;public static void main(String a) System.out.println(arr1); 以下那个说法正确? A. 编译时将产生错误; B. 编译时正确,运行时将产生错误; C. 输出0; D. 输出null。 6)设有如下说明: char c = new char100; 则,c50的值为?A. 50B. '/u0000'C. " "D. 不定E. 为null,直到被赋值。7) 设有如下程序,其调试结果为:class Q2 public static void main(String args) int seeds = 1,2,3,4,6,8; int n= seeds.length; for (int i = 0; i < 3; i+) for (int k = 0; k< n-1; k+) seedsk= seedsk+1; for (int i = 0; i <n-1; i+) System.out.print("/t"+seedsi); A输出: 1 2 3 4 6B输出: 4 6 8 8 8 C输出: 2 3 4 6 8 D输出: 2 3 4 6 七、类与对象编程1) 以下程序的运行结果为:public class My int value; public static void main(String args) My x=new My(); if (x=null) System.out.println("No Object"); else System.out.println(x.value); A. 0 B. 1 C. No Object D. 编译错误 E. null(2)以下程序的运行结果为:public class A static int k=3; public static void main(String args) int k=4; A x1=new A(); x1.k+; A x2=new A(); x2.k+; k+; System.out.println(x1.k); A. 3 B. 4 C.5 D.6 E.73) 编译和运行以下程序结果为:public class A static int k=3; static int m; public static void main(String args) k+; if (m=0) System.out.println(k); else System.out.println(B.k); k+; class B sta