- 相關推薦
2014福建星網銳捷校園招聘筆試題
去星網銳捷筆試,考了很多內容:有c語言的相關知識,網絡IP,線性表等。后面有四道大題,共60分,分值很高吧!
順便說一下,我報的是軟件研發,當時說包括c、c++和java.可拿到試卷才知道全是c,由于對java比較熟悉,用java實現后面的四道大題。具體的c函數表示和原題已經記不清了,只能說說題目的大意。
以下代碼在IDE里面可以直接運行,并輸出相應結果。
1.編程實現楊輝三角的前十行(10分):
public class Test4 {
private static void getLines(int i){
int[][] yh=new int[i][i];
//給所有端點賦值為1
for(int n=0;n
yh[n][0]=1;
yh[n][n]=1;
}
//給除了端點元素的其它元素賦值,把yh[n][m]看成是組合c(n,m),n、m分別為下標和上標
for(int n=2;n
for(int m=1;m
//該公式為楊輝三角的特性之一
yh[n][m]=yh[n-1][m]+yh[n-1][m-1];
}
}
//輸出整個楊輝三角
for(int k=0;k
for(int l=0;l<=k;l++){
System.out.print(yh[k][l]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
int i=10;
getLines(i);
}
}
public class Test4 {
private static void getLines(int i){
int[][] yh=new int[i][i];
//給所有端點賦值為1
for(int n=0;n
yh[n][0]=1;
yh[n][n]=1;
}
//給除了端點元素的其它元素賦值,把yh[n][m]看成是組合c(n,m),n、m分別為下標和上標
for(int n=2;n
for(int m=1;m
//該公式為楊輝三角的特性之一
yh[n][m]=yh[n-1][m]+yh[n-1][m-1];
}
}
//輸出整個楊輝三角
for(int k=0;k
for(int l=0;l<=k;l++){
System.out.print(yh[k][l]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
int i=10;
getLines(i);
}
}
輸出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
2.一元錢買一瓶啤酒,兩個空瓶換一瓶啤酒.問n元錢能喝多少瓶啤酒?用遞歸實現。(15分)
public class Test2 {
private static int getNumberOfBeer(int n){
if(n==1){
return 1;
}else if(n>=2&&n%2==0){
return n+getNumberOfBeer(n/2);
//奇數元錢需要加1
}else if(n>=2&&n%2!=0){
return n+1+getNumberOfBeer(n/2);
}
return -1;
}
public static void main(String[] args){
int i4=getNumberOfBeer(4);
int i5=getNumberOfBeer(5);
System.out.println(i4);
System.out.println(i5);
}
}
public class Test2 {
private static int getNumberOfBeer(int n){
if(n==1){
return 1;
}else if(n>=2&&n%2==0){
return n+getNumberOfBeer(n/2);
//奇數元錢需要加1
}else if(n>=2&&n%2!=0){
return n+1+getNumberOfBeer(n/2);
}
return -1;
}
public static void main(String[] args){
int i4=getNumberOfBeer(4);
int i5=getNumberOfBeer(5);
System.out.println(i4);
System.out.println(i5);
}
}
輸出:
7
9
3.對一個數組進行冒泡的升序排列。(15分)
public class bubbleSort {
private static void Sort(int[] data){
for(int i=0;i
for(int j=0;j
if(data[j]>data[j+1]){
int tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
public static void main(String[] args){
int[] a=new int[]{1,2,5,3,9,8,7,22,-1,-3};
Sort(a);
for(int i=0;i
System.out.print(a[i]+" ");
}
}
}
public class bubbleSort {
private static void Sort(int[] data){
for(int i=0;i
for(int j=0;j
if(data[j]>data[j+1]){
int tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
public static void main(String[] args){
int[] a=new int[]{1,2,5,3,9,8,7,22,-1,-3};
Sort(a);
for(int i=0;i
System.out.print(a[i]+" ");
}
}
}
輸出:
-3 -1 1 2 3 5 7 8 9 22
4.從1000000個數里面選出100個最大的數,用堆排序實現。(20分)
public class HeapSort_max {
//Sort的參數表與題目中所給c函數的參數表一致。t是數組中獲得的前t個最大數
private static void Sort(int[] data,int n,int t){
n=data.length;
for(int i=0;i
buildMaxHeap(data,n-1-i);
swap(data,0,n-1-i);
}
}
//對兩數進行交換
private static void swap(int[] data,int i,int j){
int tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
//建堆的實現
private static void buildMaxHeap(int[] data,int lastIndex){
for(int i=(lastIndex-1)/2;i>=0;i--){
int k=i;
while(2*k+1<=lastIndex){
int biggerIndex=2*k+1;
if(biggerIndex
if(data[biggerIndex]
biggerIndex++;
}
}
if(data[k]
swap(data,k,biggerIndex);
k=biggerIndex;
}else{
break;
}
}
}
}
public static void main(String[] args){
int[] a=new int[]{1,5,8,7,-3,50,-8,0,11,21,23,18,80,30};
int n=a.length;
int j=6;//當數組有1000000個數,且j=100時即可輸出前100個最大數
Sort(a,n,j);
for(int i=n-1;i>n-1-j;i--){
System.out.print(a[i]+" ");
}
}
}
public class HeapSort_max {
//Sort的參數表與題目中所給c函數的參數表一致。t是數組中獲得的前t個最大數
private static void Sort(int[] data,int n,int t){
n=data.length;
for(int i=0;i
buildMaxHeap(data,n-1-i);
swap(data,0,n-1-i);
}
}
//對兩數進行交換
private static void swap(int[] data,int i,int j){
int tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
//建堆的實現
private static void buildMaxHeap(int[] data,int lastIndex){
for(int i=(lastIndex-1)/2;i>=0;i--){
int k=i;
while(2*k+1<=lastIndex){
int biggerIndex=2*k+1;
if(biggerIndex
if(data[biggerIndex]
biggerIndex++;
}
}
if(data[k]
swap(data,k,biggerIndex);
k=biggerIndex;
}else{
break;
}
}
}
}
public static void main(String[] args){
int[] a=new int[]{1,5,8,7,-3,50,-8,0,11,21,23,18,80,30};
int n=a.length;
int j=6;//當數組有1000000個數,且j=100時即可輸出前100個最大數
Sort(a,n,j);
for(int i=n-1;i>n-1-j;i--){
System.out.print(a[i]+" ");
}
}
}
輸出:
80 50 30 23 21 18
看了以上題,是不是很簡單啊?當參加了很多公司的筆試,從試題的難易層度,你就知道各個公司之間的層次了。Good luck!
【福建星網銳捷校園招聘筆試題】相關文章:
星網銳捷筆試題目12-12
星網銳捷面試07-06
銳捷星網面試07-31
星網銳捷面試07-31
星網銳捷硬件開發的筆試題目11-21
星網銳捷面試經驗11-28
2012星網銳捷筆試11-19
星網銳捷面試--硬件篇08-08
銳捷筆試題03-24
銳捷筆試題07-31