糯米文學吧

位置:首頁 > 計算機 > 計算機二級

計算機二級C++模擬試題及答案

在日常學習和工作生活中,我們最離不開的就是試題了,試題可以幫助學校或各主辦方考察參試者某一方面的知識才能。那麼你知道什麼樣的試題才能有效幫助到我們嗎?下面是小編收集整理的計算機二級C++模擬試題及答案,僅供參考,希望能夠幫助到大家。

計算機二級C++模擬試題及答案

計算機二級C++模擬試題及答案1

一、選擇題

1.樹是結點的集合,它的根結點數目是( )

A.有且只有1

B.1或多於1

C.0或1

D.至少2

參考答案】A

2.在設計程式時,應採納的原則之一( )

A.不限制goto語句的使用

B.減少或取消註解行

C.程式越短越好

D.程式結構應有助於讀者理

【參考答案】D

3.下列敘述中,不屬於軟體需求規格說明書的作用的是( )

A.便於使用者、開發人員進行理解和交流

B.反映出使用者問題的結構,可以作為軟體開發工作的基礎和依據

C.作為確認測試和驗收的依據

D.便於開發人員進行需求分析

【參考答案】D

4.單個使用者使用的資料檢視的描述稱為( )

A.外模式

B.概念模式

C.內模式

D.儲存模式

【參考答案】A

語言又稱為( )

A.結構化定義語言

B.結構化控制語言

C.結構化查詢語言

D.結構化操縱語言

【參考答案】C

6.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其後序遍歷的結點訪問順序是( )

efha

cfha

echf

hfca

【參考答案】D

7.軟體工程的理論和技術性研究的內容主要包括軟體開發技術和( )

A.消除軟體危機

B.軟體工程管理

C.程式設計自動化

D.實現軟體可重用

【參考答案】B

8.在軟體測試設計中,軟體測試的主要目的是( )

A.實驗性執行軟體

B.證明軟體正確

C.找出軟體中全部錯誤

D.發現軟體錯誤而執行程式

【參考答案】D

9.索引屬於( )

A.模式

B.內模式

C.外模式

D.概念模式

【參考答案】B

10.資料庫系統的核心是( )

A.資料庫

B.資料庫管理系統

C.模擬模型

D.軟體工程

【參考答案】B

11.下面關於類和物件的描述中,錯誤的是( )

A.類就是C語言中的結構體型別,物件就是C語言中的結構體變數

B.類和物件之間的關係是抽象和具體的關係

C.物件是類的例項,一個物件必須屬於一個已知的類

D.類是具有共同行為工的若干物件的`統一描述體

【參考答案】A

12.設inta=10,b=11,c=12;,表示式(a+b)

A.2

B.0

C.-2

D.1

【參考答案】B

13.下列語句中不是死迴圈的是( )

=10;

(inti=1;i<10;i++)

=0;

=1;

while(1){do{for(;;)

{i--;i++;i=i+1;

i--;}}while(i>=0);

if(i==1)break;

}

【參考答案】A

14.下面關於陣列的描述錯誤的是( )

A.在C++語言中陣列的名字就是指向該陣列第一個元素的指標

B.長度為n的陣列,下標的範圍是0~n-1

C.陣列的大小必須在編譯時確定

D.陣列只能通過值引數和引用引數兩種方式傳遞給函式

【參考答案】D

15.下面的哪個選項不能作為函式的返回型別?( )

【參考答案】C

16.下列程式的輸出結果為( )

include

intfunc(intn)

{if(n<1)return1;

elsereturnn+func(n-1);

return0;}

voidmain( )

{cout<

A.0

B.10

C.15

D.16

【參考答案】D

17.以下程式中,錯誤的行為( )

ude

sA

3.{

ic:

=2;

6.A(intval){cout<

7.~A( ){}

8.{;

main( )

10{

(0);

12.}

A.5

B.6

C.7

D.11?

【參考答案】A

18.下面程式的執行結果為( )

includeclassA{intnum;public:A(inti){num=i;}A(A&a){num=++;}voidprint( ){cout<};voidmain( {Aa(1),b(a);t( );

t( );

A.11

B.12

C.21

D.22

【參考答案】C

19.如果類A被說明成類B的友元,則( )

A.類A的成員即類B的成員

B.類B的成員即類A的成員

C.類A的成員函式不得訪問類B的成員

D.類B不一定是類A的友元

【參考答案】D

20.建立派生類物件時,3種建構函式分別是a(基類的建構函式)、b(成員物件的建構函式)、c(派生類的建構函式)這3種建構函式的呼叫順序為( )

【參考答案】A

21.下面關於模板的描述,錯誤的是( )

A.函式模板和類模板的引數可以是任意的資料型別

B.類模板不能直接使用,必須先例項化為相應的模板類,然後定義了模板類的物件後才能使用

C.函式模板不能直接使用,需要例項化為模板函式後才使用

D.類模板的成員函式都是模板函式

【參考答案】A

22.下面程式的執行結果是( )

include

voidmain( )

{

intnum=1;

int&ref=num;

ref=ref+2;

cout<

num=num+3;

cout<

}

A.13

B.16

C.36

D.33

【參考答案】C

23.下列程式的執行結果為( )

include

inti=0;

classA{

public:

A( ){i++;}

};

voidmain( )

{Aa,b[3],xc;

c=b;

cout<

A.2

B.3

C.4

D.5

【參考答案】C

24.下列字串中可以用C++語言識別符號的是( )

A._1234

~~bar

ua

D.34var

【參考答案】A

25.下列語句的輸出結果( )

cout<

A.5

B.14

C.8

D.輸出項不合法,無正常輸出

【參考答案】A

26.若有如下語句( )

include

voidmain( )

{intx=3;

do{

x=x-2;

cout<

}while(!(--x));

}

則上面程式段

A.輸出的是1

B.輸出的是1和-2

C.輸出的是3和0

D.是死迴圈

【參考答案】B

27.以下程式中呼叫cin函式給變數a輸入數值的方法是錯誤的,其錯誤原因是( )

include

voidmain( )

{intxp,xq,a,b;

p=&a;

cout<<″inputa:″;

cin>>p;}

表示的是指標變數P的地址

B.p表示的是變數a的地址,而不是變數a的值

表示的是指標變數p的值

只能用來說明p是一個指標變數

【參考答案】B

28.有以下程式

include

voidfun(inta,intb,intc)

{a=456,b=567,c=678;}

voidmain( )

{intx=10,y=20,z=30;

fun(x,y,z);

輸出結果是( )

A.30,20,10

B.10,20,30

C.456,567,678

D.678,567,456

【參考答案】B

29.下列定義中p指向的地址可更改,但xp不能夠更改的是( )

tintxP

constp;

tintxconstp;

p;

計算機二級C++模擬試題及答案2

1.若有以下陣列說明,則i=10;a[a[i]]元素數值是(C )。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A、10

B、9

C、6

D、5

先算a[a[i]]內層的a[i],由於i=10,因此a[i]即a[10].

a[10]對應下面陣列中的元素為9. 因此a[a[i]]即為a[9]

a[9]對應下面陣列中的元素為6. 因此a[9]即為6

2.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則陣列a的第一維的大小為: ( B )

A、2

B、3

C、4

D、3 6 9

二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行

3.對二維陣列的正確定義是(C )

詳見教材P149~152,二維陣列的定義、初始化

型別符 陣列名 [常量表達式][常量表達式]

二維陣列可以看做是矩陣

型別符是指陣列中陣列元素的型別;陣列名要符合識別符號命名規則;第一個常量表達式是指陣列的行數;第二個常量表達式是指陣列的列數;常量表達式的值只能是整數,不可以是變數,而且從1開始計數。

一維陣列初始化時可以省略陣列長度

二維陣列初始化時可以省略行數,但不能省略列數

選項A,B,都省略了列數

選項D,不符合二維陣列定義的一般形式,行、列常量表達式應該放在不同的[]中

A、int a[ ][ ]={1,2,3,4,5,6};

B、int a[2] []={1,2,3,4,5,6};

C、int a[ ] [3]={1,2,3,4,5,6};

D、int a[2,3]={1,2,3,4,5,6};

4.已知int a[3][4];則對陣列元素引用正確的是__C___

A、a[2][4]

B、a[1,3]

C、a[2][0]

D、a(2)(1)

5.C語言中函式返回值的型別是由 A 決定的.

A、函式定義時指定的型別

B、 return語句中的表示式型別

C、 呼叫該函式時的實參的資料型別

D、形參的資料型別

6. 在C語言中,函式的資料型別是指(A )

A、 函式返回值的資料型別

B、 函式形參的資料型別

C、 呼叫該函式時的實參的資料型別

D、任意指定的資料型別

7.在函式呼叫時,以下說法正確的是( B )

A、函式呼叫後必須帶回返回值

B、實際引數和形式引數可以同名

C、函式間的資料傳遞不可以使用全域性變數

D、主調函式和被調函式總是在同一個檔案裡

8. 在C語言中,表示靜態儲存類別的關鍵字是: ( C )

A、 auto

B、 register

C、static

D、extern

9.未指定儲存類別的變數,其隱含的儲存類別為(A )。

A、auto

B、static

C、extern

D、register

10. 若有以下說明語句:

struct student

{ int num;

char name[ ];

float score;

}stu;

則下面的敘述不正確的是: (D )

A、 struct是結構體型別的關鍵字

B、 struct student 是使用者定義的結構體型別

C、 num, score都是結構體成員名

D、 stu是使用者定義的結構體型別名

11.若有以下說明語句:

struct date

{ int year;

int month;

int day;

}brithday;

則下面的敘述不正確的是__C___.

A、 struct是宣告結構體型別時用的關鍵字

B、 struct date 是使用者定義的結構體型別名

C、 brithday是使用者定義的結構體型別名

D、year,day 都是結構體成員名

12. 以下對結構變數stul中成員age的非法引用是 B

struct student

{ int age;

int num;

}stu1,xp;

p=&stu1;

A、

B、

C、 p->age

D、(xp)

13.設有如下定義:

struck sk

{ int a;

float b;

}data;

int xp;

若要使P指向data中的a域,正確的賦值語句是 C

A、 p=&a;

B、 p=datA、a;

C、p=&datA、a;

D、xp=datA、a;

14.設有以下說明語句:

typedef struct stu

{ int a;float b;} stutype;

則下面敘述中錯誤的是( D )。

A、struct是結構型別的關鍵字

B、struct stu是使用者定義的結構型別

C、a和b都是結構成員名

D、stutype是使用者定義的結構體變數名

15.語句int xp;說明了 C 。

A、p是指向一維陣列的指標

B、p是指向函式的指標,該函式返回一int型資料

C、p是指向int型資料的指標

D、p是函式名,該函式返回一指向int型資料的指標

16、以下語句的輸出結果是( D)。

int a=-1,b=4,k;

k=(+ +a<0)&&!(b - -<=0);

printf("%d,%d,%d ",k,a,b);

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

17、下列程式的輸出結果是(D )。

char xp1="abcd", xp2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

18、執行下面的程式後,a的值是(B )。

define SQR(X) XxX

main( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf("%d ",a); }

A. 10

B. 1

C. 9

D. 0

19、設A為存放(短)整型的一維陣列,如果A的首地址為P,那麼A中第i 個元素的地址為( B)。

A.P+ix2

B. P+(i-1)x2

C. P+(i-1)

D. P+i

20、下列程式執行後輸出的結果是( A)。

int d=1;

fun (int p)

{ int d=5;

d + =p + +;

printf("%d,",d); }

main( )

{ int a=3;

fun(a);

d + = a + +;

printf("%d ",d); }

A. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

21、表示式:10!=9的值是(D )。

A. true

B. 非零值

C. 0

D. 1

22、若有說明: int i,j=7, xp=&i;, 則與i=j; 等價的語句是( B)。

A. i= xp;

B. xp=x&j;

C. i=&j;

D. i=x xp;

23、不能把字串:Hello!賦給陣列b的語句是( B)。

A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};

B. char b[10]; b="Hello!";

C. char b[10]; strcpy(b,"Hello!");

b[10]="Hello!";

24、在C程式中有如下語句:char xfunc(int x,int y); 它是(C )。

A. 對函式func的定義。

B. 對函式func的呼叫。

C.對函式func的原型說明。

D. 不合法的。

25、以下程式的輸出結果是( D)。

char str[15]=”hello!”;

printf(“%d ”,strlen(str));

A. 15

B. 14

C. 7

D. 6

26[單選題] 以下敘述中正確的是(  )

A.使用者自己定義的函式只能呼叫庫函式

B.實用的C語言源程式總是由一個或多個函式組成

C.不同函式的形式引數不能使用相同名稱的'識別符號

D.在C語言的函式內部,可以定義區域性巢狀函式

參考答案:B

參考解析:A選項中,”使用者自己定義的函式只能呼叫庫函式”描述是不正確的,也可以呼叫自定義函式;C選項中,對於不同函式的形式引數可以使用相同名稱的識別符號;D選項中,關於函式的定義不可以巢狀,但函式的呼叫可以巢狀。因此B選項正確。

27[單選題] 以下關於C語言資料型別使用的敘述中錯誤的是( )。

A.若要處理如“人員資訊”等含有不同型別的相關資料,應自定義結構體型別

B.若要儲存帶有多位小數的資料,可使用雙精度型別

C.若只處理“真”和“假”兩種邏輯值,應使用邏輯型別

D.整數型別表示的自然數是準確無誤差的

參考答案:C

參考解析:C語言中沒有邏輯型別,所以c錯誤。若要儲存帶有多位小數的資料,可以用單精度型別也可以用雙精度型別。處理包含不同型別的相關資料可以定義為結構體型別。整數型別可以無誤差的表示自然數。

28[單選題] 下面選項中關於編譯預處理的敘述正確的是

A.預處理命令列必須使用分號結尾

B.凡是以號開頭的行,都被稱為編譯預處理命令列

C.預處理命令列不能出現在程式的最後一行

D.預處理命令列的作用域是到最近的函式結束處

參考答案:B

參考解析:本題考查預編譯的預編譯處理命令列,預處理命令列不能以分號結尾,所以A選項錯誤,預處理命令列可以出現在程式的最後一行,預處理命令列作用域是整個檔案。

29[單選題] 有以下程式

程式的輸出結果是

A.0B.1C.9D.10

參考答案:B

參考解析:本題考查巨集定義,巨集定義只是做個簡單的替換。執行SQR(k+m)/SQR(k+m)=k+mxk+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的結果為1,選項B正確。

30[單選題] 設--X樹共有150個結點,其中度為l的結點有l0個,則該---X樹中的葉子結點數為( )。

A.71B.70C.69D.不可能有這樣的二叉樹

參考答案:D

參考解析:在樹結構中,一個結點所擁有的後件個數稱為該結點的度,所有結點中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結點總是比度為2的結點多一個。如果有一棵二叉樹,結點總數為l50,假設度為0的結點個數為n,則有n+10+n一1=150,n=70.5,由於結點個數必須是整數,所以不可能有題目中這樣的二叉樹。故選擇D選項。

31[單選題] 有以下程式:

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

A.2.3B.1,3C.1,4D.1,2

參考答案:B

參考解析:在f(int+P,int 4 q)函式中,執行P=P+1是將P所對應的地址加1,而0 q=+q+1是將q所指向的n的地址所對應的值加1,所以m的得知所對應的值沒有變,而n的值則為3了。因此B選項正確。

32[單選題] 以下選項中,能用作使用者識別符號的是( )。

A.-0-B.8-;gned

參考答案:A

參考解析:C語言中識別符號由字母、下劃線、數字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為識別符號。8中以數字8開頭,所以錯誤。c與D中用的是關鍵字void與unsigned,所以錯誤。

33[單選題] 以下敘述正確的是( )。

A.表示式sizeof(FILEx)==sizeof(intx)的值為真

B.檔案指標的值是一個整數,它的值一定小於檔案位元組數

C.檔案指標的值是所指檔案的當前讀取位置

D.使用fscanf函式可以向任意型別的檔案中寫入任意數量的字元

參考答案:A

參考解析:

slzeof(FILE})=4,因為file·為指標,指標的大小4,sizeof(int·)=4,理由同前面。檔案指標的值是地址,是一個16進位制的數,它的值不一定小於檔案位元組數,因此選項8錯誤。檔案指標是所指檔案的當前讀取位置,而不是檔案指標的值因此選項C錯誤。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函式可以向任意型別的檔案,寫入任意數量不能超過系統的緩衝區,寫檔案先寫入緩衝區,最後一起寫入檔案,因此選項D錯誤。答案為A選項。