Java期末复习题
考试说明:
本次Java程序设计期末考试,题型分为选择题、填空题、判断题、读程序给结果、程序填空和编程题。请大家认真复习,复习主要以书本、作业和实验为主,另给出大家一些典型的题目供大家复习,祝大家考试顺利。
典型题型的一些例题:
一.读程序,给结果。
1.
class ArrayC4{
public static void main(String args[] )
{ int c[]={1,2,3,4,5};
int j;
System.out.println("Array c");
for(j=0;j System.out.print( c[j]+" "); System.out.println(); System.out.println("Array sum: "); System.out.println(arraySum(c) ); } static float arraySum(int d[]) { float sum=0; for(int i=0;i sum +=d[i]-1; return sum; } } 2. class Data{ public static int intdata=0; } public class Test{ public static void main(String args[ ]) { Data a,b; a=new Data(); b=new Data(); a.intdata=1; b.intdata=2; System.out.println(“a.intdata ”+a.intdata); System.out.println(“b.intdata ”+b.intdata); } } } 3. public class Exception9_2 { public static void main(String args[]) { try { int x,y; x=15; y=0; System.out.println("x/y="+x/y); System.out.println(" Computing successfully!"); } catch(ArithmeticException e) { System.out.println(" ArithmeticException catched!"); } finally { System.out.println(" Finally block !"); } } } 4. public class Example { public static void main(String[] args) { int i=3; do{ System.out.println(“Doing it for i is”+i); }while(--i>0); System.out.println(“Finish”); } } 5. class SuperClass{ String a=”hello”; void test(){ System.out.println(a); } } public class SubClass extends SuperClass{ String a=”aaa”; public static void main(String args[]){ SubClass bar=new SubClass(); bar.test(); System.out.println(bar.a); } } 6. class def{ private int x,y,z=0; public void method1() { int x=2,y=3,z; z=x*y; System.out.println("z="+z); } public void show() { System.out.println("z="+z); } } class Change1{ public static void main(String args[]) { int z=15; def ss=new def(); ss.method1(); ss.show(); } } 7. import java.io.* ; public class Abc4_2 { public static void main(String args[ ]) { SubSubClass x = new SubSubClass(10 , 20 , 30); x.show(); } } class SuperClass { int a,b; SuperClass(int aa , int bb) { a=aa; b=bb; } void show( ) { System.out.println("a="+a+"\nb="+b); } } class SubClass extends SuperClass { int c; SubClass(int aa,int bb,int cc) { super(aa,bb); c=cc; } } class SubSubClass extends SubClass { int a; SubSubClass(int aa,int bb,int cc) { super(aa,bb,cc); a=aa+bb+cc; } void show() { System.out.println("a="+a+"\nb="+b+"\nc="+c); } } 8. class ArrayC4{ public static void main(String args[] ) { int c[]={1,2,3,4,5,6,7,8,9}; int j; System.out.println("Array c"); for(j=0;j System.out.print( c[j]+" "); System.out.println(); System.out.println("Array sum: "); System.out.println(arraySum(c) ); } static float arraySum(int d[]) { float sum=0; for(int i=0;i sum +=d[i]; return sum; } } 9. import java.io.* ; public class Abc4_4{ public static void main(String args[ ]) { int j=2; switch(j){ case 2: System.out.print("Value is two."); case 2+1 : System.out.println("Value is three."); break; default: System.out.println("value is "+j); break; } } } } 二.程序填空 已知类Stock和类JavaMain都定义在JavaMain.Java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。(2005年程序员下半年下午试题) 01.public class Stock{ 02. static { 03. shares=0; 04. share_val=0.0; 05. } 06. private Stock(){getData();} 07. private Stock(int n,double pr=0){ 08. shares=n; 09. share_val=pr; 10. getData(); 11. } 12. public void getData(){ 13. System.out.print(shares+”:”+share_val+”“); 14. } 15. private int shares; //非静态变量 16. private double share_val; //非静态变量 17.} 18.public class JavaMain{ 19. public static void main(String args[]){ 20. Stock a=new Stock; 21. Stock b=new Stock(1,67.5); 22. } 三.编程题。 1.编写一个类用于求圆的面积,编写一个测试类,从键盘输入半径值,求圆的面积并输出。(8分) 2.编写3个接口,它们之间具有继承关系,每个接口中包含一个常量字符串。试通过一个类继承这些接口,通过显示接口中的常量字符串来展示接口的继承性。 四.分析程序,当条件发生变化时,程序输出发生什么变化 5.1、 public class Exception1{ public static void main(String args[]){ try { int a[]={1,2,3,4,5},sum=0; for(int i=0;i<=5;i++)sum+=a[i]; System.out.println("sum="+sum); System.out.println("Successfully!"); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException detected"); } finally { System.out.println("Program Finished !"); } } } 原程序执行的结果是什么,当程序中将i<=5改为 i<=a.length时程序的执行结果又是什么? 5.2、 5.2.1给出下列程序执行结果,若n的初值改为0结果如何 public class Cyc1 { public static void main(String args[ ] ) { int n=4; int result=1; while(n>0){ result*=n--; System.out.println(“n=”+n); } System.out.println(“result=”+result); } } 5.2.2给出下列程序执行结果,若将语句int n=4改为 int n=0结果如何 public class Samp3-8{ public static void main(String args[ ] ) { int n=4; int result=1; do{ result*=n--; System.out.println(“n=”+n); }while(n>0) System.out.println(“result=”+result); } 五.改写如下java 程序 (从面向过程程序设计――模块化程序设计――面向对象的程序设计) 6.1给出程序的结果 6.2将二维矩阵输出作为方法Out;将矩阵转置作为方法Turn; 6.3 将以上两个方法分别作为两个类文件并打包;通过引用包实现上述功能,给出程序执行的步骤。 class Aturn{ public static void main(String args[] ) { int i,j; int a[][]={{7,8,9},{4,5,6},{1,2,3}}; int b[][]= new int[3][3]; System.out.println("Array a"); for(i=0;i {for(j=0;j System.out.print(a[i][j]+" "); System.out.println();}