當前位置:學問君>學習教育>考研>

程序設計相關筆試題目

學問君 人氣:1.98W

一:  寫入如下程序的執行結果          

程序設計相關筆試題目

1、 

 public class Test {
 int i = 1;
 int j = 3;
 
 public Test(int m, int n){
  this.i = m;
  this.j = n;
 }
 public Test(){}

 public static void main(String[] args) {
  new Test()();
 }
 
 public void test(){
  new Test(4,2);
  tln("i="+i+",j="+j);
 }
}

  我寫的是 i=2, j=4。 而實際上的執行結果爲i=1, j=3。

  

2、 

public class A {
 public int Avar;
 
 public A(){
  tln("AAA");
  doSomething();
 }
 
 public void doSomething(){
  Avar = 1111;
  tln("mething()");
 }

}

public class B extends A {
 
 public int Bvar = 2222;
 public B(){
  tln("BBBB");
  doSomething();
  tln("Avar="+Avar);
 }
 
 public void doSomething(){
  tln("Bvar="+Bvar);
 }
 
 public static void main(String[] args) {
  new B();

   }

}

我寫的.執行結果爲:

AAA

mething()

BBB

2222

1111

而實際執行結果爲:

AAA
Bvar=0
BBB
Bvar=2222
Avar=0

 

3、  Interger integer;

        if(integer==42){   do  something  ...  }。 次代碼片段在執行時拋 空指針異常。 因爲Integer爲非基本類型的變量, 其默認值爲null,  所以 ....     ... 

 

4、 

/**
  * 測試 string 的
  */
 public static void main(String[] args) {
  String str1 = new String("A");
  String str2 = new String("B");
  operateString(str1, str2);
  tln("str1="+str1+",str2="+str2);
  int x=10;
  operateInt(x);
  tln(x);
  
  StringBuffer str3 = new StringBuffer("A");
  StringBuffer str4 = new StringBuffer("B");
  operateStringBuffer(str3, str4);
  tln("str3="+str3+",str4="+str4);
  
  testOperator();
 }

 public static void operateString(String a, String b){
  at(b);
  b=a;
 }
 
 public static void operateInt(int x){
  x = x+100;
 }
 
 public static void operateStringBuffer(StringBuffer a, StringBuffer b){
  nd("B");
  b=a;
 }

輸出結果爲:  A, B, 10, AB, B.  此題給出了正解。

5、 String 類型的變量也支援重載符: “+=”。

 

6、  編程題, 實現 歸併排序算法:

public class MergeSort2 {

public int[] sort(int[] data) {
        int[] temp=new int[th];
        mergeSort(data,temp,0,th-1);
        return data;
    }
   
    private void mergeSort(int[] data,int[] temp,int l,int r){
        int mid=(l+r)/2;
        tln(l+", "+mid+", "+r);
        if(l==r) return ;
       
        mergeSort(data,temp,l,mid);
        mergeSort(data,temp,mid+1,r);
        for(int i=l;i<=r;i++){
        tln("i="+i);
            temp[i]=data[i];
        }
        int i1=l;
        int i2=mid+1;
        for(int cur=l;cur<=r;cur++){
            if(i1==mid+1)
                data[cur]=temp[i2++];
            else if(i2>r)
                data[cur]=temp[i1++];
            else if(temp[i1]<temp[i2])
                data[cur]=temp[i1++];
            else
                data[cur]=temp[i2++];           
        }
    }
   
/**
* @param args
*/
public static void main(String[] args) {
int[] datas={1,21,34,79,98,23,68,2,3,8,6,33,6,7,87,32,24,6,776};
MergeSort2 mergeSort=new MergeSort2();
datas=(datas);
for(int i=0;i<th;i++){
t(datas[i]+",");
}
}
}