亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • 軟件研發(fā)工程師筆試題目及答案分享

    時間:2024-11-04 22:19:56 飛宇 筆試題目 我要投稿
    • 相關推薦

    軟件研發(fā)工程師筆試題目及答案分享

      筆試之前先找些相關公司的筆試題目來練練手吧,做到心里有數(shù)總不會錯的。以下是由應屆畢業(yè)生網(wǎng)小編J.L為您整理推薦的筆試題目和筆試經(jīng)驗,歡迎參考閱讀。

    軟件研發(fā)工程師筆試題目及答案分享

      軟件研發(fā)工程師筆試題目及答案分享 1

      請在60分鐘內作答

      一、選擇題

      1、哪個類是所有異常的基礎類 C

      A.String B.Error C.Throwable D.RuntimeException

      2、設float x = 1,y = 2,z = 3,則表達式 y+=z--/++x的值是:(A)

      A. 3.5 B. 3 C. 4 D. 5

      3、下列說法正確的是(B )

      A.在類方法中可用this來調用本類的類方法 B.在類方法中調用本類的類方法時可直接調用

      C.在類方法中只能調用本類中的類方法 D.在類方法中絕對不能調用實例方法

      4、根據(jù)下面的程序代碼,哪些選項的值返回true

      public class Square {

      long width;

      public Square(long l) {

      width = l;

      }

      public static void main(String arg[]) {

      Square a, b, c;

      a = new Square(42L);

      b = new Square(42L);

      c = b;

      long s = 42L;

      }

      }

      A.a == b; B.s == a; C.b == c; D.a.equals(s)

      equals() 是Object類的一個方法,指示某個其他對象是否與此對象“相等”。由于類 Object 是類層次結構的根類。所以它是每個類的超類。所示每個類都可以重寫equals()方法,如String類。如果沒有重寫(override)新類的 equals(),則該方法和 == 操作符一樣在兩個變量指向同一對象時返回真,但是Java推薦的是使用equals()方法來判斷兩個對象的內容是否一樣。考察“==”及方法 “equals()”的用法。注意以下幾點區(qū)別。

      引用類型比較引用;基本類型比較值。

      equals()方法只能比較引用類型,“==”可比較引用及基本類型。

      用equals()方法進行比較時,對類File、String、Date及封裝類(Wrapper Class)來說,是比較類型及內容。

      用==”進行比較時,符號兩邊的數(shù)據(jù)類型必須一致(可相互轉換的基本類型除外),否則編譯出錯。

      在此題中,因為a,b,c是三個對象面,但是c=b這條語句,將c的內存地址指向了b,所以c和b指向了同一個地址,相當于c和b是同一個對象,由于== 操作符只有當兩個變量指向同一對象時返回真,故C是正確的。

      5. 下面選項中,哪個選項的內容可以作為FilEinputStream類的構造方法的參數(shù)

      A.File B.String C.InputStream D.FileOutputStream

      主要參考FileInputStream的構造方法,F(xiàn)ileInputStream類的構造方法有3個,可接受的參數(shù)分別是:File、FileDescriptor、String類的一個對象

      6. 在下面程序標明的位置處插入哪條語句會導致編譯錯誤

      public class FinalUse {

      public static void main(String[] args) {

      int x = 0;

      final int y = 1;

      int[] z = { 2 };

      final int[] n = { 3 };

      Use(x, y, z, n);

      }

      static void Use(final int x, int y, final int[] z, int[] n) {

      // 插入內容

      }

      }

      請選擇兩個正確的答案:

      A.x++ B.y++ C.y=x D.z[0]++ E.n[0]++ F.z=n

      【試題分析】聲明形參的時候可以在方法調用的參數(shù)調用之前加上關鍵字final。final參數(shù)也可以叫做空白最終變量,也可以當作常量。即在對其賦值之前(例如方法調用之前),該變量為空(為初始化),賦值之后,在該變量的生存周期內只能調用再也不能改變變量的值。final變量只可以被賦值一次。在方法調用時,final形式參數(shù)被賦予實際參數(shù)的值。在方法內部,不能對final參數(shù)進行重新賦值或者是修改。

      

      在Use方法中,x是final類型的,因此A選項中x++表示是可以改變x的值的,所以A會導致編譯錯誤。y,n[0]是int變量,所以y, n[0]值是可以變化的,因此插入B和E選項都會編譯通過的。C選項是把x的值賦給y,改變是y的內容,不會改變x的值,所以插入C選項會編譯通過的。在 D選項中,由于z是個int型數(shù)組,它是屬于復合類型,在進行值傳遞的時候,傳給形參的是地址值,而不是內容,因此final int[] z就表示z數(shù)組不能在指向其他的數(shù)組對象,但是z數(shù)組中的內容是可以改變的,因此z[0]++表示的是內容上的改變,所以是沒有錯誤的,可以編譯通過的。 F選項正好與D選項相反,同理,F(xiàn)就是錯誤的。

      【參考答案】AF

      7.下面程序運行后的結果是什么

      Public class Test{

      Static Boolean foo(char c){

      System.out.print(c);

      Return true;

      }

      Public static void main(String[] argv){

      int i=0;

      For(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’)){

      i++;

      foo(‘D’);

      }

      }

      }

      A.ABDCBDCB B.ABCDABCD

      C.Compilation fails. D.An exception is thrown at runtime.

      二、代碼查錯

      1.abstract class Name {

      private String name;

      public abstract boolean isStupidName(String name) {}

      }

      解釋何錯誤 并更正

      大括號錯誤

      2. public class Something {

      public static void main(String[] args) {

      Something s = new Something();

      System.out.println("s.doSomething() returns " + doSomething());

      }

      public String doSomething() {

      return "Do something ...";

      }

      }

      答案: 錯?瓷先ピ趍ain里call doSomething沒有什么問題,畢竟兩個methods都在同一個class里。但仔細看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能訪問non-static instant variable。

      三、簡答題

      1、談談Collection 和Collections

      2、請說出String與StringBuffer、StringBuilder的區(qū)別

      String的`長度是不可變的,StringBuffer的長度是可變的。如果你對字符串中的內容經(jīng)常進行操作,特別是內容要修改時,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

      3、abstract class(抽象類)和interface(接口)有什么區(qū)別

      【試題分析】抽象類的特征如下:

      抽象類和抽象方法都必須用abstract關鍵字來修飾。

      抽象類不能被實例化,也就是不能用new關鍵字去產生對象。

      抽象方法只需聲明,而不需實現(xiàn)。

      抽象方法必須定義在抽象類中,抽象類的子類必須實現(xiàn)父類中的抽象方法,否則這個子類還是個抽象類。

      接口的特征如下:

      接口沒有構造方法。

      接口中聲明變量均為終極(final)的、靜態(tài)(static)的和公共(public)的。

      接口是定義的方法均為抽象的和公共的。

      接口里的數(shù)據(jù)成員必須初始化,且數(shù)據(jù)成員均為常量。

      【參考答案】聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。

      

      接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效

      4、request.getAttribute() 和 request.getParameter() 有何區(qū)別

      5、簡述下Servlet生命周期

      6、 談談你項目中用到的設計模式及如何使用的

      7、你一般用spring、hibernate、struts做什么

      四、代碼實現(xiàn)

      1、編寫SQL語句

      Student(S#,Sname,Sage,Ssex) 學生表

      Course(C#,Cname,T#) 課程表

      SC(S#,C#,score) 成績表

      Teacher(T#,Tname) 教師表

      1) 查詢平均成績大于60分的同學的學號和平均成績

      select S#,avg(score)

      from sc

      group by S# having avg(score) >60;

      2) 查詢所有同學的學號、姓名、選課數(shù)、總成績;

      select Student.S#,Student.Sname,count(SC.C#),sum(score)

      from Student left Outer join SC on Student.S#=SC.S#

      group by Student.S#,Sname

      3) 查詢沒學過“葉平”老師課的同學的學號、姓名

      select Student.S#,Student.Sname

      from Student

      where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’葉平’);

      2、第1個人10,第2個比第1個人大2歲,依次遞推,請用遞歸方式計算出第8個人多大

      用java語言實現(xiàn),,請編一段程序實現(xiàn)!

      package cn.itcast;

      import java.util.Date;

      publicclass A1 {

      public static voidmain(String [] args)

      {

      System.out.println(computeAge(8));

      }

      public static int computeAge(intn)

      {

      if(n==1)return 10;

      returncomputeAge(n-1) + 2;

      }

      }

      public static voidtoBinary(int n,StringBuffer result)

      {

      if(n/2 != 0)

      toBinary(n/2,result);

      result.append(n%2);

      }

      3、實現(xiàn)一個快速排序

      本人只研究過冒泡排序、選擇排序和快速排序,下面是快速排序的代碼:

      public class QuickSort {

      /**

      * 快速排序

      * @param strDate

      * @param left

      * @param right

      */

      public void quickSort(String[] strDate,int left,int right){

      String middle,tempDate;

      int i,j;

      i=left;

      j=right;

      middle=strDate[(i+j)/2];

      do{

      while(strDate[i].compareTo(middle)<0&& i

      i++; //找出左邊比中間值大的數(shù)

      while(strDate[j].compareTo(middle)>0&& j>left)

      j--; //找出右邊比中間值小的數(shù)

      if(i<=j){ //將左邊大的數(shù)和右邊小的數(shù)進行替換

      tempDate=strDate[i];

      strDate[i]=strDate[j];

      strDate[j]=tempDate;

      i++;

      j--;

      }

      }while(i<=j); //當兩者交錯時停止

      if(i

      quickSort(strDate,i,right);//從

      }

      if(j>left){

      quickSort(strDate,left,j);

      }

      }

      /**

      * @param args

      */

      public static void main(String[] args){

      String[] strVoid=newString[]{"11","66","22","0","55","22","0","32"};

      QuickSort sort=new QuickSort();

      sort.quickSort(strVoid,0,strVoid.length-1);

      for(int i=0;i

      System.out.println(strVoid[i]+" ");

      軟件研發(fā)工程師筆試題目及答案分享 2

      一、編程語言類

      題目 1:以下 C++ 代碼輸出結果是什么?

      #include

      using namespace std;

      int main() {

      int a = 10;

      int &b = a;

      b = 20;

      cout << a << endl;

      return 0;

      }

      答案:20。因為 b 是 a 的引用,對 b 的操作就是對 a 的操作。

      題目 2:在 Java 中,以下代碼有什么問題?

      java

      public class Main {

      public static void main(String[] args) {

      int[] array = new int[5];

      System.out.println(array[5]);

      }

      }

      答案:這段代碼會拋出 ArrayIndexOutOfBoundsException,因為數(shù)組索引是從 0 開始的,長度為 5 的數(shù)組最大索引為 4。

      二、數(shù)據(jù)結構類

      題目 1:簡述二叉搜索樹(BST)的特點。

      答案:

      若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值。

      若它的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值。

      它的左、右子樹也分別為二叉搜索樹。

      題目 2:請用代碼實現(xiàn)一個簡單的棧(以數(shù)組實現(xiàn)為例,使用 Java)。

      java

      class Stack {

      private int[] stackArray;

      private int top;

      public Stack(int capacity) {

      stackArray = new int[capacity];

      top = -1;

      }

      public void push(int element) {

      if (top < stackArray.length - 1) {

      stackArray[++top] = element;

      } else {

      // 可以選擇擴展數(shù)組或拋出異常表示棧滿

      System.out.println("Stack is full.");

      }

      }

      public int pop() {

      if (top >= 0) {

      return stackArray[top--];

      }

      // 可以選擇拋出異常表示?

      System.out.println("Stack is empty.");

      return -1;

      }

      }

      三、算法類

      題目 1:用 Python 實現(xiàn)快速排序算法。

      python

      def quick_sort(lst):

      if len(lst) <= 1:

      return lst

      pivot = lst[0]

      less = [element for element in lst[1:] if element <= pivot]

      greater = [element for element in lst[1:] if element > pivot]

      return quick_sort(less) + [pivot] + quick_sort(greater)

      題目 2:有一個有序數(shù)組,其中某個元素出現(xiàn)次數(shù)超過數(shù)組長度的一半,請找出這個元素(時間復雜度盡量低,使用 C++)。

      #include

      using namespace std;

      class Solution {

      public:

      int majorityElement(vector& nums) {

      int count = 0;

      int candidate;

      for (int num : nums) {

      if (count == 0) {

      candidate = num;

      }

      if (num == candidate) {

      count++;

      } else {

      count--;

      }

      }

      return candidate;

      }

      };

      四、操作系統(tǒng)類

      題目 1:進程和線程的區(qū)別是什么?

      答案:

      進程:是資源分配的'基本單位,擁有獨立的地址空間、代碼段、數(shù)據(jù)段等資源。進程間通信相對復雜,如管道、消息隊列等。不同進程間相互獨立,一個進程崩潰一般不會影響其他進程。

      線程:是 CPU 調度的基本單位,共享所屬進程的資源,如內存空間、文件描述符等。線程間通信相對簡單,可通過共享變量等方式。一個線程崩潰可能會導致整個進程崩潰。

      題目 2:什么是虛擬內存?

      答案:虛擬內存是計算機系統(tǒng)內存管理的一種技術。它使得應用程序認為它擁有連續(xù)的可用內存(一個連續(xù)完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數(shù)據(jù)交換。這種技術可以讓系統(tǒng)運行比實際物理內存大得多的程序,提高內存利用率和系統(tǒng)的多任務處理能力。

    【軟件研發(fā)工程師筆試題目及答案分享】相關文章:

    熱門IT軟件的筆試題目分享08-19

    思科筆試題,題目答案分享06-16

    軟件測試筆試題目分享07-06

    醫(yī)藥研發(fā)總監(jiān)輝瑞筆試題目分享10-04

    中興筆試題目分享有答案02-14

    史上最全軟件筆試題目及答案10-09

    中創(chuàng)軟件筆試主考題目分享07-25

    軟件測試筆試面試題目分享04-07

    邁瑞筆試題目硬件研發(fā)工程師09-03