第一篇:軟件開發工程師筆試試題-應屆畢業生
天音通信軟件開發工程師崗位筆試試題
1、面向對象的思想主要包括什么?
封裝:用抽象的數據類型將數據和基于數據的操作封裝在一起,數據被保護在抽象數據類型內部。
繼承:子類擁有父類的所有數據和操作。
多態:一個程序中同名的不同方法共存的情況。
2、進程和線程分別怎么理解?
進程是表示資源分配的基本單位,又是調度運行的基本單位;
線程是進程中執行運算的最小單位,亦即執行處理機調度的基本單位。
進程和線程的關系
1、一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程。
2、資源分配給進程,同一進程的所有線程共享該進程的所有資源。
3、處理機分給線程,即真正在處理機上運行的是線程。
4、線程在執行過程中,需要協作同步。不同進程的線程間要利用消息通信的辦法實現同步。
3、黑盒測試和白盒測試是軟件測試的兩種基本方法,請分別說明各自的優點和缺點?
黑盒測試:不關心軟件的內部結構,只關心輸入和輸出,主要依據需求文檔;
白盒測試:專注于設計和實現的內部結構的軟件和程序,主要依據設計文檔;
缺點:
白盒測試只考慮測試軟件產品,他不保證完全滿足規范要求;
黑盒測試只考慮測試需求規格說明,它并不保證所有部件進行測試來實現;
優點:
黑盒測試會發現缺失的缺陷,指出哪部分是未完成的規范;
白盒測試會發現代碼的缺陷,實現部分是錯誤的。
4、選擇測試用例有哪些原則?
1、代表性:能夠代表并覆蓋各種合理的和不合理、合法的和非法的、邊界的和越界的、以及極限的輸入數據、操作和環境設置等。
2、可判性:即測試執行結果的正確性是可判定的,每一個測試用例都應有相應的期望結果。
3、再現性:即對同樣的測試用例,系統的執行結果應當是相同的。
5、請閱讀以下程序:
public class ClassParent
{
public int Add(int a, int b){} public virtual int Substract(int a, int b){} public abstract int Multiply(int a, int b);return ab;return b-a;
6、請寫出以下程序的運行結果:
public class A
{
}
public class B : A
{
public new int i = 0;public B(){} public override void fun(){i--;Console.WriteLine(@“B”);i++;public static int i = 0;public A(){} public virtual void fun(){} i++;Console.WriteLine(@“A”);
} } public class Main
{
}
static void Main(string[] args){} A a = new A();B b = new B();b.fun();Console.WriteLine(A.i);Console.WriteLine(b.i);
7、請編寫一個函數,它可以找出某一字符串中出現次數最多的英文字母(不區分大小寫,只考慮A-Z),并且可以返回這個字母以及它出現的個數。比如對于輸入字符串“I am a student”,該函數應當返回字母“A”以及個數2。只可以使用.NET標準類庫內的成員。
#include “stdio.h”
#include “string.h”
void fun(char *p,int *a)
{
int i;
while(*p)
{
for(i=0;i<26;i++)
if(*p=='a'+i||*p=='A'+i)
{
a[i]++;
}
p++;
}
for(i=0;i<26;i++)
printf(“%dn”,a[i]);
}
void main()
{
char str[]=“abedadHeIL”;int a[26]={0};fun(str,a);
}
第二篇:軟件開發工程師試題
軟件開發工程師試題
每題5分,滿分100分考試分數:
1、用預處理指令#define聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)。
2、寫一個“標準”宏MIN,這個宏輸入連個參數并返回較小的一個。
3、預處理器標識#error的目的是什么?
4、嵌入式系統中經常要用到無限循環,你怎么樣用C編寫死循環呢?
5、用變量a給出下面的定義
a)一個整型數(An integer)
b)一個指向整型數的指針(A pointer to an integer)
c)一個指向指針的的指針,它指向的指針是指向一個整型數(A pointer to a pointer to an integer)
d)一個有10個整型數的數組(An array of 10 integers)
e)一個有10個指針的數組,該指針是指向一個整型數的(An array of 10 pointers to integers)
f)一個指向有10個整型數數組的指針(A pointer to an array of 10 integers)
g)一個指向函數的指針,該函數有一個整型參數并返回一個整型數(A pointer to a function that takes an integer as an argument and returns an integer)
h)一個有10個指針的數組,該指針指向一個函數,該函數有一個整型參數并返回一個整型數(An array of ten pointers to functions that take an integer argument and return an integer)
6、以下代碼的輸出結果是()
char var[]
Int test(char var[]){ retrun sizeof(var);}
7、以下代碼的輸出結果是()
Class B { float f;char p;int asf[3];};cout< 8、以下代碼的輸出結果是() Class B { double d;char p;int asf[4];};cout< 9、下面的數據聲明都代表什么意思? (1)float(**def)[10] (2)double*(*gh)[10] (3)double(*f[10])() (4)int*((*b)[10]) (5)long(*fun)(int) (6)int(*(*f)(int,int))(int) 10、一個指向整型數組的指針定義為() A. int(*ptr)[]B.int *ptr[]C.int*(ptr[])D.int ptr[] 11、C++語言沒有可移植性。() A.正確 B.不正確 12、定義數組時可以不確定元素個數。() A.正確 B.不正確 13、指針是一種特殊的變量,只能用來保存地址。() A.正確 B.不正確 14、通過引用或者指針調用對象的成員函數時,如果引用或者指針的類型跟對象的類型不一致時,能自動正確調用對象所屬的類中對這個函數的定義。() A.正確 B.不正確 15、如果定義了一個類myclass,則為myclass類對象以成員函數形式重載后++運算符的聲明應該為()。 A.myclass operator++(); B.myclass& operator++(); C.myclass operator++(int); D.myclass& operator++(int); 16、父類和子類各自定義一個成員函數,函數名相同,參數表不同,那么()。函數同名,通通覆蓋,不同層次的函數不能重載 A.在子類中這兩個函數構成重載關系 B.子類不會繼承父類的這個函數 C.子類中的函數會覆蓋父類中的函數 D.編譯時會發生錯誤 17、抽象類指的是()。 A.沒有任何成員的類 B.只有成員函數沒有數據成員的類 C.有虛函數的類 D.有純虛函數的類 18、多重繼承時,如果派生類的兩個父類有一個共同的虛基類,那么虛基類的初始化參數由()的構造函數來傳遞。 A.第一個父類 B.第二個父類 C.派生類 D.以上都不是 19、多態性是通過()實現的。 A.構造函數 B.析構函數 C.虛函數 D.函數重載 20、如果有如下語句 char str[20]; cin >> str; cout << str; 執行時輸入的是“this is a test line!”,則輸出的內容是 A.this is a test line!B.this is a test line C.this is a testD.this)(答案: 1.#defineSECONDS_PER_YEAR(60*60*24*365)UL 2.#define MIN(A,B)((A)<=(B)?(A):(B)) 3.SQL 4.while(1){ } 或goto Loop: ...goto Loop;或者 for(;;){ } 5.a)int a; b)int *a; c)int **a; d)int a[10]; e)int *a[10]; f)int(*a)[10]; g)int(*a)(int); h)int(*a[10])(int); 6.4 7.20 8.32 9.(1)Def是一個二級指針,它指向的是一個指向一維數組的指針,數組的元素都是float。 (2)Gh是一個指針,它指向一個一維數組,該數組元素都是double* (3)F是一個數組,f有十個元素,元素都是指向函數的指針,指向的函數類型是沒有 參數且返回double的函數 (4)就跟“int*(b)[10]”是一樣的,b是一維數組的指針 (5)函數指針:指向函數的指針 (6)F是一個函數的指針,指向的函數的類型是有兩個int參數并且返回一個函數指針 的函數,返回的函數指針指向一個int參數且返回int的函數。 10.A11.B12.B13.A14.B15.C16.C17.D18.C19.C20.D 軟件開發工程師(JAVA)筆試題 請在120分鐘以內做答 一、選擇題 1、下面哪項是不合法的標識符:() A.$persons B.TwoUsers C.*point D._endline E.final 美元符 下劃線 字母 數字 不能以數字開頭 不能是關鍵字 2、下列運算符合法的是() A.&& B.<> C.if D.:= 算術 邏輯 關系 賦值 位 3、下面描述中哪兩項相等:()[選擇兩項] A.<%= YoshiBean.size%> B.<%= YoshiBean.getSize()%> C.<%= YoshiBean.getProperty(“size”)%> D. <jsp:useBean id=“test” class=“hall.SimpleBean” /> <jsp:setProperty name=“test” property=“message” value=“Hello www.tmdps.cnpilation fails C.An exception is thrown at runtime ? ? ? ? ? 18、閱讀下面的程序 1.public class Outer { 2.public void someOuterMethod(){ 3.//Line3 4.} 5.public class Inner(){} 6.public static void main(String[] args){ 7.Outer o = new Outer();8.//Line8 9.} 10.} Which instantiates is an instance of Inner?() A.new Inner();// At line3 B.new Inner();// At line 8 C.new o.Inner();// At line 8 C.new Outer.inner();// At line 8 19、選出能正確賦值的: public class TestA { private int a;public int change(int m){ + return m;} } public class TestB extend TestA{ public int b;public static void main(){ TestA aa = new TestA();TestB bb = new TestB();int k;// Line 13 } } 在Line13處可以正確賦值的有:() A.k= m;B.k=b;C.k=aa.a;D.k=bb.change(30);E.k=bb.a 靜態 main方法中不能調用非靜態類屬性 對于私有屬性,在類外打點無法調用,可以通過公共的方法訪問。20、已知如下代碼: switch(m){ case 0: System.out.println(”Condition 0“);case 1: System.out.println(”Condition 1“);case 2: System.out.println(”Condition 2“);case 3: System.out.println(”Condition 3“);break;default: System.out.println(”Other Condition“);} 當 m 的值為什么時輸出 ”Condition 2“?()A.0 B.1 C.2 D.3 E.4 F.None 21、給出程序段 public class Parent { public int addValue(int a,int b){ int s;s=a+b;return s;} } class Child extends Parent{} 可以加在Child類的方法有:()A.int addValue(int a,int b){} B.public void addValue(int a,int b){} C.public int addValue(int a){} D.public int addValue(int a,int b){} 方法名 參數類表 返回類型相同是重寫 控制符 和 異常不合法是不標準的重寫 22、下述哪些說法是正確的?()A.實例變量是類的成員變量 B.實例變量是用static關鍵字聲明的 C.方法變量在方法執行時創建 D.方法變量在使用之前必須初始化 ???????? 23、對于下列代碼: public class Sample{ long length;public Sample(long l){ length = l;} public static void main(String arg[]){ Sample s1, s2, s3;s1 = new Sample(21L);s2 = new Sample(21L);s3 = s2;long m = 21L;} } 下列哪些表達式返回值為'true'?()A.s1 = = s2;B.s2 = = s3;C.m = = s1;D.s1.equals(m) ???????????? 24、哪個類可用于處理 Unicode? A.InputStreamReader B.BufferedReader C.Writer D.PipedInputStream 25、已知如下說明: TextArea ta = new TextArea(”Hello“, 5, 5);請問哪個語句是正確的?()A.The maximum number of characters in a line is 5.B.The displayed height is 5 lines otherwise constrain.C.The displayed string can use multiple fonts.D.The displayed strings are editable.26、當 Frame 改變大小時,放在其中的按鈕大小不變,則使用如下哪個 layout?()A.FlowLayout B.CardLayout C.North and South of BorderLayout D.East and West of BorderLayout E.GridLayout 27、已知如下的命令執行 java MyTest a b c 請問哪個語句是正確的?()A.args[0] = ”MyTest a b c“ B.args[0] = ”MyTest“ C.args[0] = ”a“ D.args[1]= ”b“ 28、下面哪個語句是創建數組的正確語句?()A.float f[][] = new float[6][6];B.float []f[] = new float[6][6];C.float f[][] = new float[][6];D.float [][]f = new float[6][6];E.float [][]f = new float[6][]; 29、下面敘述那些是正確的?()A:java中的集合類(如Vector)可以用來存儲任何類型的對象,且大小可以自動調整。但需要事先知道所存儲對象的類型,才能正常使用。 B:在java中,我們可以用違例(Exception)來拋出一些并非錯誤的消息,但這樣比直接從函數返回一個結果要更大的系統開銷。C:java接口包含函數聲明和變量聲明。 D:java中,子類不可以訪問父類的私有成員和受保護的成員。30、以下關于數據庫范式的描述,哪些是錯誤的() A.如果把多個數據項用一個大的 String 表示為一個字段,則不滿足第一范式 B.滿足數據庫范式使得數據庫的效率更高 C.如果滿足更高的范式,則必須首先滿足低級別的范式 D.數據庫第二范式要求把表中與所有鍵沒有直接關系的數據全部拆分到其他表中 31、在Hibernate中, 32、以下程序代碼對Customer的name屬性修改了兩次: tx = session.beginTransaction();Customer customer=(Customer)session.load(Customer.class, new Long(1));customer.setName(”Jack“);customer.setName(”Mike“);tx.commit();執行以上程序,Hibernate需要向數據庫提交幾條update語句?()A.0 B.1 C.2 D.3 33、假設對Customer類的orders集合采用延遲檢索策略,編譯或運行以下程序,會出現什么情況?() Session session=sessionFactory.openSession();tx = session.beginTransaction();Customer customer=(Customer)session.get(Customer.class,new Long(1));tx.commit();session.close();Iterator orderIterator=customer.getOrders().iterator();A.編譯出錯 B.編譯通過,并正常運行 C.編譯通過,但運行時拋出異常 34、設棧最大長度為 3,入棧序列為 1,2,3,4,5,6,則不可能得出棧序列是() A.1,2,3,4,5,6 B.2,1,3,4,5,6 C.3,4,2,1,5,6 D.4,3,2,1,5,6 35、在 UML 方法中,使用多種類型的圖形來幫助進行設計,請問一下那些圖形不是 UML 的圖形類型() A.類圖 B.實體關系圖 C.序列圖 D.活動圖 二、問答題 1、閱讀下面的代碼 interface Playable { void play();} interface Bounceable { void play();} interface Rollable extends Playable, Bounceable { Ball ball = new Ball(”PingPang“);} class Ball implements Rollable { private String name;public String getName(){ return name;} public Ball(String name){ this.name = name;} public void play(){ ball = new Ball(”Football“);System.out.println(ball.getName());} } 上面代碼是否有錯,如果有錯,錯誤在何處? 2、詳細解釋下面的語句: Class.class.getClass()Class與class都繼承自Object,class實體來代表java運行時的class和interface等等,Class.class就是得到或者生成這個Class類的Class Object; 而.getClass()本就是返回一個類對應的Class Object,所以Class.class.getClass()最后還是返回Class Object 3、解釋一下什么是MVC,IOC,AOP,ORM,JNDI,,Hibernate,SSO、Portal? 4、什么是EJB?EJB和JAVA BEAN有何區別? 5、現有Mysql數據庫,寫Spring + Hibernate的配置文件 數據IP:127.0.0.1 數據庫:bdtc 用戶名:root 密碼:mysql 6、請簡要描述一下J2EE應用中的class loader的層次結構? 7、編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,應該輸出為“我ABC”而不是“我ABC+漢的半個”。class SplitString{ private String str = ”“;//字符串 private int copyNum = 0;//要復制的字節數 private String arrStr[];//存放將字符串拆分成的字符數組 private int cutNum = 0;//已截取的字節數 private int cc = 0;//str中的中文字符數 public SplitString(String str,int copyNum){ this.str = str;this.copyNum = copyNum;} public String CopyStr(){ arrStr = str.split(”“);//將傳的字符串拆分為字符數組 str = ”“;// 清空,用于存放已截取的字符 for(int i = 0;i < arrStr.length;i++){ if(arrStr[i].getBytes().length == 1){ // 非漢字 cutNum = cutNum + 1;str = str + arrStr[i];} else if(arrStr[i].getBytes().length == 2){ //漢字 cc = cc + 1;cutNum = cutNum + 2;str = str + arrStr[i];} if(cutNum >= copyNum)break;//已截取的字符數大于或等于要截取的字符數 } if(cutNum > copyNum){ //已截取的字符數大于要截取的字符數 return str.substring(0, copyNum-cc);} else { return str;} } public static void main(String args[]){ SplitString cp = new SplitString(”as論者afs為什么",9);System.out.println(cp.CopyStr());} } 8、XML 的解析技術有哪些?區別是什么?你在項目中用到了xml技術的哪些方面?如何實現的? DOM,SAX,STAX等 DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機訪問 SAX:不現于DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問 STAX:Streaming API for XML(StAX) 9、寫一段代碼,實現銀行轉帳功能: 接口定義如下: Public interface ITransfer{ /** * 銀行內部轉帳,從轉出帳號中扣除轉帳金額,給轉入帳號增加轉帳金額,需要保證以上兩個操作 * 要么同時成功,要么同時失敗 * fromAccountId 轉出帳號 * outAccountId 轉入帳號 * amount 轉帳金額 **/ Public void transferInner(String fromAccountId,String outAccountId, BigDecimal amount);/** * 外部轉帳-轉出,從轉出帳號中扣除轉帳金額 * fromAccountId 轉出帳號 * amount 轉帳金額 **/ Public void transferOut(String fromAccountId,BigDecimal amount);/** * 外部轉帳-轉入,給轉入帳號增加轉帳金額 * toAccountId 轉入帳號 * amount 轉帳金額 Public void transerIn(String toAccountId, BigDecimal amount);} 請編寫你的實現類,來實現上述接口 JAVA筆試題 ? 軟件開發工程師(JAVA)筆試題 請在90分鐘以內做答 答案請寫在答題紙上 一、選擇題 1、下面哪項是不合法的標識符:(c e)A.$persons B.TwoUsers C.*point D._endline E.final 2、下列運算符合法的是(a) A.&& B.<> C.if D.:= 3、下面描述中哪兩項相等:(bg)[選擇兩項] A.<%= YoshiBean.size%> B.<%= YoshiBean.getSize()%> C.<%= YoshiBean.getProperty(“size”)%> D. 4、設float x = 1,y = 2,z = 3,則表達式 y+=z--/++x的值是:(a)A.3.5 B.3 C.4 D.5 A.equals()方法判定引用值是否指向同一對象 B.==操作符判定兩個不同的對象的內容和類型是否一致 C.equal()方法只有在兩個對象的內容一致時返回true D.類File重寫方法equals()在兩個不同的對象的內容和類型一致時返回true 6、如果一個對象僅僅聲明實現了cloneable接口,但是不聲明clone方法,外部能夠調用其clone方法嗎?(b)A.能 B.不能 C.不確定 7、下列說法錯誤的有(bd) A. 能被java.exe成功運行的java class文件必須有main()方法 B. J2SDK就是Java API C. Appletviewer.exe可利用jar選項運行.jar文件 D. 能被Appletviewer成功運行的java class文件必須有main()方法 8、下列正確的有(acd) A. call by value不會改變實際參數的數值 B. call by reference能改變實際參數的參考地址 C. call by reference不能改變實際參數的參考地址 D. call by reference能改變實際參數的內容 9、下列說法錯誤的有(bcd) A. 數組是一種對象 B. 數組屬于一種原生類 C. int number=[]={31,23,33,43,35,63} 5、下面的哪些敘述為真:(d) D. 數組的大小可以任意改變 10、不能用來修飾interface的有(ad) JAVA筆試題 A.private B.public C.protected D.static 11、關于Float,下列說法正確的是(a) A.Float是一個類 B.Float在java.lang包中 C.Float a=1.0是正確的賦值方法 D.Float a= new Float(1.0)是正確的賦值方法 12、下列哪種說法是正確的(d) A. 實例方法可直接調用超類的實例方法 B. 實例方法可直接調用超類的類方法 C. 實例方法可直接調用其他類的實例方法 D. 實例方法可直接調用本類的類方法 13、下列說法錯誤的有(c) A.在類方法中可用this來調用本類的類方法 B.在類方法中調用本類的類方法時可直接調用 C.在類方法中只能調用本類中的類方法 D.在類方法中絕對不能調用實例方法 14、下面說法哪些是正確的? bd A.Applet可以訪問本地文件 B.對static方法的調用不需要類實例 C.socket類在java.lang中 D.127.0.0.1地址代表本機 1.public class Test1 { 2.public float aMethod(float a, float b)throws 3.IOException { } 4.} 5.public class Test2 extends Test1 { 6.//Line6 7.} 將以下(ac)方法插入行6是不合法的。 A.float aMethod(float a, float b){} B.public int aMethod(int a, int b)throws Exception {} C.public float aMethod(float P, float q){} D.public int aMethod(int a, int b)throws IOException {} 16、關于以下程序段,正確的說法是:(b) 1.String s1 = “abc” + “def”;2.String s2 = new String(s1);3.if(s1.equals(s2))4.System.out.println(“.equals()succeeded”);5.if(s1 == s2)6.System.out.println(“== succeeded”);A.行4與行6都將執行 B.行4執行,行6不執行 ?? 15、類Test1、Test2定義如下: C.行6執行,行4不執行 D.行 4、行6都不執行 JAVA筆試題 17、下面程序的執行結果為:(a) 1.public class Test { 2.static Boolean foo(char c){ 3.System.out.println(c);4.return true;5.} 6.public static void main(String[] args){ 7.int i = 0;8.for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’)){ 9.i++;10.foo(‘D’);11.} 12.} 13.} A.ABDCBDCB B.ABCDABCD C.Compilation fails C.An exception is thrown at runtime 18、閱讀下面的程序 1.public class Outer { 2.public void someOuterMethod(){ 3.//Line3 4.} 5.public class Inner(){} 6.public static void main(String[] args){ 7.Outer o = new Outer();8.//Line8 9.} 10.} Which instantiates is an instance of Inner?(c) A.new Inner();// At line3 B.new Inner();// At line 8 C.new o.Inner();// At line 8 C.new Outer.inner();// At line 8 19、選出能正確賦值的: public class TestA { private int a;return m;public int change(int m){ } } public class TestB extend TestA{ public int b;public static void main(){ TestA aa = new TestA();int k; TestB bb = new TestB(); } } 在Line13處可以正確賦值的有:(d)// Line 13 JAVA筆試題 A.k= m;B.k=b;C.k=aa.a;D.k=bb.change(30);E.k=bb.a 20、已知如下代碼: switch(m){ case 0: System.out.println(“Condition 0”);case 1: System.out.println(“Condition 1”);case 2: System.out.println(“Condition 2”);case 3: System.out.println(“Condition 3”);break;default: System.out.println(“Other Condition”);} 當 m 的值為什么時輸出 “Condition 2”?(abc)A.0 B.1 C.2 D.3 E.4 F.None 21、給出程序段 public class Parent { public int addValue(int a,int b){ int s;s=a+b;return s;} } class Child extends Parent{} 可以加在Child類的方法有:(cd)A.int addValue(int a,int b){} B.public void addValue(int a,int b){} C.public int addValue(int a){} D.public int addValue(int a,int b){} 22、下述哪些說法是正確的?(d)A.實例變量是類的成員變量 B.實例變量是用static關鍵字聲明的 C.方法變量在方法執行時創建 D.方法變量在使用之前必須初始化 23、對于下列代碼: public class Sample{ long length; public Sample(long l){ length = l;} public static void main(String arg[]){ Sample s1, s2, s3; s1 = new Sample(21L); s2 = new Sample(21L); s3 = s2; long m = 21L; } } 下列哪些表達式返回值為'true'?(d) JAVA筆試題 A.s1 = = s2;B.s2 = = s3;C.m = = s1;D.s1.equals(m) 26、當 Frame 改變大小時,放在其中的按鈕大小不變,則使用如下哪個 layout?(e)A.FlowLayout B.CardLayout C.North and South of BorderLayout D.East and West of BorderLayout E.GridLayout 27、已知如下的命令執行 java MyTest a b c 請問哪個語句是正確的?(cd)A.args[0] = “MyTest a b c” B.args[0] = “MyTest” C.args[0] = “a” D.args[1]= “b” 28、下面哪個語句是創建數組的正確語句?(ab)A.float f[][] = new float[6][6];B.float []f[] = new float[6][6];C.float f[][] = new float[][6];D.float [][]f = new float[6][6];E.float [][]f = new float[6][];30、以下關于數據庫范式的描述,哪些是錯誤的(c) A.如果把多個數據項用一個大的 String 表示為一個字段,則不滿足 private String name;public String getName(){ return name;} public Ball(String name){ this.name = name;} public void play(){ ball = new Ball(“Football”); JAVA筆試題 System.out.println(ball.getName());} } 上面代碼是否有錯,如果有錯,錯誤在何處? 紅處 2、詳細解釋下面的語句: Class.class.getClass()Class與class繼承自Object,class試題來代表java運行時的class和interface等等 Class.class就是得到或者生成這個Class類的Class Object 而getClass()本身就是返回一個類對應的Class Object,所以最后Class.class.getClass()最后還是返回Class Object 7、編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,應該輸出為“我ABC”而不是“我ABC+漢的半個”。 public static boolean isLetter(char c){ int k=0X80;return c/k==0?true:false;} public static int lengths(String strSrc){ if(strSrc==null){ return 0;} int len=0;char[] strChar=strSrc.toCharArray();for(int i=0;i JAVA筆試題 public static String subString(String origin,int len){ if(origin==null || origin.equals(“")|| len<1){ return ”“;} if(len>lengths(origin)){ return origin;} byte[] strByte=new byte[len];System.arraycopy(origin.getBytes(),0,strByte,0,len);int count=0;for(int i=0;i } public static void main(String[] args){ System.out.println(”“+ subString(”我ABC漢DEF",6));} 10、SQL問答題 表結構: 1、表名:g_cardapply 字段(字段名/類型/長度): g_applyno varchar 8: //申請單號(關鍵字)g_applydate bigint 8: //申請日期 g_state varchar 2: //申請狀態 2、表名:g_cardapplydetail 字段(字段名/類型/長度): g_applyno varchar 8: //申請單號(關鍵字)g_name varchar 30: //申請人姓名 g_idcard varchar 18: //申請人身份證號 g_state varchar 2: //申請狀態 其中,兩個表的關聯字為申請單號 題目: JAVA筆試題 1、查詢身份證號碼為***082的申請日期 2、查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數 3、將身份證號碼為***082的記錄在兩個表中的申請狀態均改為07 4、刪除g_cardapplydetail表中所有姓李的記錄 1、select g_applydate from g_cardapply a,g_cardapplydetail b where a.g_applyno=b.g_applyno and b.g_idcard=’***082’ 2、select g_idcard,count(g_applyno)from g_cardapplydetail group by g_idcard having count(g_applyno)>2 3、update g_cardapply a,g_cardapplydetail b set a.g_state=’07’,b.g_state=’07’ where a.g_applyno=b.applyno and b.g_idcard=’ ***082’ 4、delete from g_cardapplydetail where g_name like ‘李%’ Java軟件開發工程師筆試題 一、選擇題(25 x 2’ = 50’) 1、一個Java程序運行從上到下的環境次序是() A. 操作系統、Java程序、JRE/JVM、硬件 B. JRE/JVM、Java程序、硬件、操作系統 C. Java程序、JRE/JVM、操作系統、硬件 D. Java程序、操作系統、JRE/JVM、硬件 2、下面代碼中的第2行可以插入一行代碼()保證程序編譯通過。 1、public interface A{ 2、3、} A.void method();B.public void method();C.static void method();D.private void method();E.protected void method(); 3、關于異常下列描述中,錯誤的是() A.異常機制可以用于流程控制 B.finally代碼段在發生異常時不一定必須執行 C.在catch代碼段中可以使用return語句來返回到異常拋出點 D.可以把catch到的異常對象再次拋出,使上層try—catch結構繼續處理該異常事件 4、關于被私有訪問控制符private修飾的成員變量,以下說法正確的是() A. 可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類 B. 可以被兩種類訪問和引用:該類本身、該類的所有子類 C. 只能被該類自身所訪問和修改 D. 只能被同一個包中的類訪問 5、某類Example的main()方法參數為args,當命令行中輸入Java Example cat時,args[0]的值為()。 A. cat B. Java C. example D. null 6、下面關于Thread類提供的現成控制方法的說法中,錯誤的是() A. 在線程A中執行現成B的join方法,則線程A等待直到線程B執行完成。B. 線程A通過調用iterrupt方法來中斷其阻塞狀態 C. 若線程A調用方法isAlive返回值為true,則說明A正在執行中 D. currentThread方法返回當前線程的引用 7、類Test1定義如下: 1.public class Test1{ 2. public float aMethod(float a,float b){ } 1/10 3.4.} 將以下哪種方法插入行3是不合法的。() A. public float aMethod(float a,float b,float c){ } B. public float aMethod(float c,float d){ } C. public int aMethod(int a,int b){ } D. private float aMethod(int a,int b,int c){ } 8、下面程序的輸出結果是()private static void foo(){ try { System.out.println(“try”);foo();} catch(Throwable e){ System.out.println(“catch”);foo();} finally { System.out.println(“finally”);foo();} } public static void main(String[] args){ foo();} A.執行一段時間后報棧溢出。B.會一直輸出“try”。 C.會一直輸出“try”和“finally”。D.會一直輸出“try”、“catch”和“finally” 9、下面的哪些程序片斷可能導致錯誤?()A.String s = “Gone with the wind”;String t = “ good ”;String k = s + t; B.String s = “Gone with the wind”;String t;t = s[3] + “one”; C.String s = “Gone with the wind”;String standard = s.toUpperCase(); D.String s = “home directory”;String t = s-“directory”; 10、已知如下代碼: 2/10 1: class Example{ 2: String str;3: public Example(){ 4: 5: } 6: public Example(String s){ 7: 8: } 9:} 10: class Demo extends Example{ 11: } 12: public class Test{ 13: public void f(){ 14: 15: 16: } } 哪句語句會導致錯誤?()A、line 3 B、line 6 C、line 10 D、line 14 E、line 15 11、下面的代碼中第4行創建的對象在什么時候符合垃圾回收的條件() 1、class Bar { } 2、class Test { 3、Bar doBar(){ 4、Bar b = new Bar(); 5、return b; 6、} 7、public static void main(String args[]){ 8、Test t = new Test(); 9、Bar newBar = t.doBar();10、11、12、newBar = new Bar();} } Example ex = new Example(“Good”);Demo d = new Demo(“Good”);str=s;str= “example”;A.程序運行第9行之后。B.程序運行第10行之后。C.doBar方法運行結束之后。D.main方法運行結束之后。 12、下列關于for循環和while循環的說法中哪個是正確的?() A. while循環能實現的操作,for循環也都能實現 B. while循環判斷條件一般是程序結果,for循環判斷條件一般是非程序結果 3/10 C. 兩種循環任何時候都可替換 D. 兩種循環結構中都必須有循環體,循環體不能為空 13、下述說法中,錯誤的是()A.Java中,方法的重載是指多個方法可以共享同一個名字 B.Java中,用abstract修飾的類稱為抽象類,它不能實例化 C.Java中,接口不包含成員變量和方法實現 D.Java中,構造方法可以有返回值 14、下面哪些是正確的() 11.class ClassA {} 22.ClassB p1 = new ClassB();23.ClassC p2 = new ClassC();24.ClassA p3 = new ClassB();25.ClassA p4 = new ClassC();12.class ClassB extends ClassA {} 13.class ClassC extends ClassA {} and: 21.ClassA p0 = new ClassA();A.p0 = p1; 15、以下代碼片段,正確的結果是:() 11.classA { 17.throw new IOException(); 18.} } 19.public static void main(String[] args){ 20.try { new B().process();} 21.catch(IOException e){ 22.System.out.println(”Exception”);} } 12.public void process(){ System.out.print(”A,”);} } 13.class B extends A { 15.super.process();A.Exception B.A,B,Exception C.Compilation fails because of an error in line 20.D.Compilation fails because of an error in line 14.E.A NullPointerException is thrown at runtime.16、用直接插入排序方法對下面四個序列進行排序(由小到大),元素比較次數最少的是()。 A. 94,32,40,90,80,46,21,69 B. 32,40,21,46,69,94,90,80 C. 21,32,46,40,80,69,90,94 D. 90,69,80,46,21,32,94,40 17、設棧最大長度為3,入棧順序為1,2,3,4,5,6,則不可能的出棧序列是() A.1,2,3,4,5,6 B.2,1,3,4,5,6 C.3,4,2,1,5,6 D.4,3,2,1,5,6 18、設有98個已排序列元素,采用二分法查找時,最大比較次數是() A.49 B.15 C.20 D.7 4/10 14.public void process()throws IOException { 16.System.out.print(”B,”);B.p1 =p2; C.p2 = p4; F.p2 =(ClassC)p4;D.p2 =(ClassC)p1;E.p1 =(ClassB)p3; 19、若一棵二叉樹具有10個度為2的結點,5個度為1的結點,則度為0的結點個數是() A.9 B.11 C.15 D.不確定 20、以下與數據的存儲結構無關的術語是()。 A.循環隊列 B.鏈表 C.哈希表 D.棧 21、設數組A[10?100,20?100]以行優先的方式順序存儲,每個元素占4個字節,且已知A[10,20]的地址為 1000,則A[50,90]的地址是() A.13240 B.14250 C.24220 D.14240 22、鏈表不具有的特點是() A.插入、刪除不需要移動元素 B.可隨機訪問任一元素 C.不必事先估計存儲空間 D.所需空間與線性長度成正比 23、下面關于線性表的敘述中,錯誤的是哪一個?() A.線性表采用順序存儲,必須占用一片連續的存儲單元。B.線性表采用順序存儲,便于進行插入和刪除操作。C.線性表采用鏈接存儲,不必占用一片連續的存儲單元。D.線性表采用鏈接存儲,便于插入和刪除操作。 24、若一個棧的輸入序列為1,2,3,?,n,輸出序列的第一個元素是i,則第j個輸出元素是()。A.i-j-1 B.i-j C.j-i+1 D.不確定的 25、下列說法不正確的是()。 A.圖的遍歷是從給定的源點出發每一個頂點僅被訪問一次 B.圖的深度遍歷不適用于有向圖 C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷 D.圖的深度遍歷是一個遞歸過程 二、程序改錯(5 * 2’ = 10’)1.----public class Unbelievable { static Integer i;public static void main(String[] args){ } } if(i == 42)System.out.println(“Unbelievable”);2.—————————————————————————————————— class Animal { public String noise(){ 5/10 龍通科技有限公司筆試題 } class Dog extends Animal { } class Cat extends Animal { } public class Test { } public static void main(String[] args){ } Animal animal = new Dog();Cat cat =(Cat)animal;cat.noise();public String noise(){ } return “meow”;public String noise(){ } return “bark”;} return “peep”;3.—————————————————————————————————————— abstract class Something { } private abstract String doSomething();4.—————————————————————————————————————— public class Something { } class Other { } public int i;public static void main(String[] args){ } public void addOne(final Other o){ } o.i++;Other o = new Other();new Something().addOne(o);5.—————————————————————————————————————— class Something { final int i;public void doSomething(){ System.out.println(“i = ” + i);6 龍通科技有限公司筆試題 } } 三、程序閱讀題(每空2’,共 40’) 1、閱讀以下java代碼,寫出運行結果 class StaticTest { } 2、編寫將一維數組a[]中互不相同的數按從小到大順序重新存于一維數組a[]的程序。 class A{ public static void main(String[] args){ } for(j=0;j } System.out.prinln(a[j]);int a[]={15,7,15,6,4,3,4,6,7};int i,j,k,low,high,mid,t;for(i=k=1;i static int x=1;int y;StaticTest(){ } public static void main(String args[ ]){ StaticTest st=new StaticTest();System.out.println(“x=” + x);System.out.println(“st.y=” + st.y);st=new StaticTest();System.out.println(“st.y=” + st.y); } static { x++;} y++; 龍通科技有限公司筆試題 } 3、請用JAVA編寫如下程序:此程序處理一個由0和非0數字成員組成的數組(長度自定),例如0 0 1 2 0 1 0 0 0 1 0 0 0 0 0 2 0 7 8 9 0 0 1 2 3 4,把數組中所有連續兩個以上的0去掉,將結果存入一個新數組。如上例處理后結果為,1 2 0 1 1 2 0 7 8 9 1 2 3 4。public static void main(String[] args){ int[] srcArray = {0,0,1,2,0,1,0,0,0,1,0,0,0,0,0,2,0,7,8,9,0,0,1,2,3,4};int[] destArray = new int[50];int i=0,j=0,count=0;for(i=0;i } } for(i=0;i public static void main(String[] args){ } public static int Keeper(int peo, int n){ int k = 0;int peo;System.out.println(“請輸入人數:”);Scanner inp = new Scanner(System.in);peo = inp.nextInt();int k = Keeper(peo, 3);System.out.println(“最后留下的是 ” + k + “ 號!”); 4、有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,再從他的下一 8 龍通科技有限公司筆試題 int[] array = new int[peo];for(int i = 1;i < peo;i++){ } for(k = 0;k < peo;k++){ } return k + 1;if(array[k] == 0){ } 4 ; ○int j = 1;while(j <= n){ } if(○1){ } if(j == n){ } j++;3 ; ○ ; ○j--; } } 5、在一個n×n的棋盤上,放置n個不能互相捕捉的國際象棋“皇后”的所有布局。以下是n皇后的算法,請完成填空部分: public class Queen { Queen(int d){ } // 放置皇后的方法 public void place(int row){ int i = 0;if(row == n){ 1 ; ○n = d;queenPos = new int[d];private int n;private int[] queenPos;private double num = 0;// 記錄共有多少種擺法 } else { 9 龍通科技有限公司筆試題 } // 判斷布局是否合法 private boolean legality(int list){ } // 測試方法 public static void main(String[] args){ }} System.out.println(“輸入個數n:”);Scanner in = new Scanner(System.in);int n = in.nextInt();try { } Queen q = new Queen(n);q.place(0);System.out.println(n + “*” + n + “時,” + “共有” + q.num + “種可能擺法?!?;System.out.println(“OK!”);e.printStackTrace();if(list == 0) } return true;return true;if(queenPos[i] == queenPos[list])3 ; ○for(int i = 0;i < list;i++){ } for(i = 0;i < n;i++){ } queenPos[row] = i;if(legality(row)); ○if(○4)return false;} catch(Exception e){ 10第三篇:Java軟件開發工程師筆試
第四篇:軟件開發工程師(JAVA)筆試題A
第五篇:Java軟件開發工程師筆試題