就业数据资源平台
当前位置:首页 > 笔试题目
程序设计相关岗位笔试题目









一:  写入如下程序的运行结果         



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().test();

}



public void test(){

  new Test(4,2);

  System.out.println("i="+i+",j="+j);

}

}



  我写的是 i=2, j=4。 而实际上的运行结果为i=1, j=3。



  



2、



public class A {

public int Avar;



public A(){

  System.out.println("AAA");

  doSomething();

}



public void doSomething(){

  Avar = 1111;

  System.out.println("A.doSomething()");

}



}



public class B extends A {



public int Bvar = 2222;

public B(){

  System.out.println("BBBB");

  doSomething();

  System.out.println("Avar="+Avar);

}



public void doSomething(){

  System.out.println("Bvar="+Bvar);

}



public static void main(String[] args) {

  new B();



   }



}



我写的运行结果为:



AAA



A.doSomething()



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);

  System.out.println("str1="+str1+",str2="+str2);

  int x=10;

  operateInt(x);

  System.out.println(x);

  

  StringBuffer str3 = new StringBuffer("A");

  StringBuffer str4 = new StringBuffer("B");

  operateStringBuffer(str3, str4);

  System.out.println("str3="+str3+",str4="+str4);

  

  testOperator();

}



public static void operateString(String a, String b){

  a.concat(b);

  b=a;

}



public static void operateInt(int x){

  x = x+100;

}



public static void operateStringBuffer(StringBuffer a, StringBuffer b){

  a.append("B");

  b=a;

}



输出结果为:  A, B, 10, AB, B.  此题给出了正解。



5、 String 类型的变量也支持重载符: “+=”。







6、  编程题, 实现 归并排序算法:



public class MergeSort2 {



public int[] sort(int[] data) {

        int[] temp=new int[data.length];

        mergeSort(data,temp,0,data.length-1);

        return data;

    }

   

    private void mergeSort(int[] data,int[] temp,int l,int r){

        int mid=(l+r)/2;

        System.out.println(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++){

        System.out.println("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=mergeSort.sort(datas);

for(int i=0;i<datas.length;i++){

System.out.print(datas[i]+",");

}

}

}


就业数据资源平台