- 相關推薦
2015下半年全國計算機考試二級C++預測卷答案及解析
一、選擇題

(1)B
【命題目的】本題主要考查對于棧的理解。
【解題要點】棧是限定在一端進行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先插入的元素,從而也是最后才能被刪除的元素,即棧是按照"先進后出"或"后進先出"的原則組織數據的。
【錯解分析】隊列組織數據的原則是"先進先出"或"后進后出"。
【考點鏈接】數據結構中,棧和隊列組織數據的原則。
(2)D
【命題目的】考查二叉樹的基礎知識。
【解題要點】具有3個結點的二叉樹具有以下的幾種形態:
【考點鏈接】二叉樹的結構及畫法。
(3)B
【命題目的】本題考查二叉樹的遍歷。
【解題要點】所謂二叉樹的前序遍歷(DLR)是指在訪問根結點、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規則同樣適用,即"根-左-右"。故該二叉樹的前序遍歷結果為"ATBZXCYP"。
【考點鏈接】對于本題,若使用后序遍歷和中序遍歷的結果分別為"ZBTYCPXA"和"TZBACYXP"。
(4)D
【命題目的】本題考查考生的結構化程序設計的思想。
【考點鏈接】結構化的程序設計的目的。
(5)B
【命題目的】本題考查基本的程序控制結構。
【解題要點】采用結構化程序設計方法編寫程序,可使程序結構良好、易讀、易理解、易維護,它包括3種基本控制結構,分別是順序結構、選擇結構和重復結構(又稱循環結構)。
【考點鏈接】控制程序結構的方法和作用。
(6)C
【命題目的】本題考查了軟件測試的主要特征。
【解題要點】軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定。它有3個方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經濟性。其中沒有測試的可靠性這一說法。
【考點鏈接】軟件測試與軟件調試的概念,以及相應的方法。
(7)A
【命題目的】考查需求分析的作用。
【解題要點】需求分析是軟件定義時期的最后一個階段,它的基本任務就是準確回答"系統必須做什么"這個問題即軟件系統功能,需求分析的任務還不是確定系統怎樣完成它的工作,而僅僅是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。
(8)B
【命題目的】本題考查了專門的關系運算的類型及其相關知識點。
【解題要點】關系代數中包括傳統的集合運算和專門的關系運算。經過選擇或投影運算得到的新關系的屬性個數最多不會超過原關系中的屬性個數。經過連接運算得到的新關系最多不少于原關系中屬性的個數。
(9)C
【命題目的】本題主要考查了用E-R圖表示實體之間聯系的方法。
【解題要點】兩個實體之間的聯系實際上是實體集間的函數關系,這種函數關系可以有下面幾種,即一對一的聯系、一對多(或多對一)的聯系和多對多的聯系;概念模型便于向各種模型轉換。由于概念模型不依賴于具體的數據庫管理系統,因此,容易向關系模型、網狀模型和層次模型等各種模型轉換。
(10)C
【命題目的】對數據庫各種特性必須有正確的理解。
【解題要點】數據庫的完整性是指數據的正確性和相容性(如學生的學號必須惟一,性別只能是女或男等),數據庫是否具備完整性關系到數據庫系統能否真實反映現實世界,因此維護數據庫的完整性是非常重要的。
【考點鏈接】數據庫的各種特性及表達形式。
(11)C
【命題目的】考查C++語言的關鍵字。
【解題要點】要熟練掌握C++語言中的關鍵字。
【錯解分析】include不是C++語言的關鍵字。
【考點鏈接】define也不是關鍵字。
(12)A
【命題目的】考查C++語言中的注釋問題。
【解題要點】C++語言中的注釋與C語言不同,C語言的注釋符號只有/* */,而C++在此基礎上又加上了//,此注釋用于單行注釋。
【考點鏈接】注釋不影響程序的運行。
(13)B
【命題目的】考查C++語言各種數據類型所占的內存大小。
【解題要點】char型數據所占內存的大小為1個字節。
【錯解分析】int型數據占內存的大小為4個,cong double,double占內存的大小為8個字節。
【考點鏈接】求字節數用sizeof運算符。
(14)B
【命題目的】考查C++語言的正確賦值方法。
【解題要點】a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。
【錯解分析】選項A)中包含一個不合法的運算符":=";選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規定賦值號的左邊只能是單個變量,不能是表達式或常量等。
【考點鏈接】C++語言賦值語句的運用。
(15)A
【命題目的】關于switch語句的考查。
【解題要點】該題目的關鍵是要搞清楚該程序執行了哪幾條語句。由于x的值等于1,所以switch結構中,程序從case 1后面的語句開始執行,又因為case 1后面的語句沒有以break結束,所以程序要繼續往下執行case 2后面的語句。所以,該程序共執行了這三條語句:a++;a++;b++;,因此,變量a和b最后的值應該為2和1。
【考點鏈接】break語句可以結束switch語句。
(16)C
【命題目的】考查C++語言中"‖"和"&&"運算符。
【解題要點】該題目的關鍵是要搞清楚"‖"和"&&"兩個邏輯運算符的運算功能。運算符"‖"和"&&"是雙目運算符,要求有兩個運算量。且規定邏輯與運算中,只有前面運算量的值為真時,才需要判別后面的值。只要前面運算量為假,就不必判別后的值。而邏輯或則為只要前面的運算量為真,就不必判別后的值;只有前為假,才判別后。本題中j++值為真,不進行k++的運算,所以k的值保持不變。
【考點鏈接】注意按位與和按位或的用法。
(17)D
【命題目的】數組的定義范圍。
【解題要點】本題定義a為3行×4列的數組,它可用的行下標最大為2,列下標最大為3。
【錯解分析】a[0][4]超過了數組的范圍。
【考點鏈接】數組的下標是從0開始的。
(18)D
【命題目的】對于運算符"&"和"*"的運用。
【解題要點】"&"是求址運算符,"*"是指針變量的說明符,說明該變量只能存放所定義類型變量的地址。本題中選項D)中的第一和第三項所表達的是同樣的意思。
【錯解分析】選項A)中a是一個整型變量。選項B)中&*a等價于a,*point是指針變量所指的內容。選項C)中也是同理。
【考點鏈接】在指針運算中,&和*的作用相互抵消。
(19)D
【命題目的】本題綜合考查函數的調用方式
【解題要點】函數的形參和實參具有以下特點:
①形參變量只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數后則不能再使用該形參變量。②實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應通過預先用賦值,輸入等辦法使實參獲得確定值。③實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生"類型不匹配"的錯誤。④函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
【錯解分析】函數調用不可以作為一個函數的形參。
【考點鏈接】函數可以嵌套調用,但是不可嵌套定義。
(20)A
【命題目的】考查三目運算符"?:"。
【解題要點】三目運算符的表達式為(表達式1)?(表達式2):(表達式3),運算過程是當(表達式1)的值為真時,求(表達式2)的值為整個表達式的值;如果(表達式1)的值為假,則求(表達式3)的值為整個表達式的值。題中,表達式x>12的結果為假,所以執行的語句是x-12,最終結果應該是0。
【考點鏈接】"?:"的優先級高于"="運算符的優先級。
(21)D
【命題目的】考查關于C++語言類的定義方法。
【解題要點】在C++語言中類定義中的構造函數是私有的,但是其卻調用了其中的公有變量,在實例化時會出現錯誤。
【考點鏈接】C++語言類的定義
(22)A
【命題目的】考查C++語言中類定義和它的概念。
【解題要點】C++語言的默認訪問權限修飾符是private。
【錯解分析】C++語言中的構造函數是系統默認就有的,用戶可以自己定義也可以不定義,故選項B)錯誤;C++語言的類是可以嵌套定義的,故選項D)錯誤;C++語言中成員函數的實現部分也可以寫在類定義內,故選項C)錯誤。
【考點鏈接】函數不能嵌套定義。
(23)B
【命題目的】關于C++語言繼承問題的考查。
【解題要點】C++語言中通常有3種繼承修飾符public,protected和private,限制依次嚴格,另外對類中的數據和函數也有這3種修飾符進行限制。一個派生類能不能繼承基類的所有數據成員受它們的限制。
【考點鏈接】C++語言中繼承關系的修飾符public,protected和private的運用。
(24)D
【命題目的】關于C++語言繼承問題中派生類對基類的訪問能力的考查
【解題要點】C++語言中通常有三種繼承修飾符public,protected,private,限制依次嚴格,另外對類中的數據和函數也有這三種修飾符進行限制,有3種是不能繼承的:公有繼承基類的私有成員,私有繼承基類的私有成員,保護繼承基類的私有成員。
(25)A
【命題目的】考查C++語言中不能夠重載的操作符。
【解題要點】C++語言中的不能重載的操作符是., .*, ->*, ::和?:。
(26)D
【命題目的】考查C++語言中操作符重載的概念。
【解題要點】運算符重載的規則是重載時不能改變運算符的操作數個數,不能改變運算符的優先級,不能改變運算符的結合性,不能改變對預定義類型數據的操作方式。
【考點鏈接】運算符重載的關鍵字是operator。
(27)D
【命題目的】考查C++語言中關于函數模板實參不能省略的情況
【解題要點】函數模板實參不能省略的情況在C++語言中一共有4種:①從模板函數實參表獲得的信息有矛盾;②需要獲得特定類型的返回值,而不管參數的類型如何;③虛擬類型參數沒有出現在模板函數的形參表中;④函數模板含有常規形參。
【考點鏈接】模板形參分為兩種類型;虛擬類型參數和常規參數。
(28)A
【命題目的】考查C++語言中>>運算符的意義。
【解題要點】C++語言中<<和>>運算符都是友元函數重載,分別用于輸出和輸入。
【考點鏈接】運算符[ ]只能作為成員函數重載。
(29)C
【命題目的】考查/和%運算符的意義。
【解題要點】邏輯與運算符為真的前提是兩邊的表達式都為真,本題中6%3的值為0,顯然該表達式的值應該為0。
【考點鏈接】/是整除運算符,當兩個操作數都為整數時,結果為整型,將小數部分舍去。
(30)C
【命題目的】return語句的意義和用法。
【解題要點】在C++語言函數調用中,如果被調用函數中沒有return語句,并不帶回一個確定的、用戶所希望得到的函數值,而是帶回的是一個不確定的值。
【考點鏈接】為了明確表示"不帶回值",可以用void定義無類型(或稱空類型),這時,系統就保證不使函數帶回任何值。
(31)A
【命題目的】函數的參數設置問題。
【解題要點】函數的參數個數是以第一層的逗號為區分的,本題中調用語句中有3個參數。
(32)B
【命題目的】本題考查對二維數組初始化知識點的掌握。
【解題要點】在初始化語句時,需要注意下面幾點:①所賦初值個數與數組元素的個數相同;②每行所賦初值個數與數組元素的個數不同時,系統將自動給該行其余的元素補初值0;③所賦初值行數少于數組行數時,系統將自動給后面各行的元素補初值0;④賦初值時省略行花括號對。在給二維數組賦初值時可以不用行花括號對。
【錯解分析】選項A)中省略了第二維的大小,所以是錯誤的;選項C)超出了數組的定義范圍,所以是錯誤的;選項D)在初始化賦值的時候出現了錯誤。
【考點鏈接】無論是幾維的數組,下標都是從零開始的。
(33)A
【命題目的】對函數傳參的考查 。
【解題要點】在fun函數中,x接收的是main函數中y的地址,所以*x值為2,同樣,*y值為1,所以第1次輸出的是2 1, 第2次改變*x的值等同于改變y的值,改變*y的值也即改變x的值,所以第2次輸出的是4 3。
【考點鏈接】C++語言中函數的傳參方式中關于指針的應用。
(34)C
【命題目的】本題考查if語句的使用方法。
【解題要點】該表達式的語句是
if(表達式1)
語句1
else if(表達式2)
語句2
else if(表達式3)
語句3
else
語句4
……
由if表達式可知,題中直接執行if語句的第2條else if(x<10.0)y=1.0/x;。
【考點鏈接】else總是與最近的沒有匹配的if匹配。
(35)D
【命題目的】for和switch語句的應用。
【解題要點】本題考查循環的嵌套。只要注意在C++語言中,系統在字符指針的最后位置會增加一個字符串結束符′′,執行8次for循環,再根據switch語句中的條件易知答案。
【考點鏈接】C++中各種條件判斷,循環語句的用法。
二、填空題
(1)交換排序
【命題目的】需要考生記住常見的排序方法。
【解題要點】常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。
【考點鏈接】常見的排序方法及其作用機制和區別。
(2)上溢
【命題目的】本題考查了隊列的基本性質。
【解題要點】入隊運算是指在循環隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算,這種情況稱為"上溢"。
(3)封裝
【命題目的】本題考查了面向對象技術中的一些基本概念。
【解題要點】面向對象技術中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術,目的在于將對象的使用者對象的和設計者分開。
(4)輸出結果
【命題目的】本題主要考查測試的步驟。
【考點鏈接】測試的基本方法和步驟。
(5)關系運算
【命題目的】本題考查了關系運算的基本知識。
【解題要點】在關系模型的數據語言中,一般除了運用常規的集合運算,(并、交、差、笛卡爾積等)外,還定義了一些專門的關系運算,如投影、選擇、連接等。前者是將關系(即二維表)看成是元組的集合,這些運算主要是從二維表的行的方向來進行的;后者主要是從二維表的列的方向來進行的運算。兩者統稱為關系代數。
(6)編譯器
【命題目的】考查內聯函數的基本概念
【解題要點】內聯函數是通過編譯器,只是在調用的時候,像宏一樣展開。
【考點鏈接】內聯函數比普通函數的效率更高。
(7)16
【命題目的】考查C++賦值表達式的運用。
【解題要點】賦值表達式的值就是所賦值變量的值,本題中a+=8相當于a=a+8,對表達式逐步進行求解:
a+=(a=8)此時,a的值由于賦值為8,而不是0
a+=8
a=a+8
a=16
【考點鏈接】要掌握"+="等相關運算符的用法。
(8)acdb
【命題目的】考查在繼承中構造函數和析構函數的調用順序。
【解題要點】先調用基類的構造函數,再調用派生類的構造函數,調用析構函數時的順序是先調用派生類的析構函數,后調用基類的析構函數。
【考點鏈接】應掌握在繼承中構造函數和析構函數的調用順序。
(9)內聯
【命題目的】注意內聯函數與宏定義的區別。
【解題要點】C++中的成員函數如果它的實現寫在了類中,那么該函數就是一個內聯函數。
【考點鏈接】C++中內聯函數的相關概念。
(10)二義性
【命題目的】關于C++中虛基類的作用。
【解題要點】C++中產生虛基類的作用就是為了解決繼承中的二義性問題,通過虛基類繼承可以把父基類中相同的函數只編譯一次。
(11)public
【命題目的】考查C++中運算符重載的固定格式和要求。
【解題要點】C++中不論用成員函數還是友元函數重載運算符都必須用關鍵字operator,都必須將函數聲明為公有的。
【考點鏈接】operator是關鍵字。
(12)函數模板~源代碼~數據類型
【命題目的】C++中函數模板的定義。
【解題要點】函數模板是一系列相關函數的模型或樣板,這些函數的源代碼形式相同,只是所針對的數據類型不同。
【考點鏈接】聲明一個函數的模板格式是:template<<模板形參表聲明>><函數聲明>
(13)有格式
【命題目的】考查關于輸入輸出的概念。
【解題要點】C++中運算符">>"和"<<"都是屬于有格式的輸入輸出。
【考點鏈接】使用cin,cout進行輸入輸出時應包括頭文件"iostream.h。
【下半年全國計算機考試二級C++預測卷答案及解析】相關文章:
2015年9月全國計算機等級考試二級C++預測卷答案及解析09-11
2015下半年全國計算機二級C++考試預測卷(附答案)10-15
2015下半年全國計算機二級C++預測題答案及解析09-04
2015下半年計算機二級C++考試預測題答案及解析08-31
2015年9月全國計算機二級C++預測題答案及解析06-19
全國計算機二級考試《C++》筆試樣卷06-12