2017年全國計算機等級c++考試試題

學識都 人氣:2.44W

C++設計成給程序設計者更多的選擇,即使可能導致程序設計者選擇錯誤。下面是小編收集的全國計算機等級c++考試試題,希望大家認真閱讀!

2017年全國計算機等級c++考試試題

一、選擇題

1). 數據庫管理系統DBMS中用來定義模式、內模式和外模式的語言爲( )

A.C

c

正確答案:C

2). 下面對於友元函數描述正確的是

A.友元函數的實現必須在類的內部定義

B.友元函數是類的成員函數

C.友元函數破壞了類的封裝性和隱藏性

D.友元函數不能訪問類的私有成員

正確答案:C

答案解析:友元函數的定義既可以在類內部進行,也可以在類外部進行。它提高了程序的運行效率,但破壞了類的封裝性和隱藏性,使得類的非成員函數可以訪問類的私有成員。

3). 下列鏈表中,其邏輯結構屬於非線性結構的是( )

A.二叉鏈表

B.循環鏈表

C.雙向鏈表

D.帶鏈的棧

正確答案:A

答案解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表爲單鏈表或線性鏈表。帶鏈的棧可以用來收集計算機存儲空間中所有空閒的存儲結點,是線性表。在單鏈表中的結點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱爲雙向鏈表(一個結點中含有兩個指針),也是線性鏈表。循環鏈表具有單鏈表的特徵,但又不需要增加額外的存貯空間,僅對錶的鏈接方式稍做改變,使得對錶的處理更加方便靈活,屬於線性鏈表。二叉鏈表是二叉樹的物理實現,是一種存儲結構,不屬於線性結構。答案爲A選項。

4). 關於純虛函數,下列表述中正確的是( )。

A.純虛函數是沒有給出實現版本(即無函數體定義)的虛函數

B.純虛函數的聲明總是以″=0″結束

C.派生類必須實現基類的純虛函數

D.含有純虛函數的類不可能是派生類

正確答案:B

答案解析:純虛函數是在聲明虛函數時被″初始化″爲O的'虛函數。純虛函數沒有函數體,純虛函數的作用是在基類中爲其派生類保留一個函數名稱

5). 下列關於虛函數的描述中,正確的是( )。

A.虛函數是一個static類型的成員函數

B.虛函數是一個非成員函數

C.基類中採用virtual說明一個虛函數後,派生類中定義相同原型的函數時可不必加virtual說明

D.派生類中的虛函數與基類中相同原型的虛函數具有不同的參數個數或類型

正確答案:C

答案解析:在成員函數聲明的前面加上virtual關鍵字即把該函數聲明爲虛函數。虛函數可以是另一個類的友元函數,但不是靜態成員函數。在派生類中可以重新定義從基類繼承下來的虛函數,在派生類中重新定義虛函數時,函數名、形參表和返回值類型必須保持不變。

二、填空題

給定程序的功能是求出能整除X且不是偶數的各整數,並放在數組PP中,這些除數的個數由N返回。

例如,若X的值爲30,則有4個數符合要求,它們是1,3,5,15。

注意:部分源程序給出如下

請勿改動主函數main和其他函數中的任何內容,僅在橫線上填入所編寫的若干表達式或語句。

試題程序:#include

void fun(int x, int pp[], int *n)

{

int i, j = 0;

for (i=1; i<=x; i+=2)

if ((x%i) == 0)

pp[j++] = ___1___;

*n = ___2___;

}

main()

{

int x, aa[1000], n, i;

printf("nPlease enter an integer number:n");

scanf("%d", &x);

fun(x, ___3___);

for (i=0; i  printf("%d ", aa[i]);

printf("n");

}

第1處填空:i

第2處填空:j

第3處填空:aa,