2016年計算機二級《C++》模擬練習題及答案

才智咖 人氣:2.23W

1每個C++程式中都必須有且僅有一個(  )。

2016年計算機二級《C++》模擬練習題及答案

A.類B.預處理命令C.主函式D.語句

參考答案:C

參考解析:每個C++程式中都要有且僅有一個主函式,該函式是程式的入口,而語句、預處理命令和函式及類在程式中都可以有多個。

2演算法的空間複雜度是指(  )。

A.演算法在執行過程中所需要的計算機儲存空間

B.演算法所處理的資料量

C.演算法程式中的語句或指令條數

D.演算法在執行過程中所需要的臨時工作單元數

參考答案:A

參考解析:一個演算法的空間複雜度,一般是指執行這個演算法所需要的記憶體空間。

3對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是(  )。

A.快速排序B.氣泡排序C.直接插入排序D.堆排序

參考答案:D

參考解析:首先知道有哪些排序的方法及各種排序方法在最壞情況下需要比較的次數,氣泡排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nl0g2n)。

4資料庫系統的三級模式不包括(  )。

A.概念模式B.內模式C.外模式D.資料模式

參考答案:D

參考解析:資料庫三級模式包括:概念模式、內模式、外模式。

5SQL語言又稱為(  )。

A.結構化定義語言

B.結構化控制語言

C.結構化查詢語苦

D.結構化操縱語言

參考答案:C

參考解析:SQL語言的全稱為StructuredQueryLanguage,它是一種介於關係代數與關係演算之間的結構化查詢語言,是一種面向資料庫的通用資料處理語言規範。它包含資料查詢語言、資料操縱語言、資料定義語言和資料控制語言四個部分。

6資料處理的最小單位是(  )。

A.資料B.資料元素C.資料項D.資料結構

參考答案:C

7假定MyClass為一個類,那麼下列的函式說明中,(  )為該類的解構函式。

~MyClass();B.~MyC|ass(intn);ass();D.~MyClass();

參考答案:D

參考解析:C++語言中解構函式為符號“~”加類名,且解構函式沒有返回值和引數,故前不加void關鍵字。所以正確的形式應該是~MyClass()。第7題 筆記記錄我的筆記(0) | 精選筆記(1)選擇筆記標籤:試題內容(1)答案解析(0)

8有以下結構體說明和變數的定義,且指標P指向變數a,指標q指向變數b。則不能把結點b連線到結點a之後的語句是(  )。

structnode

{chardata;

structnode*next;

}a,b,*p=&a,*q=&b;

=q;=&b;C.p->next=&b;D.(*p)=q;

參考答案:B

9若有表示式“(w)?(--x):(++y)”,則其中與w等價的表示式是(  )。

A.w==1B.w==0C.W!=1D.W!=0

參考答案:D

參考解析:本題考查三目運算等。條件表示式的`格式為a?b;c。它的含義是,當a為真時,取b的值,否則取c的值。在C語言程式中“為真”即“不等於零”,“為假”即等於0。所以和w等價的表示式是w非零。

10有如下函式模板宣告:

template

TMax(Ta,Tb){return(a>b)?a:b;}

下列對函式模板Max(  )的呼叫中錯誤的是(  )。

(3.5,4.5)(3.5,4)(35,4.5)(3.5,4)

參考答案:B

參考解析:本題考查函式模板的引用。引用模板函式和引用一般函式在語法形式上基本相同。需要注意的是,說明一個函式模板後,當編譯系統發現有一個對應的函式呼叫時,將根據實參中的型別來確認是否呼叫函式模板中的對應形參。本題選項B中,編譯系統從第一個引數“3.5”獲得資訊“double型資料”和從第二個引數獲得資訊“int型資料”,兩者矛盾。

11C++語言中關於建構函式的說法正確的是(  )。

A.建構函式的函式名不必和類名相同

B.建構函式只能有一個

C.每個類必定有建構函式

D.建構函式必有返回值

參考答案:C

參考解析:本題考查建構函式的概念。建構函式可以被過載,函式名必須和類名相同;建構函式可以有一個,也可以有多個;建構函式沒有返回值。

12下列描述中,錯誤的是(  )。

A.公有繼承時基類中的公有成員在派生類中仍是公有成員

B.公有繼承時基類中的保護成員在派生類中仍是保護成員

C.保護繼承時基類中的公有成員在派生類中仍是公有成員

D.保護繼承時基類中的保護成員在派生類中仍是保護成員

參考答案:C

參考解析:保護繼承時,類成員的訪問級別只能降低為保護模式,因此即使是基類的公有成員也被縮小為保護模式。

13結構化程式所要求的基本結構不包括(  )。

A.順序結構跳轉C.選擇(分支)結構D.重複(迴圈)結構

參考答案:B

參考解析:結構化程式設計的三種結構是順序、分支和迴圈,不包括goto跳轉,它只是分支結構的一種,也是一個關鍵字。

14在E—R圖中,用來表示實體聯絡的圖形是(  )。

A.橢圓圖B.矩形C.菱形D.三角形

參考答案:C

參考解析:E—R圖中用矩形表示實體(等同於表),用橢圓形表示實體的屬性(等同於表中欄位),用菱形表示實體關係(等同於外來鍵)。

15下列資料結構中,屬於非線性結構的是(  )。

A.迴圈佇列B.帶鏈佇列C.二元樹D.帶鏈棧

參考答案:C

參考解析:佇列是一種允許在一端進行插入,而在另一端進行刪除的線性表。棧也是一種特殊的線性表,其插入與刪除只能在線性表的一端進行。

16對長度為n的線性表進行順序查詢,在最壞情況下所需要的比較次數為(  )。

2nB.n/.n+1

參考答案:C

參考解析:對線性表進行順序查詢,最壞情況下,如果從表頭進行查詢,要查詢到表尾才能得出結果,因此需要比較n次。

17下面程式的執行結果為(  )。#include

voidswap(int&a,intb)

{

inttemp;

temp=a++;

a=b:

b=temp:

}

voidmain()

{

inta=2,b=3;

swap(a,b);

cout<

}

A.2,3B.3,2C.2,2D.3,3

參考答案:D

參考解析:本題考查引用呼叫,因為函式swap引用呼叫引數a,所以在swap函式中a的變化會改變主函式中a的值,即a自加1。但b的值並未改變。

18若有以下程式:

#include

usingnamespacestd;

classBase

{public:

Base()

{x=0;}

intx;};

classDerivedl:virtualpublicBase

{public:

Derivedl()

{x=10;}};

classDerived2:virtua11publicBase

{public:

Derived2()

{x=20;}};

classDerived:publicDerivedl,protectedDerived2{};intmain()

{Derivedobj;

cout<

return0;}

該程式執行後的輸出結果是(  )。

A.20B.30C.10D.0

參考答案:A

參考解析:本題考查虛基類的應用。雖然Derivedl和Derived2都是由共同的基類x派生而來的,但由於引入了虛基類,使得它們分別對應基類的不同副本。這時資料成員x只存在一份副本,不論在類Derivedl中修改,還是在Derived2中修改,都是直接對這唯一副本進行操作。本題程式執行語句“Derivedobj;”時.就會先調虛基類Base的建構函式,使得X=0,然後執行類Derivedl的建構函式使得x=10,再執行類Derived2的建構函式,使得x=20。最後輸出x的值為20。

19下列選項中不合法的識別符號是(  )。

.&aD.-00

參考答案:C

參考解析:識別符號的概念只能由數字、字母和下畫線組成,並且只能以字母和下畫線開頭,所以選項C不正確。

20考慮函式原型voidtest(inta,intb=7,charz='*'),下面的函式呼叫中,屬於不合法呼叫的是(  )。

(5);(5,8);(6,'#');(0,0,'*');

參考答案:C

參考解析:題中函式宣告帶有預設引數,那麼在C選項的呼叫中,將會把字元型實參#賦值給整型形參b,這不符合引數傳遞規則。