一、單項選擇題

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.形式參數可被視為local variable

B.形式參數可被欄位修飾符修飾

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

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

答案:A

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

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

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

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

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

答案:D

二、多項選擇題

1.Java程序的種類有()

A.類(Class) B.Applet C.Application D.Servlet

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

A.環境變數可在編譯source code時指定

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. int number=[]={31,23,33,43,35,63}

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

答案:BCD

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

A.private B.public C.protected D.static

答案:ACD

6.下列正確的有()

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

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

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

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

答案:ACD

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

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

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

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

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

答案:ACD

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

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

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

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

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

答案:ABC

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

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

B. J2SDK就是Java API

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

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

答案:BCD

三、判斷題

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

答案:正確

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

答案:正確

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

答案:錯誤

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

答案:

BOOL :    if ( !a ) or if(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 位元組

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

void Func(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」or other 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 之後執行int fn1(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 a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.

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

答案:

#ifdef __cplusplus

cout<

#else

cout<

#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;

ifstream in("c://data.txt");

if ( !in)

{

cout<

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<

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 )

return head;

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筆試題附答案 | 學步園相关推荐

  1. java mdb文件_Java生成mdb文件[MS Access文件] | 學步園

    1. 在ClassPath下存一個空的blank.mdb. (也就是在你的項目中包含一個空白的.mdb文件) 2. 將項目中的blank.mdb另存到新的路徑. (可能是用戶選擇要導出mdb文件的保存 ...

  2. Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

    Java容器–2021面试题系列教程(附答案解析)–大白话解读–JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 Java ...

  3. 八字易经算法之用JAVA实现完整排盘系统_八字易經演算法之用JAVA實現完整排盤系統 | 學步園...

    去年一天,一個朋友去看望病人回來就驚奇的告訴我,他發現和他朋友一起住院(肝膽科)的病人無一例外都是屬相為虎的病人,不是大一輪就是小一輪的.這是為什麼呢? 這不是什麼偶然,也不是什麼巧合.也許通過八字能 ...

  4. 史上最全Java面试题大汇总「百题附答案」

    前言 整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要,但在短暂的面试过程中很挫败.转而去看面试题,但是网上面试 ...

  5. Java 棧_Java棧與堆 | 學步園

    1. 棧(stack)與堆(heap)都是Java用來在Ram中存放數據的地方.與C++不同,Java自動管理棧和堆,程序員不能直接地設置棧或堆. 2. 棧的優勢是,存取速度比堆要快,僅次於直接位於C ...

  6. java bigdecimal.valueof_java 中的大數據類型(BigInteger和BigDecimal) | 學步園

    一.為什麼為用到BigInteger和BigDecimal這種數據類型呢? 我們非常清楚,java裡面整型int與浮點型float,double它們存放數據的範圍是有邊界的.那麼如果需要更大的數據時, ...

  7. Java面试题大汇总,2021年附答案解析

    最新常Java面试题大汇总(含答案解析)发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全汇总,希望对大家有帮助哈 本套Java面试题大全,全的不能再全,哈哈~ ...

  8. 一个Java程序员的阿里面试心得,附答案解析

    第一阶段:架构师筑基必备技能 我觉得,但凡是个成年人应该都清楚扎实的基本功对自己的工作帮助有多重要.从各大招聘网站的招聘要求来看,第一条都明确说明需要扎实的Java基础.因此,一般笔试以及面试的第一轮 ...

  9. java开发工程师招聘软件,面试题附答案

    蚂蚁金服一面(技术面) JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些? GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点. hashmap源码问题 ...

最新文章

  1. maven <type>pom</type><scope>import</scope>
  2. 第三次学JAVA再学不好就吃翔(part26)--static关键字
  3. windows无法检索有关这台计算机上的磁盘信息_磁盘镜像软件OO DiskImage Pro 15.5介绍及安装教程...
  4. vscode java
  5. a4如何打印双面小册子_a4如何打印双面小册子
  6. 18、【易混淆概念集】第十一章2 实施定量风险分析 模拟、敏感性分析、决策树分析 风险应对策略 消极/威胁应对策略 积极/机会风险应对策略 开拓和提高的区别
  7. 修怪曹操杀了华佗_拔剑-浆糊的传说_新浪博客
  8. vue项目实现表格定时滚动
  9. ABAP VF01 / VF04销售开票增强 增加校验
  10. ALLHIC使用 | HiC辅助基因组组装(三)
  11. 教会微信:突破文件发送100M限制
  12. 前端设计人员必会技能 - gif动画图片制作
  13. linux学习笔记三: secureCRT小键盘输入数字键的时候,出现字母的解决方法:
  14. 2021HDU多校第四场5-Didn‘t I Say to Make My Abilities Average in the Next Life?!
  15. 他教全世界程序员怎么写好代码,答案写在这里!
  16. 一个神奇的网站 Papers with code
  17. 如何用Python查看微信好友撤回的消息?
  18. 热门的四款RK3399系列板卡产品大PK-谁是当家花旦?
  19. 最方便最好看最好用的python日志。
  20. ce 扫雷实验报告,棋盘布局,雷数,笑脸,计时器内存地址,思维导图分析

热门文章

  1. 浏览器引擎 Chromium
  2. android 拍照申请权限,Android拍照6.0以上动态获取权限
  3. Java学习系列之抽象类和接口的区别和联系
  4. php表格链接地址,php代码链接数据库并以表格形式输出数据库中的数据功能
  5. 【安全资讯】incaseformat蠕虫病毒大爆发!20s删除用户文件
  6. 竟然可以在Windows下用Nvim写代码?1.基础配置环境与安装nvim
  7. VOLTE注册失败案例
  8. html5 声控游戏,声控最爱的10款声音类APP,有趣又好玩!
  9. 使用python将pdf转化为长图片
  10. APP测试基础--小工具介绍(1)