- 相關(guān)推薦
2015下半年全國計算機二級C++考試考前練習題答案及解析
一、選擇題
(1)C
【命題目的】考查考生對數(shù)據(jù)結(jié)構(gòu)分類的理解。
【解題要點】根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復雜程序,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是指滿足以下兩個條件的非空的數(shù)據(jù)結(jié)構(gòu):一是有且只有一個根結(jié)點,二是每一個結(jié)點最多有一個前件,也最多有一個后件。如是一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱為非線性結(jié)構(gòu)。
【考點鏈接】數(shù)據(jù)結(jié)構(gòu)的各種分類方法及標準。
(2)B
【命題目的】本題考查二叉樹的基本概念及其基本性質(zhì)。
【解題要點】按照題目的要求可得到滿足條件的二叉樹,如下圖所示:
故該二叉樹中總的結(jié)點個數(shù)為13。
(3)D
【命題目的】要求考生對幾種排序方法的實現(xiàn)機制有充分的理解。
【解題要點】快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟毩⒌膬刹糠,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應有的位置),然后對剩下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個或兩個以上的有序表組合成一個新的有序表。
【考點鏈接】各種排序方法實現(xiàn)過程及實現(xiàn)機制。
(4)B
【命題目的】本題考查了結(jié)構(gòu)化程序設(shè)計的原則。
【解題要點】結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為以下4個方面,即自頂向下、逐步求精、模塊化及限制使用goto語句。
(5)B
【命題目的】掌握軟件調(diào)試技術(shù)的方法。
【解題要點】調(diào)試的關(guān)鍵在于推斷程序內(nèi)部的錯誤位置及原因。主要的調(diào)試方法有強行排錯法、回溯法和原因排除法。
【考點鏈接】軟件調(diào)試的各種方法及各種方法的區(qū)別。
(6)B
【命題目的】本題考查了幾種常用的算法描述工具及其基本知識。
【解題要點】常見的過程設(shè)計工具有:程序流程圖、N-S圖、PAD圖和HIPO圖。其中,為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為N-S圖。
【考點鏈接】其他常用算法描述工具的概念。
(7)B
【命題目的】記憶軟件復雜性度量的參數(shù)。
【解題要點】定量度量方法是程序復雜程度經(jīng)常使用的方法,把程序的復雜程度乘以適當參數(shù)即可估算出軟件中錯誤的數(shù)量以及軟件開發(fā)需要用的工作量,定量度量的結(jié)果可以用來比較兩個不同設(shè)計或兩個不同算法的優(yōu)劣,程序的定量的復雜程度可作為模塊規(guī)模的精確限度,因而軟件復雜性度量的參數(shù)包括規(guī)模。
【考點鏈接】軟件復雜性度量的方法及各種度量參數(shù)的作用。
(8)B
【命題目的】本題考查數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)知識 -- 數(shù)據(jù)庫系統(tǒng)的組成部分。
【解題要點】數(shù)據(jù)庫系統(tǒng)(Database System,簡稱DBS)由如下幾部分組成,即數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件和軟件。
(9)B
【命題目的】考查對數(shù)據(jù)庫系統(tǒng)各方面之間的關(guān)系。
【解題要點】數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)庫進行管理和對數(shù)據(jù)庫進行操作的管理系統(tǒng),它是建立在操作系統(tǒng)基礎(chǔ)之上的,位于操作系統(tǒng)和用戶之間的一層數(shù)據(jù)管理軟件,負責對數(shù)據(jù)庫的數(shù)據(jù)進行統(tǒng)一的管理和控制,它是實現(xiàn)數(shù)據(jù)庫和管理數(shù)據(jù)庫的核心。
【考點鏈接】數(shù)據(jù)庫系統(tǒng)各方面之間的關(guān)系及相互作用。
(10)B
【命題目的】本題主要考查了數(shù)據(jù)庫概念設(shè)計中,視圖設(shè)計的基本概念。
【解題要點】視圖設(shè)計一般有3種設(shè)計次序,它們分別是自頂向下、自底向上和由內(nèi)向外,它們又為視圖設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握,可以單獨使用也可混合使用。
【考點鏈接】數(shù)據(jù)庫概念設(shè)計的過程:首先選擇局部應用,再進行局部視圖設(shè)計,最后對局部視圖進行集成得到概念模式。
(11)D
【命題目的】C++語言關(guān)鍵字的概念。
【解題要點】關(guān)鍵字是C++語言中預先定義并實現(xiàn)一定功能的一類單詞,它不是由用戶定義的,它是一種功能性單詞。
【考點鏈接】注意關(guān)鍵字不能用做用戶標識符。
(12)B
【命題目的】關(guān)于C++語言中函數(shù)的基本概念。
【解題要點】C++語言中函數(shù)在被調(diào)用以前必須先被聲明,主函數(shù)是程序的入口函數(shù),用戶定義的函數(shù)是可以被重復調(diào)用的,C++語言中面向?qū)ο蟪绦蛟O(shè)計的基本組成單元是類。
【考點鏈接】主函數(shù)可以放在程序中的任何位置。
(13)A
【命題目的】C++語言運算符的使用。
【解題要點】C++語言規(guī)定:取余運算符的運算對象必須是整型,復合運算符"%="中包含%運算,它的運算對象也必須是整型。
(14)D
【命題目的】考查C++語言中的轉(zhuǎn)義字符。
【解題要點】在C++語言中退格符表示為\b退格。
【考點鏈接】其他轉(zhuǎn)義字符的意義:\n表示回車換行,\t表示橫向跳到下一制表位置,\v表示豎向跳格,\r表示回車,\f表示走紙換頁,\\表示反斜線符,\a表示鳴鈴,
\ddd1~3位表示八進制數(shù)所代表的字符,\xhh1~2位表示十六進制數(shù)所代表的字符。
(15)D
【命題目的】關(guān)于C++語言中邏輯運算符的考查。
【解題要點】在C++語言中,邏輯運算符有4個,它們分別是!(邏輯非)、||(邏輯或)、&&(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在語句x=(a&&b)&&(c<′B′);中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當然c<′B′是成立的,顯然,該表達式的值為1。
(16)B
【命題目的】考查C++語言中while語句的應用
【解題要點】該題目應該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應該為7,所以最后一次執(zhí)行循環(huán)體時輸出為6,由此可以排除C)。
【考點鏈接】while與do-while的區(qū)別。
(17)A
【命題目的】本題考查對指針數(shù)組的掌握。
【解題要點】指針數(shù)組的定義、賦初值、數(shù)組元素的引用與賦值等操作和一般數(shù)組的處理方法基本相同。需要注意指針數(shù)組是指針類型的,對其元素所賦的值必須是地址值。其格式是"存儲類型數(shù)據(jù)類型*指針數(shù)組名1[長度1]={初值1},功能是定義指向"數(shù)據(jù)類型"變量或數(shù)組的指針型數(shù)組,同時給指針數(shù)組元素賦初值。這些指針變量具有指定的"存儲類型"。本題中指針*p指向數(shù)組a,表達式*(p+3)+=4的含義是*(p+3)= *(p+3)+4,而*(p+3)在數(shù)組中指向的值為9,最后輸出的結(jié)果為9+4=13。
【考點鏈接】一個語句的結(jié)束要有分號。
(18)D
【命題目的】C++語言中字符串的賦值。
【解題要點】C++語言中操作一個字符串常量的方法有:①把字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串, 然后通過字符指針來訪問字符串存貯區(qū)域。當字符串常量在表達式中出現(xiàn)時, 根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則, 它被轉(zhuǎn)換成字符指針。本題D)項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。
(19)C
【命題目的】數(shù)據(jù)類型的默認轉(zhuǎn)換。
【解題要點】本題中,先將x轉(zhuǎn)換為浮點型再與3.8相加,得到結(jié)果與5.0相除。最后將得到的結(jié)果去掉小數(shù)位化成整型數(shù)據(jù)賦給y。另外,值得注意的是,整型、實型、字符型數(shù)據(jù)間可以混合運算。在進行運算時,不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,然后再進行運算。
【錯解分析】如果認為執(zhí)行y=(x+3.8)/5.0后y的值為1是錯誤的,此時y的值為0。
【考點鏈接】x為int型,將1.2賦值給x時,x的值為1。
(20)B
【命題目的】本題考查了函數(shù)的遞歸調(diào)用的應用。
【解題要點】在main函數(shù)中,對f(1)和f(2)的值進行了累加。過程如下:
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3。
【考點鏈接】函數(shù)的遞歸調(diào)用需要有一個結(jié)束的條件。
(21)C
【命題目的】考查C++語言中類定義的結(jié)束符號。
【解題要點】C++語言中類定義的結(jié)束符號是分號。
【考點鏈接】函數(shù)的定義不需要分號。
(22)B
【命題目的】考查C++語言中類定義用它自己定義數(shù)據(jù)的方法。
【解題要點】C++語言中類定義中若想用該類來定義數(shù)據(jù)只能定義為指針類型的,而不能定義為普通類型的。
【考點鏈接】C++語言類的定義的方法
(23)B
【命題目的】關(guān)于C++語言基類中虛函數(shù)的繼承問題。
【解題要點】C++語言中基類的虛函數(shù)是可以被派生類繼承的。
【考點鏈接】虛函數(shù)和純虛函數(shù)的區(qū)別。
(24)C
【命題目的】C++語言中繼承中的賦值問題。
【解題要點】C++語言中基類的構(gòu)造函數(shù)是可以被派生類繼承并賦值的。
【考點鏈接】構(gòu)造函數(shù)和析構(gòu)函數(shù)均無返回值。
(25)A
【命題目的】考查C++語言中操作符重載中成員函數(shù)重載和友元函數(shù)重載的不同。
【解題要點】成員函數(shù)和友元函數(shù)可重載的運算符有些相同的,有些是不同的,友元函數(shù)沒有this指針,二者重載相同運算符時的參數(shù)肯定是不同的,成員函數(shù)重載運算符時都必須聲明為公有的。
【考點鏈接】友元函數(shù)的聲明關(guān)健字是friend。
(26)A
【命題目的】考查C++語言中運算符重載。
【解題要點】C++語言中運算符重載中只能用友元函數(shù)重載的運算符是<<和>>。
(27)A
【命題目的】考查C++語言中數(shù)組初始化問題。
【解題要點】如果定義數(shù)組時沒有進行初始化,則其各個成員的值不確定。
【考點鏈接】使用數(shù)組時應先賦初值。
(28)A
【命題目的】考查C++語言中格式控制標志。
【解題要點】C++語言中默認小數(shù)的輸出位一共是六位,fixed的意義是在小數(shù)點后保留六位,scientific的意義是以科學計數(shù)法輸出小數(shù),本題中,100.8989663的默認輸出就是100.899,fixed輸出是 100.898966,scientific輸出是1.008990e+002。
【考點鏈接】C++語言中的小數(shù)輸出及各種控制方法。
(29)D
【命題目的】字符串指針的考查。
【解題要點】C++語言規(guī)定,如果指針變量q已指向數(shù)組中的一個元素,則q++指向同一數(shù)組中的下一個元素(而不是將q的值簡單的加1)。本題中q是long型指針,每個long型數(shù)據(jù)占內(nèi)存字節(jié)數(shù)為4,所以q++則由當前位置向右移動4個字節(jié),所以最后顯示出的是 efgh。
【考點鏈接】請注意*(p++)與(*p)++的區(qū)別。
(30)A
【命題目的】字符串指針的考查。
【解題要點】字符z的ASCII碼值為122,經(jīng)過c-25運算后,得97。
【考點鏈接】C++語言中,字符也可參與算術(shù)運算,運算時用的是字符的ASCII碼值。
(31)B
【命題目的】考查結(jié)構(gòu)體的用法。
【解題要點】:C++語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第0號元素的地址,在本題中s就是s[0]的地址,指針變量p指向s,也就是指向s[0],所以在for循環(huán)累加的是s[0]的score成員值。
【考點鏈接】注意結(jié)構(gòu)體與類的區(qū)別。
(32)C
【命題目的】數(shù)據(jù)成員內(nèi)存的占用。
【解題要點】本題中,格式符0表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C++語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號。
【考點鏈接】for循環(huán)的次數(shù)就是字符串\ta\018bc的長度。
(33)B
【命題目的】本題考查帶參數(shù)的宏定義及應用方法,這種宏不只是進行字符串的替換,還要進行參數(shù)的替換。
【解題要點】格式為:#define 宏名(參數(shù)表) 字符串
本題的替換過程是sun=x+y+z*y+z,將其各值帶入即可。
【考點鏈接】注意在替換的過程不要隨意加入括號。
(34)A
【命題目的】函數(shù)傳參的方式。
【解題要點】本題函數(shù)fun中形參是兩個指針變量,函數(shù)fun只是將這兩個指針的指向的地址交換了一下而并沒有交換它們所指向的地址中的數(shù)據(jù)。雖然,主函數(shù)中聲明的變量a,b是整型變量而函數(shù)fun中的形參是兩個指針變量,這兩個變量僅僅是兩個參數(shù),與主函數(shù)中的那兩個變量含義是不同的。
【考點鏈接】采用指針或引用可將值交換。
(35)D
【命題目的】考查static的用法和意義。
【解題要點】對函數(shù)的靜態(tài)局部變量是在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
【考點鏈接】靜態(tài)函數(shù)只能用靜態(tài)變量。
二、填空題
(1)時間復雜度和空間復雜度
【命題目的】本題考查了考生對算法的理解程度。
【解題要點】算法的復雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法的計算量是算法的時間復雜性,算法所需存儲空間大小是算法的空間復雜性。
【考點鏈接】算法的各種屬性及其相互作用。
(2)存儲結(jié)構(gòu)
【命題目的】本題考查了數(shù)據(jù)結(jié)構(gòu)所包括的幾個方面。
【解題要點】數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
【考點鏈接】數(shù)據(jù)結(jié)構(gòu)包含的3個方面及各方面之間的關(guān)系。
(3)對象類
【命題目的】本題考查了對象的一些基本特征。
【解題要點】類描述的是具有相似性質(zhì)的一組對象;把具有相同屬性的一些不同對象歸為類,我們稱之為對象類。
(4)過程
【命題目的】本題考查軟件工程的3要素。
【解題要點】軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的基礎(chǔ)上的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。
【考點鏈接】軟件工程的3個要素及各要素的作用。
(5)實體完整性
【命題目的】掌握關(guān)系的完整性約束。
【解題要點】關(guān)系的完整性約束指關(guān)系的某種約束條件,包括實體完整性、參照完整性和用戶定義的完整性。其中,前兩種完整性約束由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持。
【考點鏈接】關(guān)系的各種性質(zhì)。
(6)下劃線
【命題目的】考查C++語言的標識符的正確性。
【解題要點】C++語言標識符只能由數(shù)字,字母和下劃線組成,并且只能以字母和下劃線為開頭。
【考點鏈接】C++中的關(guān)鍵字不能用作標識符。
(7)2
【命題目的】C++存儲字符串與字符的不同。
【解題要點】計算機存儲一個字符用1個字節(jié),存儲字符串時,每個字符占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標記符′\0′。
【考點鏈接】如用戶不指定加入結(jié)束標記符′\0′,則系統(tǒng)會自動加入結(jié)束標記符′\0′。
(8)*(str+i)`str[i]
【命題目的】考查字符串指針。
【解題要點】str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用 *(str+i)來訪問字符串中的第i個元素,判斷是否是結(jié)束標志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到 *(str+i)的值為′\0′為止,也可以用下標的方式引用字符,如*(str+i)相當于str[i]。
【考點鏈接】C++中字符串指針的相關(guān)問題。
(9)0~for(i=0;i 【命題目的】for循環(huán)的使用方法。
【解題要點】本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應認*k的值為數(shù)組中的某一下標值,即*k=0。
【考點鏈接】本題采用冒泡法查找一次。
(10)類的成員對象
【命題目的】C++類中成員對象初始化的順序問題。
【解題要點】C++中類的成員對象比類的對象先初始化。
(11)cc.B::show();
【命題目的】關(guān)于C++中用加域名解決二義性的方法。
【解題要點】class A中有show()函數(shù),class B中也有show()函數(shù),class C繼承了class A和class B,產(chǎn)生二義性,這時C的對象cc必須用域名來確定調(diào)用的是哪個show函數(shù),因為答案是1 1,所以要加域名B::。
【考點鏈接】C++中二義性的解決方法。
(12)0~1
【命題目的】考查C++中運算符重載中用成員函數(shù)和友元函數(shù)重載。
【解題要點】C++中友元函數(shù)重載一元運算符要有一個參數(shù),重載二元運算符要有兩個參數(shù),而用成員函數(shù)重載時,重載一元運算符沒有參數(shù),重載二元運算符要有一個參數(shù)。
(13)T1 A(T1 a){return ++a;}
【命題目的】C++中函數(shù)模板的定義。
【解題要點】通過兩個實例知道該例中只有一種數(shù)據(jù)類型,所以在定義模板時只需定義一個模板參數(shù)T1。
【下半年全國計算機二級C++考試考前練習題答案及解析】相關(guān)文章:
2017計算機二級C++考前練習題及答案09-11
2017計算機二級C++考前練習題及答案09-27
2015下半年全國計算機考試二級C++預測卷答案及解析10-05
2015下半年全國計算機二級C++預測題答案及解析09-04
全國計算機二級考試C++精選試題及答案08-17