首页 > 就业 > 笔试

福建星网锐捷校园招聘笔试题

福建星网锐捷校园招聘笔试题



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!

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.gunzhua.com/jiuye/bishi/84445.html

相关内容

热门阅读
随机推荐