2010年上半年軟考程序員考試知識點及試題分析

字號:

上午題側(cè)重計算機硬件基礎(chǔ)知識、程序語言基礎(chǔ)知識、數(shù)據(jù)結(jié)構(gòu)與算法、軟件開發(fā)與運行維護基礎(chǔ)知識的數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識的考查,這是考生應(yīng)具備的程序員的基本能力。計算機英語是固定考點,計算機數(shù)學(xué)在近年考試中基本穩(wěn)定。
    2.程序設(shè)計基礎(chǔ)
    本次考試試題一至試題四為必答題,考查了程序流程圖和C語言;試題五至試題六為二選一,要求考生掌握一門面向?qū)ο蟮恼Z言。
    試題一 程序流程圖
    該題要求考生根據(jù)算法描述,對程序流程圖進行填充。程序流程圖所描述的是一個模式匹配的算法,題目的說明部分對該算法的實現(xiàn)進行了詳細(xì)的說明,所以解題時,需要充分的理解說明部分,然后以對號入座的形式分析每一個程序分支具備什么樣的功能,最后填空。該題第一分支判斷是否重疊,第二個分支判斷是否為字串,第三個分支判斷是否找出了所有子串。
    試題二 C語言程序設(shè)計
    本題通過找錯來考查C語言的語法知識,要求考生不僅要找出錯誤,還需給出解決方案。問題一考查考生對字符數(shù)組、字符型指針的基本操作和字符串函數(shù)的的運用,較簡單;問題二通過函數(shù)來考查程序結(jié)構(gòu)對程序結(jié)果的影響。該函數(shù)體使用了順序、分支和直到型循環(huán)結(jié)構(gòu)。首先程序循環(huán)體中的輸入語句沒有給a[k]取地址,導(dǎo)致數(shù)組元素a的值錯誤;a[k]輸入后,k自加,然后分支判斷是否輸入了n個整數(shù),循環(huán)條件判斷a[k]是否等于0。由于先執(zhí)行k的自加,再判斷循環(huán)條件a[k],此時的a[k]并沒有被賦值,因此此時循環(huán)出口條件判斷就出現(xiàn)了錯誤;再則,若輸入的a[k]為0,k自加后判斷分支條件和循環(huán)出口條件,會導(dǎo)致程序?qū)斎氲恼麛?shù)0也計為有效整數(shù),這也是不符合題意的。著手修改時需注意不能增加和刪除代碼行,這也是題目考查的重點!只要將while條件中的k改成k-1,返回函數(shù)值k改成一個條件表達(dá)式a[k-1]==0?k-1:k即可完成該函數(shù)的功能。
    試題三 C語言程序設(shè)計
    
2010年上半年軟考程序員考試知識點及試題分析

    本題中,考查的是C語言的一些基本運算與簡單算法,考查形式是語句補充。主要包括的知識點有:模除、整除、自加、自減、邏輯運算,數(shù)組操作,分支、循環(huán)結(jié)構(gòu)。這要求考生對C語言知識要有一定功底。本題相對于上題來說,因為程序中有陷井,稍不注意,就會大意丟分,所以難度有所增大。試題中的第二個for循環(huán)的功能是計算前12位各位與1或3的乘積之和,題目中說的是前12位數(shù)字中奇數(shù)位乘1,偶數(shù)位乘3,但是在程序中,ISBN號的前12位的奇數(shù)位是放在數(shù)組tarr的偶數(shù)下標(biāo)中,ISBN號的前12位的偶數(shù)位是放在數(shù)組tarr的奇數(shù)下標(biāo)中,這就是個陷井!因此,在if 語句判斷奇、偶位時,(3)、(4)空容易填反而失分。
    試題四 C語言程序設(shè)計
    本題中,考查的是C語言的程序執(zhí)行與函數(shù)調(diào)用知識。主要包括的知識點有:數(shù)組,指針,內(nèi)存空間分配,參數(shù)的值傳遞方式與地址傳遞方式、字符串函數(shù)、二分查找。程序的模塊化可增強程序的閱讀性,也方便檢測,C語言通過使用函數(shù)來實現(xiàn)這一目的。所以C語言函數(shù)是重點。
    試題五~試題六 C++ /JAVA程序設(shè)計(試題五、六選做一題)
    這兩個試題是二選一,考查的知識點是一樣的,只是實現(xiàn)的語言不同而已。本題的程序結(jié)構(gòu)簡單,要求考生程序填空和寫出程序結(jié)果,,只要考生掌握了面向?qū)ο蟪绦蛟O(shè)計的基本概念和語法知識,該題就是送分題。