- 相關推薦
2016年12月計算機二級C++備考題及答案
為了幫助大家提高計算機考試成績,今天百分網(wǎng)小編特地為大家收集了以下2016年12月計算機二級C++備考題及答案,歡迎閱讀!
單選題一
(1)循環(huán)鏈表的主要優(yōu)點是
A)不再需要頭指針了
B)從表中任一結點出發(fā)都能訪問到整個鏈表
C)在進行插入、刪除運算時,能更好的保證鏈表不斷開
D)已知某個結點的位置后,能夠容易的找到它的直接前件
(2)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
A)ABCED
B)DCBEA
C)DBCEA
D)CDABE
(3)n個頂點的強連通圖的邊數(shù)至少有
A)n-1
B)n(n-1)
C)n
D)n+1
(4)在結構化程序設計思想提出之前,在程序設計中曾強調程序的效率。與程序的效率相比,人們更重視程序的
A)安全性
B)一致性
C)可理解性
D)合理性
(5)模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準則是模塊的
A)抽象和信息隱蔽
B)局部化和封裝化
C)內(nèi)聚性和耦合性
D)激活機制和控制方法
(6)軟件開發(fā)的結構化生命周期方法將軟件生命周期劃分成
A)定義、開發(fā)、運行維護
B)設計階段、編程階段、測試階段
C)總體設計、詳細設計、編程調試
D)需求分析、功能定義、系統(tǒng)設計
(7)在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結構。此方法將程序看做是
A)路徑的集合
B)循環(huán)的集合
C)目標的集合
D)地址的集合
(8)在數(shù)據(jù)管理技術發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)具有
A)特定的數(shù)據(jù)模型
B)數(shù)據(jù)無冗余
C)數(shù)據(jù)可共享
D)專門的數(shù)據(jù)管理軟件
(9)數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是
A)概念設計和邏輯設計
B)模式設計和內(nèi)模式設計
C)內(nèi)模式設計和物理設計
D)結構特性設計和行為特性設計
(10)實體是信息世界中廣泛使用的一個術語,它用于表示
A)有生命的事物
B)無生命的事物
C)實際存在的事物
D)一切事物
參考答案:
(1)B
解析: 循環(huán)鏈表就是將單向鏈表中最后一個結點的指針指向頭結點,使整個鏈表構成一個環(huán)形,這樣的結構使得從表中的任一結點出發(fā)都能訪問到整個鏈表。
(2)B
解析: 棧操作原則上"后進先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。
(3)C
解析: 在有向圖中,若任意兩個頂點都連通,則稱該圖是強連通圖,這樣的有向圖的形狀是環(huán)狀,因而至少應有n條邊。
(4)C
解析: 結構化程序設計方法設計出的程序具有明顯的優(yōu)點。其一,程序易于理解、使用和維護;其二,提交了編程工作的效率,降低了軟件開發(fā)成本。其中,人們更重視前者。
(5)C
解析: 模塊的獨立程序是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。
(6)A
解析: 通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。
(7)A
解析: 軟件的白盒測試方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。
(8)A
解析: 在文件系統(tǒng)中,相互獨立的記錄其內(nèi)部結構的最簡單形式是等長同格式記錄的集合,易造成存儲空間大量浪費,不方便使用。而在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)是結構化的,這種結構化要求在描述數(shù)據(jù)時不僅描述數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關系,這正是通過采用特定的數(shù)據(jù)模型來實現(xiàn)的。
(9)A
解析: 數(shù)據(jù)庫設計包括數(shù)據(jù)庫概念設計和數(shù)據(jù)庫邏輯設計兩個方面的設計內(nèi)容。
(10)C
解析: 實體是客觀存在且可以相互區(qū)別的事物。實體可以是具體的對象,如一個學生,也可以是一個抽象的事件,如一次出門旅游等。因此,實體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。
單選題二
(1)以下都是C++語言標識符的是
A)dsfa,df4,f$
B)huhj,a^,k2
C)3k,h,j_9
D)_ok,jk,k8
(2)C++語言中用于定義類的關鍵字是
A)class
B)struct
C)default
D)sizeof
(3)設以下變量均為int類型,則值不等于7的表達式是
A)(x=y=6,x+y,x+1)
B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)
D)(y=6,y+1,x=y,x+1)
(4)以下程序的輸出結果是
#include
void main()
{ int a=21,b=11;
cout << --a+b;}
A)30
B)31
C)32
D)33
(5)while 和do-while循環(huán)的主要區(qū)別是
A)do-while的循環(huán)體至少無條件執(zhí)行一次
B)while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴格
C)do-while允許從外部轉到循環(huán)體內(nèi)
D)do-while 的循環(huán)體不能是復合語句
(6)與 y=(x>0?1:x<0?-1:0);的功能相同的if語句是
A)if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C)y=-1;
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
(7)若二維數(shù)組a有m列,則計算任一元素a[i][j]在數(shù)組中相對位置的公式為 (假設a[0][0]位于數(shù)組的第一個位置上)
A)i*m+j
B)j*m+i
C)i*m+j-1
D)i*m+j+1
(8)下面程序段的運行結果是
#include
void main()
{ char *s="abcde";
s+=2;
cout << &s;}
A)cde
B)字符′c′
C)字符′c′的地址
D)無確定的輸出結果
(9)下面敘述不正確的是
A)派生類一般都用公有派生
B)對基類成員的訪問必須是無兩義性的
C)賦值兼容規(guī)則也適用于多重繼承的組合
D)基類的公有成員在派生類中仍然是公有的
(10)下面程序應能對兩個整型變量的值進行交換。以下正確的說法是
#include
void swap(int p,int q)
{ int t;
t=p;
p=q;
q=t;}
void main()
{ int a=10,b=20;
cout << a << " " << b;
swap(&a,&b);
cout << a << " " << b;}
A)該程序完全正確
B)該程序有錯,只要將語句swap(&a,&b);中的參數(shù)改為a,b即可
C)該程序有錯,只要將swap()函數(shù)中的形參p和q以及t均定義為指針(執(zhí)行語句不變)即可
D)以上說法都不對
答案解析:
(1)D
解析: C++語言標識符只能由數(shù)字,字母和下劃線組成,并且只能以字母和下劃線為開頭。
(2)A
解析: C++中類定義的關鍵字是class。class不能大寫。
(3)C
解析: C++語言中逗號","也是一種運算符,稱為逗號運算符。其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:表達式1, 表達式2,其求值過程是分別求兩個表達式的值,并以表達式2的值作為整個逗號表達式的值。逗號表達式的一般形式可以擴展為:表達式1,表達式2,表達式3,…,表達式n,它的值為表達式n的值。
(4)B
解析: 自減運算符位于變量之前時,先使變量的值減1,再進行運算。
(5)A
解析: while是先判斷條件再執(zhí)行語句;do-while則是先執(zhí)行一次語句再判斷條件,從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語句,這正是二者主要區(qū)別。
(6)A
解析: 條件運算符要求有三個操作對象,它是C++語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3,先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。本題中用了兩次三目運算符。
(7)A
解析: a[i][j]元素之前有i行元素(每行有m個元素),在a[i][j]的前面還有j個元素,因此a[i][j]之前共有i*m+j個元素。
(8)C
解析: 對于字符串指針,其保留的是整個串的首地址,即為第一個字符的起始地址,當該指針做算術運算時,就是該指針根據(jù)其類型向后移動相應的存儲空間。
(9)D
解析: C++語言中如果基類的成員是公有的,它被繼承后在子類中該成員可能是公有的,也可能不是,主要看繼承的權限。
(10)D
解析: 本題應該把swap()函數(shù)改成這樣:swap(int *p,int *q){int t; t=*p;*p=*q;*q=t;}執(zhí)行程序時,先將a的地址傳遞給指針變量p,b的地址傳遞給指針變量q,然后將*p(a的值)的值傳遞給t,將*q(b的值)傳遞給*p,將t的值傳遞給*q,從而將a值和b值互換。
【12月計算機二級C++備考題及答案】相關文章: