參考答案及分析
一、選擇題
(1)D
解析: 算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
(2)C
解析: 鏈式存儲結(jié)構(gòu)克服了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。故鏈式存儲結(jié)構(gòu)下的線性表便于插入和刪除操作。
(3)C
解析: 數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計算機中的存儲表示形式。
(4)D
解析: 結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用goto語句,總的來說可使程序結(jié)構(gòu)良好、易讀、易理解、易維護。
(5)B
解析: 軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計和過程設(shè)計。其中結(jié)構(gòu)設(shè)計是定義軟件系統(tǒng)各主要部件之間的關(guān)系;數(shù)據(jù)設(shè)計是將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;接口設(shè)計是描述軟件內(nèi)部、軟件和操作系統(tǒng)之間及軟件與人之間如何通信;過程設(shè)計則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述。
(6)A
解析: 確認測試的任務(wù)是驗證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求;集成測試的主要目的是發(fā)現(xiàn)與接口有關(guān)的錯誤。
(7)A
解析: 數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。
(8)C
解析: 數(shù)據(jù)庫中的數(shù)據(jù)具有"集成"與"共享"的特點,亦即是數(shù)據(jù)庫集中了各種應(yīng)用的數(shù)據(jù),進行統(tǒng)一構(gòu)造與存儲,而使它們可以被不同應(yīng)用程序所使用,故選項C)正確。
(9)B
解析: E-R模型即實體-聯(lián)系模型,是將現(xiàn)實世界的要求轉(zhuǎn)化成實體、聯(lián)系、屬性等幾個基本概念,以及它們之間的兩種聯(lián)接關(guān)系。數(shù)據(jù)庫邏輯設(shè)計階段包括以下幾個過程:從E-R圖向關(guān)系模式轉(zhuǎn)換,邏輯模式規(guī)范化及調(diào)整、實現(xiàn)規(guī)范化和RDBMS,以及關(guān)系視圖設(shè)計。
(10)A
解析: 人工管理階段是在20世紀50年代中期以前出現(xiàn)的,數(shù)據(jù)不獨立,完全依賴于程序;文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級階段,數(shù)據(jù)獨立性差;數(shù)據(jù)庫系統(tǒng)具有高度的物理獨立性和一定的邏輯獨立性。
(11)B
解析: 數(shù)據(jù)封裝就是數(shù)據(jù)抽象;友元可以訪問類中的所有成員,是面向?qū)ο蟮囊粋重要特征,但是破壞了封裝性;重載和動態(tài)聯(lián)編都是面向?qū)ο蟮牧硪粋特點--多態(tài)性。
(12)D
解析: ++,--運算符不能用于常量表達式。
(13)B
解析: 表達式值的類型是由操作數(shù)的類型決定的,因為本題的兩個數(shù)都是int型的,所以得出的結(jié)果也為int型,即去掉小數(shù)點后的部分,只取商的整數(shù)部分。
(14)A
解析: 單目的++運算優(yōu)先級高于雙目的+運算,不過++的結(jié)合性是自右向左的,而+是自左至右的,所以上面的兩個表達式都是先計算a+b的值之后,a再自加1。
(15)D
解析: 本題主要考察的是switch語句的使用,在第一個case處,因為滿足條件所以輸出字符3,但這個分支沒有break語句終止,所以會繼續(xù)執(zhí)行下面的分支語句,即輸出字符2,這時出現(xiàn)break語句,結(jié)束整個語句,即輸出32。
(16)A
解析: 數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標是從0開始的,所以題中數(shù)組的最后一個元素是num[9]。
(17)A
解析: 本題考察的是數(shù)組和指向數(shù)組的指針之間的關(guān)系,選項A)中x是被數(shù)組a的第一個元素賦值,其余的都是被數(shù)組a的第二個元素賦值。
(18)D
解析: 本題考察的是引用調(diào)用,因為函數(shù)swap引用調(diào)用參數(shù)a,所以在swap函數(shù)中a的變化會改變主函數(shù)中a的值,即a自加1,但b的值并未改變。
(19)A
解析: 本題考察的是內(nèi)聯(lián)函數(shù)的使用,它的引入是為了解決程序中函數(shù)調(diào)用的效率問題,在編譯時,編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達式用內(nèi)聯(lián)函數(shù)的函數(shù)體來替換。
(20)B
解析: 自動變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函數(shù)體內(nèi)或分程序體內(nèi)。
(21)A
解析: 本題考察點為類成員的訪問權(quán)限,public關(guān)鍵字修飾的類成員可以被類的對象通過成員操作符"."直接訪問,protected和private則不能,而static不能單獨修飾類的成員。
(22)B
解析: 對象屬于某個已知的類,是類的實例,對象之間通信實際上就是通過函數(shù)傳遞信息,封裝是把數(shù)據(jù)和操作結(jié)合在一起,繼承是對于類的方法的改變和補充,重載是多態(tài)性之一。
(23)C
解析: 析構(gòu)函數(shù)可以被函數(shù)調(diào)用,也可以系統(tǒng)調(diào)用:函數(shù)體內(nèi)的對象在函數(shù)結(jié)束時調(diào)用析構(gòu)函數(shù)和使用delete釋放對象所占有用的資源。
(24)C
解析: 拷貝初始化構(gòu)造函數(shù)的作用是用一個已知的對象來初始化一個被創(chuàng)建的同類的對象,該函數(shù)只有一個參數(shù),并且是對同類的某個對象的引用。
(25)D
解析: 本題考察的是靜態(tài)數(shù)據(jù)成員的使用,n為類A的靜態(tài)成員,即為類A的所有對象共有的成員,所以,當對象b把n初始化為3時,對象a的成員n的值也為3(這兩個n實際上是同一個)。
(26)C
解析: 友元函數(shù)是獨立于當前類的外部函數(shù),但它可以訪問該類的所有對象的成員;拷貝構(gòu)造函數(shù)是使用已存在的對象初始化正在生成的對象時調(diào)用的成員函數(shù)。
(27)C
解析: 數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實現(xiàn)程序復(fù)用的基礎(chǔ)。
(28)B
解析: 派生類對象的數(shù)據(jù)結(jié)構(gòu)是由基類中說明的數(shù)據(jù)成員和派生類中說明的數(shù)據(jù)成員共同構(gòu)成,所以不能繼承基類的構(gòu)造函數(shù),必須重新定義。
(29)A
解析: 本題考察的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應(yīng)該先調(diào)用基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),最后調(diào)用派生類自己的構(gòu)造函數(shù)。
(30)C
解析: 基類中說明的虛函數(shù),在派生類中自然就是虛函數(shù),所以類B中func1()是虛函數(shù);而類A中的func2沒有被關(guān)鍵字virtual修飾,所以不是虛函數(shù)。
(31)C
解析: 例如"::"運算符就不能被重載;通過重載可以創(chuàng)造新的運算方式,但是不能臆造新的運算符;定義的時候必須使用關(guān)鍵字operator,而調(diào)用時可直接使用運算符。
(32)D
解析: 題干表示的是回車換行,選項A),B)和C)都表示回車換行。而D)是字符串的結(jié)尾標志。
(33)C
解析: for循環(huán)執(zhí)行2次,所以第一次for循環(huán)為result=1*a[1]=4,第二次for循環(huán)為result=4*a[2]=20。
(34)C
解析: 應(yīng)該先做++運算,然后進行%運算,最后比較不等式,實際上最后輸出的結(jié)果就是被3除,余數(shù)為2的不大于8的數(shù)。
(35)B
解析: 本題考察模板函數(shù)的應(yīng)用,表達式int(1.1)和int(4.2)是將1.1和4.2強制轉(zhuǎn)換為整型。
二、填空題
(1)非線性結(jié)構(gòu)
解析: 數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩大類。
(2)相鄰
解析: 常用的存儲表示方法有4種,順序存儲、鏈式存儲、索引存儲、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置也相鄰的存儲單元中。
(3)可重用性
解析: 本題考查了繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
(4)軟件開發(fā)
解析: 基于軟件工程的目標,軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué)。軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟學(xué),以及軟件心理學(xué)等內(nèi)容。
(5)集合
解析: 在關(guān)系操作中,所有操作對象與操作結(jié)果都是關(guān)系。而關(guān)系定義為元數(shù)相同的元組的集合。因此,關(guān)系操作的特點是集合操作。
(6)多態(tài)性
解析: 面向?qū)ο笙到y(tǒng)包含了三個特征--封裝性、繼承性和多態(tài)性,這三個特征可以很好的實現(xiàn)數(shù)據(jù)抽象,進行行為共享,完成進化求解和描述一個系統(tǒng)的確定行為。
(7)true
解析: 本題考察的是對于邏輯運算符號的理解,"||"運算符的任何一邊取值為真,則整個運算結(jié)果為真。
(8)5
解析: 因為b的值為1,所以b&&a<5相當于a<5,當a=5時退出循環(huán),一共進行5次循環(huán)。
(9)1 2 3 4 5
解析: 本題考察的是考生使用簡單循環(huán)輸出數(shù)組元素的能力,因為結(jié)束條件是i<5,而i初始值為0,所以只會輸出前5個元素。
(10)main
解析: 所有的C++語言程序都是從main函數(shù)開始執(zhí)行,而普通函數(shù)的存在是為了簡化main函數(shù)的復(fù)雜程度。
(11)拷貝構(gòu)造
解析: 本題考察的是拷貝構(gòu)造函數(shù)的定義,它是一種特殊的成員函數(shù),作用是使用一個已知的對象來初始化一個被創(chuàng)建的同類的對象,定義格式是類名::拷貝構(gòu)造函數(shù)名(類名 &引用名)。
(12)基類~派生類
解析: 本題主要考察的是派生類構(gòu)造函數(shù)的執(zhí)行順序,在C++語言中構(gòu)造函數(shù)的執(zhí)行順序是先基類后派生類,而析構(gòu)函數(shù)的執(zhí)行順序正好相反,是先調(diào)用派生類后調(diào)用基類。
(13)類
解析: 本題考察的是類模板的定義,C++語言中模板分為兩種:類模板和函數(shù)模板,類模板只能用于類型參數(shù),函數(shù)模板可以重載。
(14)*****hello
解析: 本題考察的是C++語言的流輸出操作,cout中包括的函數(shù)fill()和width()分別實現(xiàn)填充和設(shè)定顯示長度的功能。
該資料來自互聯(lián)網(wǎng) 請勿用作商業(yè)用途
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |