計算機二級

當前位置 /首頁/計算機/計算機二級/列表

2015下半年計算機二級C++考試預測題答案及解析

  一、選擇題

2015下半年計算機二級C++考試預測題答案及解析

(1)D

解析: 演算法的複雜度主要包括演算法的時間複雜度和演算法的空間複雜度。所謂演算法的時間複雜度是指執行演算法所需要的計算工作量;演算法的空間複雜度一般是指執行這個演算法所需要的記憶體空間。

(2)C

解析: 鏈式儲存結構克服了順序儲存結構的缺點:它的結點空間可以動態申請和釋放;它的資料元素的邏輯次序靠結點的指標來指示,不需要移動資料元素。故鏈式儲存結構下的線性表便於插入和刪除操作。

(3)C

解析: 資料結構概念一般包括3個方面的內容,資料的邏輯結構、儲存結構及資料上的運算集合。資料的邏輯結構只抽象的反映資料元素之間的邏輯關係,而不管它在計算機中的儲存表示形式。

(4)D

解析: 結構化程式設計方法的主要原則可以概括為自頂向下、逐步求精、模組化及限制使用goto語句,總的來說可使程式結構良好、易讀、易理解、易維護。

(5)B

解析: 軟體設計包括軟體結構設計、資料設計、介面設計和過程設計。其中結構設計是定義軟體系統各主要部件之間的關係;資料設計是將分析時建立的模型轉化為資料結構的定義;介面設計是描述軟體內部、軟體和作業系統之間及軟體與人之間如何通訊;過程設計則是把系統結構部件轉換成軟體的過程性描述。

(6)A

解析: 確認測試的任務是驗證軟體的功能和效能,以及其他特性是否滿足需求規格說明中確定的各種需求;整合測試的主要目的是發現與介面有關的錯誤。

(7)A

解析: 資料流圖包括4個方面,即加工(轉換)(輸入資料經加工變換產生輸出)、資料流(沿箭頭方向傳送資料的通道,一般在旁邊標註資料流名)、儲存檔案(資料來源)(表示處理過程中存放各種資料的檔案)、源和潭(表示系統和環境的介面,屬系統之外的實體)。不包括選項中的控制流。

(8)C

解析: 資料庫中的資料具有"整合"與"共享"的特點,亦即是資料庫集中了各種應用的資料,進行統一構造與儲存,而使它們可以被不同應用程式所使用,故選項C)正確。

(9)B

解析: E-R模型即實體-聯絡模型,是將現實世界的要求轉化成實體、聯絡、屬性等幾個基本概念,以及它們之間的兩種聯接關係。資料庫邏輯設計階段包括以下幾個過程:從E-R圖向關係模式轉換,邏輯模式規範化及調整、實現規範化和RDBMS,以及關係檢視設計。

(10)A

解析: 人工管理階段是在20世紀50年代中期以前出現的,資料不獨立,完全依賴於程式;檔案系統是資料庫系統發展的初級階段,資料獨立性差;資料庫系統具有高度的物理獨立性和一定的邏輯獨立性。

(11)B

解析: 資料封裝就是資料抽象;友元可以訪問類中的所有成員,是物件導向的一個重要特徵,但是破壞了封裝性;過載和動態聯編都是物件導向的另一個特點--多型性。

(12)D

解析: ++,--運算子不能用於常量表達式。

(13)B

解析: 表示式值的型別是由運算元的型別決定的,因為本題的兩個數都是int型的,所以得出的結果也為int型,即去掉小數點後的部分,只取商的整數部分。

(14)A

解析: 單目的++運算優先順序高於雙目的'+運算,不過++的結合性是自右向左的,而+是自左至右的,所以上面的兩個表示式都是先計算a+b的值之後,a再自加1。

(15)D

解析: 本題主要考察的是switch語句的使用,在第一個case處,因為滿足條件所以輸出字元3,但這個分支沒有break語句終止,所以會繼續執行下面的分支語句,即輸出字元2,這時出現break語句,結束整個語句,即輸出32。

(16)A

解析: 陣列定義中的數字指的是陣列的大小,而下標是從0開始的,所以題中陣列的最後一個元素是num[9]。

(17)A

解析: 本題考察的是陣列和指向陣列的指標之間的關係,選項A)中x是被陣列a的第一個元素賦值,其餘的都是被陣列a的第二個元素賦值。

(18)D

解析: 本題考察的是引用呼叫,因為函式swap引用呼叫引數a,所以在swap函式中a的變化會改變主函式中a的值,即a自加1,但b的值並未改變。

(19)A

解析: 本題考察的是行內函數的使用,它的引入是為了解決程式中函式呼叫的效率問題,在編譯時,編譯器將程式中出現的行內函數的呼叫表示式用行內函數的函式體來替換。

(20)B

解析: 自動變數是函式體或分程式內定義的變數,它的作用域在所定義的函式體內或分程式體內。

(21)A

解析: 本題考察點為類成員的訪問許可權,public關鍵字修飾的類成員可以被類的物件通過成員操作符"."直接訪問,protected和private則不能,而static不能單獨修飾類的成員。

(22)B

解析: 物件屬於某個已知的類,是類的例項,物件之間通訊實際上就是通過函式傳遞資訊,封裝是把資料和操作結合在一起,繼承是對於類的方法的改變和補充,過載是多型性之一。

(23)C

解析: 解構函式可以被函式呼叫,也可以系統呼叫:函式體內的物件在函式結束時呼叫解構函式和使用delete釋放物件所佔有用的資源。

(24)C

解析: 拷貝初始化建構函式的作用是用一個已知的物件來初始化一個被建立的同類的物件,該函式只有一個引數,並且是對同類的某個物件的引用。

(25)D

解析: 本題考察的是靜態資料成員的使用,n為類A的靜態成員,即為類A的所有物件共有的成員,所以,當物件b把n初始化為3時,物件a的成員n的值也為3(這兩個n實際上是同一個)。

(26)C

解析: 友元函式是獨立於當前類的外部函式,但它可以訪問該類的所有物件的成員;拷貝建構函式是使用已存在的物件初始化正在生成的物件時呼叫的成員函式。

(27)C

解析: 資料封裝就是資料抽象,即資訊隱藏;而繼承是實現程式複用的基礎。

(28)B

解析: 派生類物件的資料結構是由基類中說明的資料成員和派生類中說明的資料成員共同構成,所以不能繼承基類的建構函式,必須重新定義。

(29)A

解析: 本題考察的是含有虛基類的繼承中建構函式的呼叫順序,應該先呼叫基類的建構函式,接著是按照派生類繼承列表的順序依次呼叫虛基類的建構函式,最後呼叫派生類自己的建構函式。

(30)C

解析: 基類中說明的虛擬函式,在派生類中自然就是虛擬函式,所以類B中func1()是虛擬函式;而類A中的func2沒有被關鍵字virtual修飾,所以不是虛擬函式。

(31)C

解析: 例如"::"運算子就不能被過載;通過過載可以創造新的運算方式,但是不能臆造新的運算子;定義的時候必須使用關鍵字operator,而呼叫時可直接使用運算子。

(32)D

解析: 題幹表示的是回車換行,選項A),B)和C)都表示回車換行。而D)是字串的結尾標誌。

(33)C

解析: for迴圈執行2次,所以第一次for迴圈為result=1*a[1]=4,第二次for迴圈為result=4*a[2]=20。

(34)C

解析: 應該先做++運算,然後進行%運算,最後比較不等式,實際上最後輸出的結果就是被3除,餘數為2的不大於8的數。

(35)B

解析: 本題考察模板函式的應用,表示式int(1.1)和int(4.2)是將1.1和4.2強制轉換為整型。

二、填空題

(1)非線性結構

解析: 資料的邏輯結構有線性結構和非線性結構兩大類。

(2)相鄰

解析: 常用的儲存表示方法有4種,順序儲存、鏈式儲存、索引儲存、雜湊儲存。其中,順序儲存方法是把邏輯上相鄰的結點儲存在物理位置也相鄰的儲存單元中。

(3)可重用性

解析: 本題考查了繼承的優點:相似的物件可以共享程式程式碼和資料結構,從而大大減少了程式中的冗餘,提高軟體的可重用性。

(4)軟體開發

解析: 基於軟體工程的目標,軟體工程的理論和技術性研究的內容主要包括:軟體開發技術和軟體工程管理。軟體開發技術包括:軟體開發方法學、開發過程、開發工具和軟體工程環境,其主體內容是軟體開發方法學。軟體工程管理包括:軟體管理學、軟體工程經濟學,以及軟體心理學等內容。

(5)集合

解析: 在關係操作中,所有操作物件與操作結果都是關係。而關係定義為元數相同的元組的集合。因此,關係操作的特點是集合操作。

(6)多型性

解析: 物件導向系統包含了三個特徵--封裝性、繼承性和多型性,這三個特徵可以很好的實現資料抽象,進行行為共享,完成進化求解和描述一個系統的確定行為。

(7)true

解析: 本題考察的是對於邏輯運算子號的理解,"||"運算子的任何一邊取值為真,則整個運算結果為真。

(8)5

解析: 因為b的值為1,所以b&&a<5相當於a<5,當a=5時退出迴圈,一共進行5次迴圈。

(9)1 2 3 4 5

解析: 本題考察的是考生使用簡單迴圈輸出陣列元素的能力,因為結束條件是i<5,而i初始值為0,所以只會輸出前5個元素。

(10)main

解析: 所有的C++語言程式都是從main函式開始執行,而普通函式的存在是為了簡化main函式的複雜程度。

(11)拷貝構造

解析: 本題考察的是拷貝建構函式的定義,它是一種特殊的成員函式,作用是使用一個已知的物件來初始化一個被建立的同類的物件,定義格式是類名::拷貝建構函式名(類名 &引用名)。

(12)基類~派生類

解析: 本題主要考察的是派生類建構函式的執行順序,在C++語言中建構函式的執行順序是先基類後派生類,而解構函式的執行順序正好相反,是先呼叫派生類後呼叫基類。

(13)類

解析: 本題考察的是類模板的定義,C++語言中模板分為兩種:類模板和函式模板,類模板只能用於型別引數,函式模板可以過載。

(14)*****hello

解析: 本題考察的是C++語言的流輸出操作,cout中包括的函式fill()和width()分別實現填充和設定顯示長度的功能。