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