『壹』 據說百分之99的人都會算錯,這道題可以算出你有沒有生意頭腦
這也能算錯?賠了110塊錢唄!查看原帖>>
『貳』 程序員題目
程序員考試沒有上機題的!
程序員考試分為上、下午兩場,各75分,均為筆答內容。一般如果上、下午考試都能達到45分以上基本就能通過了。其中上午試題以選擇形式給出,每題目一分。下午部分都是綜合題,共要求完成五道,以簡答和填空為主,每題15分。
上午題目形式大體分為兩大類:一類是計算機科學基礎知識和計算機系統知識;另一類是數據結構、軟體工程等相關內容。主要考察考生對基礎知識掌握程度。下午考題方面,題目形式相對比較靈活,以C語言為主,但新大綱後,也允許有java、VB等語言,所以給熟悉這些語言的考生帶來了方便。
將2002年以來程序員考試題歸類對比,由賽迪網校的經驗來分析程序員考試,表1是2002年以來上午考試試題分類統計表。
表1 2002年以來程序員考試上午考試題目分類統計表
知識點 2002 2003 2004(上半年) 2004(下半年) 2005(上半年)
計算機系統原理 16 19 16 13 12
操作系統 5 5 10 7 6
資料庫 7 5 5 5 5
多媒體技術 4 2 3 3 2
網路技術 5 5 11 5 6
程序語言基礎 8 4 5 3 6
軟體工程基礎 12 12 7 7 8
數據結構 6 7 13 10 8
標准化與知識產權 3 6 3 3 3
英語 10 10 10 10 10
其他(日常應用等)
*有效的考試復習方法
從表1中可以看出,知識點的分布比較廣,涵蓋了計算機學科的各個方面,因此對於初入計算機軟體行業的人員來說,考試內容覆蓋面廣是其首先遇到的難題。要在短時間內掌握所有這些知識點是很困難的,因此需要考生要有一個有效的復習方法。
在復習時,考生要根據自己的具體情況,制定一套完整的復習計劃,不必拘泥於某種特定的方法。在看參考書時,不一定非要按順序讀,可以根據自己對知識的掌握情況來有選擇地看。期間通過斟酌大綱知識點,弄清考試范圍,而且要通過大綱中給出的關鍵字來判斷復習重點,並在考試指定教材上做好標記,以便以後查閱學習。對知識有過梳理之後,建議從復習題入手,把每道題都做一遍,不要漏掉任何一個細節,考察自己對知識的掌握程度。
在考試中,無論上午還是下午的試題中,都會有程序設計的題目,要准備這樣的題目,平常最好上機調試一下,這比僅僅看書效果好多了。如果程序看不懂,可以在其前後加幾條Printf語句,就可以看出這幾條語句的結果。程序弄明白以後,還可以對程序進行測試和修改,檢查一下結果是不是自己所要得到的。對於調試過程中的出錯信息,一定不要放過,因為這些很有可能就是考點。
*程序員考試難點的把握
上午試題知識面覆蓋廣,多數試題的相對難度不大,基礎知識、常識性問題所佔的比重比較大。
從歷年程序員考試試題中把握考試重點是非常有效的方法,計算機系統基礎知識和程序語言基礎知識方面的內容呈增加趨勢;操作系統基礎知識和網路基礎知識內容呈相對較少趨勢。歸類對比最近幾年程序員考試上午考試的75個小題中發現,計算機系統原理、操作系統、數據結構等是重點內容,佔有很大的份量。其中每一類又都具有非常多的知識點,因此更深入的挖掘將會有助於有效得分。計算機系統原理考察的范圍集中在碼值運算、定址問題、硬體結構和Cache的作用上,主要是記憶知識點,只有定址、Cache演算法等需要較深入理解。數據結構歷來占據相當大的比重,這是由程序員的工作性質所決定的,內容涵蓋鏈表、矩陣、隊列、字元串、樹等各個方面,其中,鏈表、二叉樹等考察的內容較多。資料庫只考一些基礎概念,其中屬於理解性的以ER圖為重點,多媒體部分考察的基本上是常識。在分析各個計算機分支內容尤其比重較大的部分時,可以從重點、難點、高頻率出現題目等幾個方面來分析。
以數據結構為例,其內容知識點非常多,而且難點也多,為了有效復習,通過仔細分析考題,可以歸納出數據結構課程在考試中的如下幾個關鍵點:難點、重點、常涉及到的出題范圍等,如下所示。
重點:如大綱中所指示,其中以二叉樹及其性質、遍歷、鏈表尤為重要。
難點:圖的存儲(矩陣、鄰接表)與操作遍歷、演算法效率的計算(時間、空間復雜度)、常見的六種排序演算法、散列表的思想以及其解決沖突的方法。
考試題型一般分布在:二維數組及其存儲、鏈表的存儲/操作(插入、刪除、移動)、二叉樹的定義及其性質(完全、滿)、節點與深度的關系等、圖的概念(有向、無向)及其性質。
考試出現頻率較高的內容:鏈表操作、隊和棧的性質及其對比、二叉樹的遍歷/節點計算、遞歸演算法的設計(退出條件等)。
在對每一部分作了透徹的分析後,要理清知識點的輕重緩急,了解必考、備考知識點,增強有效得分的機會,是有效復習、有目的復習的手段。
*來自程序設計題目的挑戰
軟體水平考試真正有難度的地方是下午部分的考試。因為上午考基礎知識,記憶性知識偏多。下午部分考程序設計,題型比較靈活,難度也比較大。對於C語言的使用要求比較熟悉,而且新加了對於Java、VB等語言的考察。考試內容包括數據結構實現、演算法求解之類的問題。
程序框圖或偽代碼是必考題;開始出現C++、Java題目,而且除了C之外,還必須掌握VB、C++、Java 三種語言中的一種,否則無法獲得高分;整個下午的考試題目比較注重於應用,注重解決實際問題的能力。
因此上機編程實踐是非常必要的,實踐過程中,會發現隱藏在平常僅僅通過看書發現不了的細節問題,比如語法寫法、函數名稱等。在考試過程中,要注意以下幾點:
(1)不要過分沉迷於題中某一段,要全局看問題,整體把握。
(2)做下午的試題往往有做不下去的情況,這時要仔細重看題目條件,也許會有所感悟。
(3)做完題檢查時,應重新審題,而不是只檢查答案,程序與題目是否相對應。
(4)審題時,多利用程序注釋來幫助理解題意。
其次是在考試過程中,多注意積累一些技巧性的問題,例如當覺得某空白處根本不需要填什麼,整個程序似乎已完整,應考慮是否是填變數的初始化,從歷次考試看,幾乎每年都有。
*總結
無論程序員考試難與易,都需要付出才有可能成功,不懈努力,付之行動,就會有回報。而努力背後,需要掌握學習的方法。
(1)掌握好的學習方法,合理安排時間。
(2)基礎理論要吃透,對於程序設計,一定要多動手,多實踐。
(3)一定要找出以前的試卷,進行分析了解,歷年的試題是最好的復習題。
到了考前總復習的時候,需要避重就輕,把那些還是搞不懂的東西丟開,不要去理它,把會的東西再搞清楚點,把能得的分要多得,爭取拿全分。
廣泛學習,了解計算機各方面知識,把握重點,分析歷史考題,相信你都能順利通過程序員考試。
如果覺得我的回答還滿意,就把獎勵分給我吧!
『叄』 程序員智力題
1. 32號2. 該月第一天是星期二,最後一天是星期三3. 4 3 8 9 5 1 2 7 64.. 這道有點矛盾,有一天三家都營業,又說六天中都有一家休息,糾結!或者是我理解能力有限,樓主能提示一下嗎
『肆』 程序員面試經常被提到的問題
java 程序員常用面試題- -
Java程序員面試三十二問
Java程序員面試三十二問
作者:佚名 來自:未知
第一,談談final, finally, finalize的區別。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以
implements(實現)interface(介面)?
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
第四,&和&&的區別。
第五,HashMap和Hashtable的區別。
第六,Collection 和 Collections的區別。
第七,什麼時候用assert.
第八,GC是什麼? 為什麼要有GC?
第九,String s = new String("xyz");創建了幾個String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
第十二,sleep() 和 wait() 有什麼區別?
第十三,Java有沒有goto?
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
第十六,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()?
它們有何區別?
第十七,給我一個你最常見到的runtime exception.
第十八,error和exception有什麼區別?
第十九,List, Set, Map是否繼承自Collection介面?
第二十,abstract class和interface有什麼區別?
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是
synchronized?
第二十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體
類(concrete class)?
第二十三,啟動一個線程是用run()還是start()?
第二十四,構造器Constructor是否可被override?
第二十五,是否可以繼承String類?
第二十六,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它
方法?
第二十七,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行
,什麼時候被執行,在return前還是後?
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對
?
第三十,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後
的結果,那麼這里到底是值傳遞還是引用傳遞?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,編程題: 寫一個Singleton出來。
以下是答案
第一,談談final, finally, finalize的區別。
final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父
類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,
可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能
讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally?再異常處理時提供 finally
塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入
finally 塊(如果有的話)。
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去
之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是
在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執
行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以
implements(實現)interface(介面)?
匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面
,由另一個內部類實現。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套
類最大的不同就在於是否有指向外部的引用上。具體可見http:
//www.frontfree.net/articles/services/view.asp?id=704&page=1
註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2
不能從一個static內部類的一個對象訪問一個外部類對象
第四,&和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
第五,HashMap和Hashtable的區別。
都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步
的。
第六,Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面。
第七,什麼時候用assert。
斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為
false,那麼系統會報告一個 AssertionError。它用於調試目的:
assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式。這個值用於生成顯示更多調試信息的 String 消息。
斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:
javac -source 1.4 Test.java
要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。
要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。
要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。
可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的參數。
不過,斷言不應該用於驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參
數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任
何方式改變程序的狀態。
第八,GC是什麼? 為什麼要有GC? (基礎)。
GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收
集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String("xyz");創建了幾個String Object?
兩個對象,一個是"xyx",一個是指向"xyx"的引用對象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為
s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。
第十二,sleep() 和 wait() 有什麼區別? 搞線程的最愛
sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢復執行。
這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)"醒來"的線程具有更
高的優先順序,(b)正在運行的線程因為其它原因而阻塞。
wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對
象進入等待狀態,直到被喚醒或等待時間到。
第十三,Java有沒有goto?
Goto?java中的保留字,現在沒有在java中使用。
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
數組沒有length()這個方法,有length的屬性。
String有有length()這個方法。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類
之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其
父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子
類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或
有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改
變返回值的類型。
第十六,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它
們有何區別?
Set里的元素是不能重復的,那麼用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相
等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的
內容和類型相配的話,返回真值。
第十七,給我一個你最常見到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException,
BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,
CMMException, , DOMException, EmptyStackException,
IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,
IllegalStateException, ImagingOpException, IndexOutOfBoundsException,
MissingResourceException, NegativeArraySizeException, NoSuchElementException,
NullPointerException, ProfileDataException, ProviderException, RasterFormatException,
SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException,
UnsupportedOperationException
第十八,error和exception有什麼區別?
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能
處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
第十九,List, Set, Map是否繼承自Collection介面?
List,Set是
Map不是
第二十,abstract class和interface有什麼區別?
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基
本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而
可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象
靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代
之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的
介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數
。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即
將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。
由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類
型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是
synchronized?
都不能
第二十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類
(concrete class)?
介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類
必須有明確的構造函數。
第二十三,啟動一個線程是用run()還是start()?
啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味著它可以由
JVM調度並執行。這並不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。
第二十四,構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類?
String類是final類故不可以繼承。
第二十六,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它
方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
第二十七,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行
,什麼時候被執行,在return前還是後?
會執行,在return前執行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。
2 << 3
第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
第三十,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後
的結果,那麼這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數
的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int
、 short、 char 或者 byte。long,string 都不能作用於swtich。
第三十二,編程題: 寫一個Singleton出來。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變數,
在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個類,它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
第三十三 Hashtable和HashMap
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許
還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為
contains方法容易讓人引起誤解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,
不需要自己為它的方法實現同步,而HashMap就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。
『伍』 JAVA題,據說難倒了百分之九十九的程序員
public class List10
{
public static void main(String[] args)
{
// if(new Object(){{System.out.print("哈哈");}}.equals(""))
// if(System.out.append("哈哈") == null)
if(new Object(){{System.out.print("哈哈");}}.equals(""))
{
System.out.println("哈哈");
}else{
System.out.println("呵呵");
}
}
}
兩種方法 換成注釋掉的都行
『陸』 一道要命的程序員測試題~~急求解!!!
程序測試最多隻能找出80%的問題,所以40/80%+50/80%=108,最接近於100,故可估計程序中的錯誤總數是C,100個。
『柒』 難倒所有程序員的小學數學題,看你能解么
第一題,這後邊是迷惑人的,所以,從後邊的「這樣,」就可以不用看了~
解釋:房錢=25,服務生藏起2元,每人退還的1元*3,算術簡單吧?25+2+3=30,一塊也沒差~
第二題,
因為有個問題很簡單,就是蔥綠和蔥白賣不一樣的價錢,但是卻一樣重,這可不是折半算錢的,而應該是兩倍價錢賣,才對的。數學公式,設蔥綠的價格為x,蔥白的價格為y,x*50+y*50=100,則x+y=2,也就是說,如果折半賣,他們的價錢應該是原來賣的兩倍~
第三題,
用最笨的方法
第一天:7-(3-2)=6
第二天:6-(3-2)=5
第三天:5-(3-2)=4
第四天:4-(3-2)=3
第五天:3-3=0
第五天就出去了,因為它白天就到了,所以不用再到晚上下滑2米~
第四題
1塊=
10個桃
吃光就還有10個桃核,10=3+3+3+1,
換3個桃
,再吃掉=3
+1,
換1個桃
,在吃掉=1+1個桃核
最終可以吃掉10+3+1=14個桃
『捌』 求程序員--筆試面試題庫
ASP.Net程序員測試題
一、資料庫部分:
資料庫中有以下幾個表
Customers(客戶信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認值
Customer_ID 客戶編號 int(自動增長) N Y N 無
Customer_Name 客戶名稱 nvarchar(30) N N N 無
Procts(商品信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Procts _ID 客戶編號 int(自動增長) N Y N 無
Procts _Name 客戶名稱 nvarchar(100) N N N 無
Unit_Price 單價 decimal(7,2) N N N 無
Orders(訂單信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Order _ID 訂單編號 int(自動增長) N Y N 無
Order _Date 訂單日期 smalldatetime N N N DETDATEO
Customer_Price客戶編號 int N N Y 無
OrderDetails(訂單詳細內容)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Order _ID 訂單編號 int(自動增長)N Y Y 無
Proct _ID 商品編號 smalldatetime N Y Y 無
Proct_Quantity商品數量 int N N N 1
問題如下
1.Orders表Order_Date欄位的默認值GETDATEO是什麼意思?
2.查詢商品信息表中的商品總數量,各種商品平均單價。
3.查詢用戶名稱為「張三」,訂單日期為2005-8-30日的訂單總金額。
4.查詢商品名稱為「聯想電腦」的商品在2005-7-1日至2005-7-31之間每天的銷售明細(要求顯示日期、當日的銷售總量)。
二、C#語法題
1.C#中所有類的基類是什麼?
2.計算n+(n-1)+(n-2)+…+1(n=100)。
3.請閱讀以下代碼,並求出結果。
Int iResult=0;
Int iTemp=0;
for(int i=0;i+=2)
{
iResult+=i;
}
While(iTemp<3)
{
iResult-=iTemp;
iTemp++;
}
請問iResult的值為多少?
4.override與重載有什麼區別?
5.閱讀以下代碼,然後回答問題
Private int Division(int x,int y)
{
return x/y;
}
請問該函數被調用時是否可能會出現問題?如果有問題請修改該函數。
6.public class A
{
private string_value=「」;
public A(string value)
{
This._value=value;
}
}
Public class B:A
{
//想在構造類B的同時初始化類A中的_value欄位?
}
想在構造類B的同時初始化類A中的_value欄位,是否可以實現?如果可以實現,請補充類B的代碼。
7.public sealed class A
{
……
}
請問代碼中的sealed是什麼意思?
8.請問Session 和Application各在什麼場合下使用(最好舉例說明)
9.請問您在什麼情況下會用到虛方法?它與介面方法有什麼不同?
10.請列舉二個您用到過的設計模式?
11.請列舉一些ASP.Net中支持數據綁定的控制項,您經常使用哪些?
12.頁面上有一個input框的名字為txtPrice,請在提交前驗證該控制項中的內容(不能為空,必須是整數,用javascript驗證)。
13.請問重定向頁面有幾種方法?
你可以試著做做看,公司出的題應該都不一樣的,希望對你有所幫助!
『玖』 作為一個程序員,有哪些常用的演算法
常用的演算法有:遞推法、貪心法、列舉法、遞歸法、分治法和模擬法
原則:1. 扎實的基礎。數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握他們,很難寫出高水平的程序。據我的觀察,學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。
2. 豐富的想像力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。另外,多看科幻電影也是一個很好的途徑。
3. 最簡單的是最好的。這也許是所有科學都遵循的一條准則,如此復雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。
4. 不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,而且是那種極暴力的打鬥類游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。
5. 對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。
6. 多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。
7. 良好的編程風格。注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。
8. 韌性和毅力。這也許是"高手"和一般程序員最大的區別。A good programming is 99 weat and 1 ffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。
希望對你有幫助
『拾』 百99%的程序員都會算錯了題目有一塊比男生吃了5/9,女生吃了4/9男生比女生多出
應該是4塊5.