2014年4月份考试Java程序设计第三次作业一、程序阅读题(本大题共30分,共5小题,每小题6分)1.public class test{static StringBuffer sb1=new StringBuffer("Hello");static StringBuffer sb2=new StringBuffer("Hello");public static void main(String args[]){aMethod(sb1,sb2);System.out.println("sb1is"+sb1);System.out.println("sb2is"+sb2);}public static void aMethod(StringBuffer sb1,StringBuffer sb2) {sb2.append("there");sb1=sb2;}}2.public class test{public static void stringReplace(String text){text.replace(''a'',''e'');}public static void bufferReplace(StringBuffer text){text=text.append("s");}public static void main(String args[]){String textString=new String("china");StringBuffer textBuffer=new StringBuffer("china"); stringReplace(textString);bufferReplace(textBuffer);System.out.println(textString+textBuffer);}}3.4.class A{class Dog{private String name;private int age;public int step;Dog(String s,int a){name=s;age=a;step=0;}public void run(Dog fast){fast.step++;}}public static void main(String args[]) {A a=new A();Dog d=a.new Dog("Tom",3);d.step=25;d.run(d);System.out.println(d.step);}}5.public class test{public static void main(String args[]){int a=25,b=3,e=3;if(e!=0&&a/e>5)System.out.println("a/e="+a/e);int f=0;if(f!=0&&a/f>5)System.out.println("a/f"+a/f);else System.out.println("f="+f);}}二、简答题(本大题共30分,共5小题,每小题6分)1.什么是接口,它的主要作用是什么?2.String类与StringBuffer类的主要区别是什么?3.什么是Applet,如何运行一个Applet?4.如何构造一个线程(两种方法)?5.如果需要的文件不存在,在访问时会产生异常吗,产生什么异常?三、程序设计题(本大题共40分,共4小题,每小题10分)1.编写程序实现根据月份自动判断题该月所属季节的功能(3~5月为春季,6~8为夏季,9~11为秋季,12,1,2为冬季)2.编写程序将任意三个变量a,b,c中的值进行交换,使得变量a的值最小,b其次,c的值最大.3.编写一个程序,从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数.4.编写程序输出如下所示图形答案:一、程序阅读题(30分,共5题,每小题6分)1.参考答案:sb1is Hello sb2is Hello there解题方案:评分标准:完全一样才得分2.参考答案:chinachinas解题方案:评分标准:完全一样才得分3.参考答案:4解题方案:评分标准:完全一样才得分4.参考答案:26解题方案:评分标准:完全一样才得分5.参考答案:a/e=8f=0解题方案:评分标准:完全一样才得分,多写不得分二、简答题(30分,共5题,每小题6分)1.参考答案:接口就是方法定义和常量值的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中包含常量和方法的定义,而没有变量的和方法的实现.它的的主要作用包括以下几方面:(1)通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的的层次关系.(2)通过接口可以指明多个类需要实现的方法.(3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类.解题方案:评分标准:接口概念1分,作用1个1分2.参考答案:类StringBuffer可以直接改变字符串的值或长度,而String对象却只能访问,不能直接进行修改,如果要修改,必须先生成对象的拷贝,再对拷贝进行修改.这是它们之间最大的区别.解题方案:评分标准:回答太简单得2分,全面4分3.参考答案:Applet是嵌入到网页的java小程序.Applet在浏览器中运行,必须创建一个html文件,把Applet嵌入到html中,在浏览器中给出html文件的URL地址即可解题方案:评分标准:1个小问题2分4.参考答案:构造线程体有两种方式1定义一个线程类,它继承Thread类,并重写其中的run ()方法.直接生成这个类的对象就可以构造一个线程.2提供一个实现接口?Runnable的类作为线程的目标对象.在构造线程对象时,通过方法?Thread(Runnable?target,String?name)把目标对象传给这个线程实例.解题方案:评分标准:1个方法2分5.参考答案:会产生异常,因为,如果构造FileInputStrem对象访问文件时,如果文件不存在,不能构造FileInputStream对象,器构造方法会抛弃FileNotFoundException类型的异常.解题方案:评分标准:会产生异常2分,产生什么异常2分三、程序设计题(40分,共4题,每小题10分)参考答案:public class MyClass3_3{public static void main(String args[]) {int month=7;String season;switch(month){case12:case1:case2:season="冬季"; break;case3:case4:case5:season="春季"; break;case6:case7:case8:season="夏季"; break;case9:case10:case11:season="秋季"; break;default:season="非月份数据";}System.out.println(month+"月是"+season); }}解题方案:评分标准:结构3分,功能实现4分,语法3分2.参考答案:public class Example{public static void main(String args[]) {int a=9,b=5,c=7,t;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;if(b>c){t=b;b=c;c=t;}System.out.println("a="+a+",b="+b+",c="+c);}}解题方案:评分标准:结构3分,功能实现4分,语法3分3.参考答案:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamreader;public class ReadNum{Public static void main(String args[])throws IOException{Inti,n=10;Int a[]=new int[10]InputStreamReader it=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(ir);String s;For(i=0;i<n;i++){S=in.readLine();a[i]=Interger.parseInt(s);}For(i=n-1;i>=0;i--)System.out.print(a[i]+’’“);}}解题方案:评分标准:结构3分,功能实现4分,语法3分.重点:for(i=n-1;i>=0;i--) System.out.print(a[i]+"");4.参考答案:Public class in{Public static void main(String[]args)){Int I,j;For(i=1;i<=8;i++={If(i<=4=//输出前四行{for(j=1;j<=2*i-1;j++);System.out.print(“*”);}else//输出后四行{For(j=1;j<=9–I;j++)System.out.print(“*”);System.out.print();}}}}解题方案:评分标准:结构3分,功能实现4分,语法3分。