- 相關(guān)推薦
2015下半年全國計算機等級考試二級C++模擬試題答案及解析
一、選擇題
(1)B
解析: 所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點都有兩個葉子結(jié)點。這就是說,在滿二叉樹中,層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點,且深度為m的滿二叉樹有2m-1個結(jié)點。
(2)D
解析: 前序遍歷的第一個結(jié)點a為樹的根結(jié)點;中序遍歷中a的左邊的結(jié)點為a的左子樹,a右邊的結(jié)點為a的右子樹;再分別對a的左右子樹進行上述兩步處理,直到每個結(jié)點都找到正確的位置。
(3)A
解析: 一些較流行的程序語言允許過程的遞歸調(diào)用。遞歸調(diào)用就是過程調(diào)用本身。遞歸實現(xiàn)的是:當過程每一次執(zhí)行后,都能返回到最近一次調(diào)用它的過程中。這樣各調(diào)用點之間形成一種后進先出關(guān)系,而棧結(jié)構(gòu)正適合來存儲這些調(diào)用點。
(4)B
解析: 軟件工程的目標是,在給定的成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品;谶@一目標,軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。
(5)B
解析: 軟件工程鼓勵研制和采用各種先進的軟件開發(fā)方法、工具和環(huán)境。工具和環(huán)境的使用又進一步提高了軟件的開發(fā)效率、維護效率和軟件質(zhì)量。
(6)D
解析: 使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
(7)C
解析: 數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。
(8)B
解析: 內(nèi)模式(Internal Schema)又稱物理模式(Physical Schema),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。
(9)B
解析: 數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
(10)B
解析: 數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱DBMS)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
(11)C
解析: C++語言中的類是可以組成層次結(jié)構(gòu)的,類是用于描述事物的屬性和對事物的操作,類與類之間有相對的獨立性,但其可以通過一些方法進行信息的通信。
(12)B
解析: C++語言中語句的結(jié)束符是分號。
(13)A
解析: 關(guān)于C++語言,我們應(yīng)該了解以下必須要掌握的基礎(chǔ)知識:
、 C++程序是由類構(gòu)成的。② 一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。③ 一個類由兩部分組成:類成員變量和類成員函數(shù)。④ 一個C++程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或?qū)懺谝恍┖瘮?shù)之前,在另一些函數(shù)之后)。⑤ C++程序在書寫上,表現(xiàn)形式比較自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在幾行上。每個語句和數(shù)據(jù)定義的最后必須有一個分號。⑥ 可以用/*……*/和//對C++語言的程序的任何部分作注釋。
(14)B
解析: "++","--"運算符不能用于常量。
(15)A
解析: 在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},在執(zhí)行for循環(huán)結(jié)構(gòu)后,將b[6],b[7]……b[9]的值相加,結(jié)果為1+2+9+10=22。注意:在計算累加和時,應(yīng)將累加變量賦值為零。
(16)B
解析: do-while語句的一般形式是
do
{
語句
} while (表達式);
特點是:"直到型"循環(huán)結(jié)構(gòu)。先執(zhí)行一次"語句",判"表達式",當"表達式"為非0,再執(zhí)行"語句",直到"表達式"的值為0時停止執(zhí)行語句。在一般情況下,用while和do-while語句解決同一問題時,若二者的循環(huán)體部分是一樣的,它們的結(jié)果也一樣。但當while后面的"表達式"一開始就為"假"時,兩種循環(huán)的結(jié)果不同。這是因為此時while循環(huán)的循環(huán)不被執(zhí)行,而do-while循環(huán)的循環(huán)體被執(zhí)行一次。本題的關(guān)鍵是兩個加數(shù)分別能被13和11整除,在i=0時,直接將316賦值給k,當k的值為0時,則不必執(zhí)行循環(huán),將執(zhí)行j=k/11語句,輸出結(jié)果,所以該表達式合理的條件是k。
(17)C
解析: 在給數(shù)組賦值時,可以用一個字符串作為初值,這種方法直觀,方便而且符合人們的習慣。數(shù)組array的長度不是5,而是6,這點必須要注意。因為字符串常量的最后由系統(tǒng)加上一個′\0′,因此,上面的初始化與下面的等價:
char array[]={′C′,′h′,′i′,′n′,′a′,′\0′};
(18)D
解析: 通常,引用一個數(shù)組元素可以用下標法,如a[p-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。
(19)C
解析: cout << x++;語句中,程序先輸出x的值,然后再加1,所以結(jié)果為1,此時x的值為2;在int x=0;x+=y*2;語句中,將0的值賦給x,然后再運算x+=y*2的值,結(jié)果為x=6(此時x的值為局部變量),y的值不變,在最后在執(zhí)行了x語句后的值,所以應(yīng)為2。
(20)D
解析: 本題首先通過第一個while循環(huán)計算字符串a(chǎn)的長度,再通過第二個循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長度。
(21)B
解析: 首先,當i=0時,數(shù)組中的位置是a[2][0]=7,當然,如果用排除法的話,就不用考慮后面的循環(huán)了,因為在4個選項中,第1個數(shù)為7的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則cout函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。
(22)B
解析: C++語言中全局變量是任何函數(shù)都可以改變的量,靜態(tài)變量的有效范圍在定義它的類中,而普通的變量的有效性只在使用它的函數(shù)中,在本題中c為全局變量,b為靜態(tài)變量,a為普通變量,b和c在類A的對象a1和a2中都自加1。所以b,c為2,a為1。
(23)B
解析: C++語言中一個派生類能不能繼承基類的所有數(shù)據(jù)成員受繼承方式的限制。
(24)C
解析: 構(gòu)造函數(shù)是一類特殊的函數(shù),其特點是函數(shù)名與類同名,沒有返回值,也可以省略不寫,還可以對類中的成員進行初始化。
(25)D
解析: C++中用友元函數(shù)重載運算符至少有一個參數(shù),重載一目運算符要有一個參數(shù),重載二目運算符要有兩個參數(shù)。
(26)D
解析: C++語言中用成員函數(shù)重載時,重載一目運算符沒有參數(shù),重載二目運算符要有一個參數(shù)。
(27)D
解析: 在C++中規(guī)定如果一個類被聲明為類模板,那么其中的所有成員函數(shù)就都成為了模板函數(shù)。
(28)B
解析: 表示在輸出時顯示小數(shù)位,和在文件輸入時判斷文件尾的函數(shù)分別是showpoint()和eof()。
(29)A
解析: 本題中(a
(30)C
解析: 如果在子類中要訪問父類的函數(shù)應(yīng)用"∷"運算符。
(31)D
解析: 運算符"%"的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識點是x%=k等價于x=x%k。
(32)B
解析: 右移運算符">>"是雙目運算符。其功能是把">>"左邊的運算數(shù)的各二進位全部右移若干位,">>"右邊的數(shù)指定移動的位數(shù)。例如:設(shè)a=15,a>>2 表示把000001111右移為00000011(十進制3)。
(33)B
解析: 要把結(jié)點b連接到結(jié)點a之后,必須把b 的地址給a的next指針,選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應(yīng)該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址,所以正確。
(34)D
解析: 一個類的友元函數(shù)對類成員的訪問能力等同于類的成員函數(shù),即能訪問類的所有成員。
(35)C
解析: 該函數(shù)的調(diào)用方式是strcpy(字符數(shù)組, 字符串)其中"字符串"可以是串常量,也可以是字符數(shù)組。函數(shù)的功能是將"字符串"完整地復(fù)制到"字符數(shù)組"中,字符數(shù)組中原有內(nèi)容被覆蓋。使用該函數(shù)時注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過來的字符串。復(fù)制時,連同結(jié)束標志′\0′一起復(fù)制。②不能用賦值運算符"="將一個字符串直接賦值給一個字符數(shù)組,只能用strcpy()函數(shù)來處理。strcat(字符數(shù)組, 字符串)功能是把"字符串"連接到"字符數(shù)組"中的字符串尾端,并存儲于"字符數(shù)組"中。"字符數(shù)組"中原來的結(jié)束標志,被"字符串"的第一個字符覆蓋,而"字符串"在操作中未被修改。使用該函數(shù)時注意:①由于沒有邊界檢查,編程者要注意保證"字符數(shù)組"定義得足夠大,以便容納連接后的目標字符串;否則,會因長度不夠而產(chǎn)生問題。②連接前兩個字符串都有結(jié)束標志′\0′,連接后"字符數(shù)組"中存儲的字符串的結(jié)束標志′\0′被舍棄,只在目標串的最后保留一個′\0′。
二、填空題
(1)前件
解析: 在樹形結(jié)構(gòu)中,每一個結(jié)點只有一個前件,稱為父結(jié)點,沒有前件的結(jié)點只有一個,稱為樹的根結(jié)點;每一個結(jié)點可以有多個后件,它們都稱為該結(jié)點的子結(jié)點。沒有后件的結(jié)點稱為葉子結(jié)點。
(2)數(shù)據(jù)結(jié)構(gòu)
解析: 結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structured analysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jackson system development method)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Data structured system development method)。
(3)類
解析: 面向?qū)ο竽P椭,最基本的概念是對象和類。對象是現(xiàn)實世界中實體的模型化;將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。
(4)降低復(fù)雜性
解析: 模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程,由此分解來降低復(fù)雜性。
(5)邏輯數(shù)據(jù)模型
解析: 數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(data model)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。
數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptual data model)、邏輯數(shù)據(jù)模型(logic data model)、物理數(shù)據(jù)模型(physical data model)。
(6)從基類繼承的成員
解析: 派生類的成員由繼承的成員和自己定義的成員組成。
(7)0
解析: 本題的關(guān)鍵在于對變量c的賦值運算:
d=(a>b>c)
d=(5>4>3)
先算5>4,為真,得1,即:d=(1>3),此時1>3,為假,得0。
(8)10
解析: 該for語句以i為0、j為10初始化,循環(huán)條件是i<=j,每次循環(huán)后i增1、j減1,循環(huán)體是將i與j的和賦給k。這樣變量k將保存的是最后一次賦給它的值。一次循環(huán)后i為1、j為9,二次循環(huán)后i為2、j為8,……,五次循環(huán)后i為5、j為5,繼續(xù)第六次循環(huán),將i與j的和10存于k后,i為6、j為4,結(jié)束循環(huán)。所以循環(huán)執(zhí)行后k為10。
(9)friend void A();
解析: C++中類的友元函數(shù)在聲明時應(yīng)在該函數(shù)前面加上關(guān)鍵字friend,同樣如果要聲明一個類為另一個類的友元類也要在前面類名前加上friend。
(10)派生類
解析: 如果類A為類B的基類,那么類B稱為類A的派生類。
(11)operator+(x,y)
解析: C++中用成員函數(shù)重載x+y為x.operator+(y);,用友元函數(shù)重載x+y為operator+(x,y)。
(12)a1.x=1;~a1.y=2;~a1.z=3;
解析: 通過程序的結(jié)果知道數(shù)據(jù)類型是int,所以調(diào)用時聲明模板實參為int的,再對x,y,z進行賦值。
(13)509.123457
解析: fixed的意義是在小數(shù)點后保留六位,所以fixed輸出為509.123457。
【下半年全國計算機等級考試二級C++模擬試題答案及解析】相關(guān)文章:
2015下半年全國計算機二級C++全真模擬試題答案及解析03-08
2015下半年全國計算機等級考試二級C++模擬試題03-30
全國計算機等級考試二級C++筆試題02-06
2015年9月計算機考試二級C++模擬試題答案及解析05-22
全國計算機等級考試二級C++筆試真題05-01