<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Java認證筆試題及答案

    時間:2024-06-04 08:34:51 JAVA認證 我要投稿
    • 相關推薦

    2016年Java認證筆試題及答案

      一、單項選擇題

    2016年Java認證筆試題及答案

      1.Java是從()語言改進重新設計。

      A.Ada

      B.C++

      C.Pasacal

      D.BASIC

      答案:B

      2.下列語句哪一個正確()

      A. Java程序經編譯后會產生machine code

      B.Java程序經編譯后會產生byte code

      C.Java程序經編譯后會產生DLL

      D.以上都不正確

      答案:B

      3.下列說法正確的有()

      A.class中的constructor不可省略

      B. constructor必須與class同名,但方法不能與class同名

      C.constructor在一個對象被new時執行

      D.一個class只能定義一個constructor

      答案:C

      4.提供Java存取數據庫能力的包是()

      A.java.sql

      B.java.awt

      C.java.lang

      D.java.swing

      答案:A

      5.下列運算符合法的是()

      A.&&

      B.<>

      C.if

      D.:=

      答案:A

      6.執行如下程序代碼

      a=0;c=0;

      do{

      --c;

      a=a-1;

      }while(a>0);

      后,C的值是()

      A.0

      B.1

      C.-1

      D.死循環

      答案:C

      7.下列哪一種敘述是正確的()

      A.abstract修飾符可修飾字段、方法和類

      B.抽象方法的body部分必須用一對大括號{}包住

      C.聲明抽象方法,大括號可有可無

      D.聲明抽象方法不可寫出大括號

      答案:D

      8.下列語句正確的是()

      A.形式參數可被視為localvariable

      B.形式參數可被字段修飾符修飾

      C.形式參數為方法被調用時,真正被傳遞的參數

      D.形式參數不可以是對象

      答案:A

      9.下列哪種說法是正確的()

      A.實例方法可直接調用超類的實例方法

      B.實例方法可直接調用超類的類方法

      C.實例方法可直接調用其他類的實例方法

      D.實例方法可直接調用本類的類方法

      答案:D

      二、多項選擇題

      1.Java程序的種類有()

      A.類(Class)

      B.Applet

      C.Application

      D.Servlet

      2.下列說法正確的有()

      A.環境變量可在編譯sourcecode時指定

      B.在編譯程序時,所能指定的環境變量不包括class path

      C.javac一次可同時編譯數個Java源文件

      D.javac.exe能指定編譯結果要置于哪個目錄(directory)

      答案:BCD

      3.下列標識符不合法的有()

      A.new

      B.$Usdollars

      C.1234

      D.car.taxi

      答案:ACD

      4.下列說法錯誤的有()

      A.數組是一種對象

      B.數組屬于一種原生類

      C.intnumber=[]={31,23,33,43,35,63}

      D.數組的大小可以任意改變

      答案:BCD

      5.不能用來修飾interface的有()

      A.private

      B.public

      C.protected

      D.static

      答案:ACD

      6.下列正確的有()

      A. call byvalue不會改變實際參數的數值

      B. call by reference能改變實際參數的參考地址

      C. call byreference不能改變實際參數的參考地址

      D. call byreference能改變實際參數的內容

      答案:ACD

      7.下列說法錯誤的有()

      A.在類方法中可用this來調用本類的類方法

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

      C.在類方法中只能調用本類中的類方法

      D.在類方法中絕對不能調用實例方法

      答案:ACD

      8.下列說法錯誤的有()

      A.Java面向對象語言容許單獨的過程與函數存在

      B. Java面向對象語言容許單獨的方法存在

      C.Java語言中的方法屬于類中的成員(member)

      D.Java語言中的方法必定隸屬于某一類(對象),調用方法與過程或函數相同

      答案:ABC

      9.下列說法錯誤的有()

      A.能被java.exe成功運行的javaclass文件必須有main()方法

      B. J2SDK就是Java API

      C.Appletviewer.exe可利用jar選項運行.jar文件

      D.能被Appletviewer成功運行的javaclass文件必須有main()方法

      答案:BCD

      三、判斷題

      1.Java程序中的起始類名稱必須與存放該類的文件名相同。()

      答案:正確

      2.Unicode是用16位來表示一個字的。()

      答案:正確

      3.原生類中的數據類型均可任意轉換。()

      答案:錯誤

      1.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。

      答案:

      BOOL : if ( !a ) orif(a)

      int : if ( a == 0)

      float : const EXPRESSION EXP = 0.000001

      if ( a < EXP && a >-EXP)

      pointer : if ( a !=NULL) or if(a == NULL)

      2.請說出const與#define 相比,有何優點?

      答案:1) const常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。

      2) 有些集成化的調試工具可以對const 常量進行調試,但是不能對宏常量進行調試。

      3.簡述數組與指針的區別?

      數組要么在靜態存儲區被創建(如全局數組),要么在棧上被創建。指針可以隨時指向任意類型的內存塊。

      (1)修改內容上的差別

      char a[]= “hello”;

      a[0] = ‘X’;

      char *p = “world”; // 注意p 指向常量字符串

      p[0] = ‘X’;// 編譯器不能發現該錯誤,運行時錯誤

      (2) 用運算符sizeof 可以計算出數組的容量(字節數)。sizeof(p),p為指針得到的是一個指針變量的字節數,而不是p 所指的內存容量。C++/C語言沒有辦法知道指針所指的內存容量,除非在申請內存時記住它。注意當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。

      char a[] ="hello world";

      char *p = a;

      cout<< sizeof(a) << endl; // 12字節

      cout<< sizeof(p) << endl; // 4 字節

      計算數組和指針的內存容量

      voidFunc(char a[100])

      {

      cout<< sizeof(a) << endl; // 4 字節而不是100字節

      }

      4.類成員函數的重載、覆蓋和隱藏區別?

      答案:

      a.成員函數被重載的特征:

      (1)相同的范圍(在同一個類中);

      (2)函數名字相同;

      (3)參數不同;

      (4)virtual 關鍵字可有可無。

      b.覆蓋是指派生類函數覆蓋基類函數,特征是:

      (1)不同的范圍(分別位于派生類與基類);

      (2)函數名字相同;

      (3)參數相同;

      (4)基類函數必須有virtual 關鍵字。

      c.“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下:

      (1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。

      (2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)

      5. There are two int variables: a and b, don’t use “if”, “? :”, “switch”orother judgement statements, find out the biggest one of the two numbers.

      答案:( ( a + b ) + abs( a - b ) ) / 2

      6. 如何打印出當前源文件的文件名以及源文件的當前行號?

      答案:

      cout << __FILE__ ;

      cout<<__LINE__ ;

      __FILE__和__LINE__是系統預定義宏,這種宏并不是在某個文件中定義的,而是由編譯器定義的。

      7. main主函數執行完畢后,是否可能會再執行一段代碼,給出說明?

      答案:可以,可以用_onexit 注冊一個函數,它會在main 之后執行intfn1(void), fn2(void), fn3(void), fn4 (void);

      void main( void )

      {

      String str("zhanglin");

      _onexit( fn1 );

      _onexit( fn2 );

      _onexit(fn3 );

      _onexit( fn4 );

      printf( "This is executed first.\n" );

      }

      int fn1()

      {

      printf( "next.\n" );

      return 0;

      }

      int fn2()

      {

      printf( "executed " );

      return 0;

      }

      int fn3()

      {

      printf( "is " );

      return 0;

      }

      int fn4()

      {

      printf( "This ");

      return 0;

      }

      The _onexit function is passed the address of afunction (func) to be called when the program terminates normally. Successivecalls to _onexit create a register of functions that are executed in LIFO(last-in-first-out) order. The functions passed to _onexit cannot takeparameters.

      8. 如何判斷一段程序是由C 編譯程序還是由C++編譯程序編譯的?

      答案:

      #ifdef __cplusplus

      cout<<"c++";

      #else

      cout<<"c";

      #endif

      9.文件中有一組整數,要求排序后輸出到另一個文件中

      答案:

      #i nclude

      #i nclude

      using namespace std;

      void Order(vector& data)//bubble sort

      {

      int count = data.size() ;

      int tag = false ; //設置是否需要繼續冒泡的標志位

      for ( int i = 0 ; i < count ; i++)

      {

      for ( int j =0 ; j < count - i - 1 ; j++)

      {

      if ( data[j] > data[j+1])

      {

      tag = true ;

      int temp = data[j] ;

      data[j] = data[j+1] ;

      data[j+1] = temp ;

      }

      }

      if ( !tag )

      break ;

      }

      }

      void main( void )

      {

      vectordata;

      ifstreamin("c:\\data.txt");

      if ( !in)

      {

      cout<<"file error!";

      exit(1);

      }

      int temp;

      while (!in.eof())

      {

      in>>temp;

      data.push_back(temp);

      }

      in.close(); //關閉輸入文件流

      Order(data);

      ofstream out("c:\\result.txt");

      if ( !out)

      {

      cout<<"fileerror!";

      exit(1);

      }

      for ( i = 0 ; i < data.size() ; i++)

      out<  10. 鏈表題:一個鏈表的結點結構

      struct Node

      {

      int data ;

      Node *next ;

      };

      typedef struct Node Node ;

      (1)已知鏈表的頭結點head,寫一個函數把這個鏈表逆序 ( Intel)

      Node * ReverseList(Node*head) //鏈表逆序

      {

      if ( head == NULL || head->next == NULL )

      returnhead;

      Node *p1 = head ;

      Node *p2 = p1->next ;

      Node *p3 =p2->next ;

      p1->next = NULL ;

      while ( p3 != NULL )

      {

      p2->next = p1 ;

      p1 = p2 ;

      p2 = p3 ;

      p3 = p3->next ;

      }

      p2->next = p1 ;

      head = p2 ;

      return head ;

      }

      (2)已知兩個鏈表head1 和head2 各自有序,請把它們合并成一個鏈表依然有序。(保留所有結點,即便大小相同)

      Node *Merge(Node *head1 , Node *head2)

      {

      if ( head1 == NULL)

      return head2;

      if ( head2 == NULL)

      return head1 ;

      Node *head = NULL ;

      Node*p1 = NULL;

      Node *p2 = NULL;

      if ( head1->data < head2->data )

      {

      head = head1 ;

      p1 = head1->next;

      p2 = head2 ;

      }

      else

      {

      head = head2 ;

      p2 = head2->next ;

      p1 = head1 ;

      }

      Node *pcurrent = head ;

      while ( p1 != NULL && p2 != NULL)

      {

      if ( p1->data <= p2->data )

      {

      pcurrent->next = p1;

      pcurrent = p1 ;

      p1 = p1->next ;

      }

      else

      {

      pcurrent->next = p2 ;

      pcurrent = p2 ;

      p2 = p2->next ;

      }

      }

      if ( p1 != NULL )

      pcurrent->next = p1 ;

      if ( p2 != NULL )

      pcurrent->next = p2 ;

      return head ;

      }

      (3)已知兩個鏈表head1 和head2各自有序,請把它們合并成一個鏈表依然有序,這次要求用遞歸方法進行。 (Autodesk)

      答案:

      Node *MergeRecursive(Node *head1 , Node *head2)

      {

      if ( head1 == NULL )

      return head2 ;

      if ( head2 == NULL)

      return head1 ;

      Node *head =NULL ;

      if ( head1->data < head2->data )

      {

      head = head1 ;

      head->next = MergeRecursive(head1->next,head2);

      }

      else

      {

      head = head2 ;

      head->next = MergeRecursive(head1,head2->next);

      }

      return head ;

      }

    【Java認證筆試題及答案】相關文章:

    java認證考試試題及答案03-04

    NIIT認證Java面試題及答案03-30

    2016最新Java認證筆試題及答案01-21

    Indesign認證試題及答案03-17

    IBM認證試題及答案07-21

    sun認證java基礎模擬試題03-30

    Java認證經典面試題目03-31

    Java認證考試真題及答案10-11

    NIIT認證Java基礎全真模擬試題03-08

    主站蜘蛛池模板: 国产成人精品无码播放| 国产精品你懂的在线播放| 亚洲国产成人久久精品动漫| 青娱乐国产精品视频| 国产福利在线观看精品| 国产精品亚洲综合一区| CAOPORM国产精品视频免费| 日韩精品成人a在线观看| 九九精品在线观看| 亚洲精品乱码久久久久久蜜桃图片| 99热成人精品国产免男男| 国产精品无码无在线观看| 无码人妻一区二区三区精品视频| 91自慰精品亚洲| 91视频精品全国免费观看| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 婷婷国产成人精品视频| 国产欧美精品一区二区三区四区| 国产一区二区精品| 久久99国产精品尤物| 亚洲欧美精品午睡沙发| 久久精品国产一区二区三区| 66精品综合久久久久久久| 国产精品成人在线| 精品无码国产一区二区三区AV| 自拍偷在线精品自拍偷| 久久青青草原精品国产软件| 97精品人妻一区二区三区香蕉| 国产短视频精品一区二区三区| 精品国产一区二区三区无码| 亚洲精品自产拍在线观看| 亚洲精品成人久久久| 免费看一级毛片在线观看精品视频| 国产日韩久久久精品影院首页 | 国产在线精品一区二区在线观看| 亚洲精品动漫免费二区| 蜜臀av无码人妻精品| 欧美精品国产一区二区三区| 国产精品无码DVD在线观看| 国产精品∧v在线观看| 国产91在线精品|