發布時間:2012-07-19 共1頁
1、程序員上午試題分析和備考建議
分析近幾年程序員上午試題的考試內容,其知識點和分值分布如表1所示。
表1 程序員上午試題考核內容分值分布情況
考核內容 |
分值 |
計算機應用 |
5~6 |
計算機系統基礎知識 |
8~10 |
信息安全知識 |
2 |
系統運行維護、性能與指標 |
2 |
標準化與知識產權 |
2 |
多媒體技術基礎知識 |
2 |
操作系統基礎知識 |
5~6 |
程序設計語言基礎知識 |
6~8 |
面向對象技術基礎知識 |
5 |
軟件工程基礎知識 |
6~8 |
數據結構和算法基礎知識 |
8~10 |
數據庫系統基礎知識 |
5~6 |
數學應用知識 |
3 |
網絡基礎知識 |
5 |
英語 |
5 |
顯然,在程序員上午科目的考題中,計算機應用、計算機系統、操作系統、程序設計語言、軟件工程和面向對象技術、數據結構與算法、數據庫系統基礎知識是重點,一般情況下,這些問題的分值比重為75%左右。由于上午試題考試形式的局限性,必然不會出現較多的應用設計類問題,因此考生應該在基本概念和相關計算問題上多下工夫。筆者推薦考生參照官方推薦的教材進行學習和復習,因為該教材基本涵蓋了所有上午試題內容(除了數學和英語)。
其中,計算機應用知識著重考核字處理和電子表格軟件的操作知識;計算機系統基礎知識主要涉及數據的表示和進制轉換、CPU的組成和工作原理、存儲部件的特點、總線和接口的概念和特點、校驗碼基礎知識;操作系統的重點內容為進程管理(同步互斥概念和PV操作)、存儲管理、磁盤管理、文件系統及操作方法;程序語言基礎主要包括程序翻譯的基本過程、程序語言類型和特點、常量、變量與數據類型、函數的參數傳遞以及流程控制的基本概念;軟件工程與面向對象基礎知識主要涵蓋開發模型和方法、軟件維護、軟件測試、結構化設計方法、類、對象、封裝、多態等基本概念;數據結構和算法的重點內容是棧和隊列的基本運算特點、字符串的子串概念和運算、數組的元素存儲、二叉樹的存儲和遍歷運算、圖的存儲方式和特點、二分查找的特點、二叉排序樹的定義和構造方法、哈希表的概念以及常用排序方法的特點;數據庫系統主要考核關系運算、主鍵和外鍵以及SQL語句的應用;網絡技術主要包括網絡協議、網絡設備、網絡參數設置(IP地址、子網掩碼)和網絡應用等。
考生應在熟練掌握基本概念的同時,結合應用場景(由基本常識和題目給出的描述給出)適當關注基本應用題型,以應對圍繞基本知識點作適當變形的考題。
2. 程序員下午試題分析和備考建議
程序員下午科目主要考查程序設計能力。從2008年開始,VB程序設計題目開始減少,2009年的題目中取消了對VB程序設計題目。目前的考核內容和分值分布情況如表2所示。
表2 程序員下午試題考核內容分值分布情況
題目編號 |
考核內容 |
分值 |
試題一 |
算法流程 |
15 |
試題二 |
C語言程序設計 |
15 |
試題三 |
C語言程序設計 |
15 |
試題四 |
C語言程序設計 |
15 |
試題五 |
C++程序設計 |
15 |
試題六 |
Java程序設計 |
15 |
試題一至試題四是必答題目,試題五和試題六中選答一題。
程序員下午試題著重考查考生的實踐和應用水平,要求考生具備一定的數學思維和邏輯推理能力。無論是完善算法流程還是編寫程序代碼,一般情況下,題目的說明部分都會給出一些算法思路和代碼邏輯的相關線索,考生應該充分利用這些信息解答問題。有時題目的說明部分較長,給考生造成該題目較難的印象,實際上,題干敘述較長的題目為解答問題提供了更充足的信息,這種題目的難度反而不會高。
近兩年,程序員下午考題的考核方式在保持傳統(完善程序代碼或算法步驟)的基礎上,有一些變化需要考生注意。
(1) C語言程序中常見錯誤的分析和改正
編程時出現錯誤是難免的,若經常進行上機實驗,這類考題應該不是難點。程序錯誤一般可分為語法錯誤和語義錯誤兩類,語法錯誤在編譯階段就能發現,出現這類錯誤時程序不能運行。常見的語法錯誤有引用了未定義的變量、缺少分號或括號等,語義錯誤比較多,例如未將變量正確初始化、運算結果溢出、數組下標越界、混淆了“=”和“==”、函數調用的參數類型不匹配等。
程序中的有些錯誤比較直接,對C語言的語法和語義規則有一定基礎的話,就能夠輕松解答,有些錯誤則比較隱晦,需要熟悉C語言的難點和關鍵點,但是分值一般不會太大。
(2) C語言的指針
指針是C語言中的一個難點,每次的考題中或多或少都有一些題目涉及它。前幾年的題目中,常以鏈表上的運算作為對指針的考核方式,因此,考生需要熟練掌握鏈表的定義、插入、刪除和查找操作,其關鍵點是指針變量的初始化和在鏈表結點間的移動處理。
在近兩年的考題中,對于指針的考核進一步深化,例如,關于指針常量和常量指針的概念、內存空間的申請和釋放、指針參數以及函數返回指針等,使用指針時常出現的內存泄漏、野指針引用等問題。這些問題需要考生作為專題進行概念上的梳理和應用實踐。
(3) C++、Java語言程序設計問題
考生需要在C++和Java中選擇一種語言進行面向對象程序設計的基本訓練。一般情況下,這兩個問題的題目背景相同。在程序員下午考題的算法流程和C程序設計部分,更注重考查處理邏輯,而在C++和Java程序部分,則主要考查語法知識,因此考生應注重了解C++和Java語言的語法規則。