日期:2014-05-20  浏览次数:20873 次

笔试题
1有两个有序数级R1[5],R2[5],将这两个数组合并成一个有序数组,用程序表达实现的思路
2   1至100一百个自然数(无序),放入一个99个元素的数组a[99],用java语言编写一段程序,找出没有被放入数组这个数。
2.8,64,256都是2的阶次方数(例8是2的3次方),用java编写程序,用两种方法来判断一个整数是不是2的阶次方数,并说明哪个方法更好。

3.有一整型数组有n个数,用java实现第一个元素与第n个元素互换,第二个元素与第n-1个元素互换…。

4.利用jdk中的基本类vector,用java语言编写类Stack和Queue,分别实现堆栈和队列数据结构。
 Stack类至少要实现以下基本操作:进栈(push),出栈(pop),清空堆栈(clear)
  Queue类至少要实现以下基本操作:进队列(enqueue),出队列(dequeue),清空 队列
5.1至100一百个随机自然数,放入数组a中。用java实现
 当中重复次数最多,而且是数是最大的一个,打印出来!



------解决方案--------------------
1、支持任意长度的int型R1,R2数组。其他题目等续。。
int[] R1 = {2,4,5,7,8,12,14,16,18};
int[] R2 = {1,3,6,9,10,11,15,19,20,22};
int[] R3 = new int[R1.length+R2.length];
for(int i=0,j=0; i <R1.length || j <R2.length;){
if(i==R1.length){
R3[i+j] = R2[j++];
continue;
}
if(j==R2.length){
R3[i+j] = R1[i++];
continue;
}
if(R1[i] <R2[j]){
R3[i+j] = R1[i++];
}else{
R3[i+j] = R2[j++];
}
}
for(int i:R3){
System.out.print(i+ " ");
}
System.out.println();
------解决方案--------------------
第二题:
array[] = {1,2,3,4....};
int sum = 0;
for(int x :array)
sum += x;
return 5050 - sum;

------解决方案--------------------
Stack类至少要实现以下基本操作:进栈(push),出栈(pop),清空堆栈(clear)

public class TestStack{

private Vector vector = new Vector();
// 进栈(push)
public void inStack(Object o){
vector.add(o);
}
//出栈(pop)
public Object outStack(){
if(vector.isEmpty()){
return null;
}
return vector.get(vector.size()-1);
}
//清空堆栈(clear)
public void removeAll(){
this.vector = new Vector();
}
}
------解决方案--------------------
第五题
public static void main(String[] args) {
Map <Integer,Integer> map = new TreeMap <Integer,Integer> () ;
Random rand = new Random();
for(int i=1;i <=100;i++) {
int x = rand.nextInt(100) ;
map.put(x, map.get(x)==null?1:map.get(x)+1);
}
int min=-1;
int max =0;
for(int j=100;j> =1;j--){
if(map.get(j)!=null&&map.get(j)> min){
min=map.get(j);
max=j;
}
}
System.out.println(max);
System.out.println(map);
}
}
------解决方案--------------------
package ihavegotyou;

import java.util.Random;
import java.util.Vector;

public class Pow {
public static boolean is2Power(int n) {
boolean result = n > = 1 ? true : false;
if (result) {
if (n == 1)
return true;
int num = 1;
while ((num = num < < 1) < n)
;
result = num == n;
}
return result;
}

public static int[] exChange(int[] a) {
int len = a.length;
for (int i = 0; i < len / 2; i++) {
int temp = a[i];
a[i] = a[len - 1 - i];
a[len - 1 - i] = temp;
}
return a;
}

public static class Stack {
private Vector <String> vc = new Vector <String> ();

synchronized public void clear() {
vc.clear();
}

synchronized public void push(String str) {
// 栈添加元素的时候添在最前面
vc.add(0, str);
}