當前位置:學者齋 >

計算機 >計算機二級 >

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

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()分別實現填充和設定顯示長度的功能。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/jsj/erji/oo0j6z.html