糯米文學吧

位置:首頁 > IT認證 > 計算機等級

2016年計算機二級C++筆試試題

2016年計算機二級考試就要開始了,同學們準備得怎麼樣了呢?下面跟yjbys小編一起來看看相關的考試題庫,希望對大家的複習有所幫助!

2016年計算機二級C++筆試試題

  一、選擇題(每小題2分,共70分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分

(1)下列敍述中正確的是

A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

B)線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構

C)線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構

D)上述三種説法都不對

(2)下列敍述中正確的是

A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化

B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化

C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化

D)上述三種説法都不對

(3)軟件測試的目的是

A)評估軟件可靠性

B)發現並改正程序中的錯誤

C)改正程序中的錯誤

D)發現程序中的錯誤

(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)有三個關係R、S和T如下:

則由關係R和S得到關係T的操作是

A)自然連接

B)交

C)投影

D)並

(11)下列關於函數參數的敍述中,正確的是

A)在函數原型中不必聲明形參類型

B)函數的實參和形參共享內存空間

C)函數形參的生存期與整個程序的運行期相向

D)函數的形參在函數被調用時獲得初始值

(12)下列關於對象初始化的敍述中,正確的是

A)定義對象的時候不能對對象進行初始化

B)定義對象之後可以顯式地調用構造函數進行初始化

C)定義對象時將自動調用構造函數進行初始化

D)在一個類中必須顯式地定義構造函數實現初始化

(13)下列關於基類和派生類關係的敍述中,正確的是

A)每個類最多隻能有一個直接基類

B)派生類中的成員可以訪問基類中的任何成員

C)基類的構造函數必須在派生類的構造函數體中調用

D)派生類除了繼承基類的成員,還可以定義新的成員

(14)下列關於賦值運算符“=”重載的敍述中,正確的是

A)賦值運算符只能作為類的成員函數重載

B)默認的賦值運算符實現了“深層複製”功能

C)重載的賦值運算符函數有兩個本類對象作為形參

D)如果己經定義了複製(拷貝)構造函數,就不能重載賦值運算符

(15)下列關於模板的敍述中,正確的是

A)如果一個類中存在純虛函數,這個類就是類模板

B)函數模板不能有形式參數表

C)類模板是一種參數化類型的類,是類的生成器

D)類模板中不能包含構造函數

(16)下列關於C++預定義流對象的敍述中,正確的是

A)cin是C++預定義的標準輸入流對象

B)

cin是C++預定義的標準輸入流類

C)cout是C++預定義的標準輸入流對象

D)cout是C++預定義的標準輸入流類

(17)下列選項中,正確的C++標識符是

A)6_group

B)group~6

C)age+3

D)_group_6

(18)下列選項中,正確的C++表達式是

A)counter++3 B)element3+ C)a+=b D)‘a‘=b

(19)下列循環語句中有語法錯誤的是

A)int i; for( i=1; i<10;i++)cout<<‘*‘;

B)int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*‘;

C)int i=0;for(;i<10;i++)cout<<‘ *‘;

D)for(1)cout<<‘*‘;

(20)下列定義語句中,錯誤的是

A)int px*;

B)char*acp[10];

C)char(*pac)[10];

D)int(*p)();

(21)下列函數原型聲明中,錯誤的是

A)int fnction(int m,int n);

B)int function(int,int);

C)int function(int m=3,int n);

D)int function(int &m,int&n);

(22)若MyClass為一個類,執行“MyClass a[4],*p[5];”語句時會自動調用該類構造函數的次數是

A)2 B)5 C)4 D)9

(23)若在表達式y/x中,“/”是作為成員函數重載的運算符,則該表達式還可以表示為

A)ator/(Y)

B)operator/(x,Y)

C)ator/(x)

D)operator/(y,x)

(24)若要重載+、=、<<、=和[]運算符,則必須作為類成員重載的運算符是

A)+和=

B)=和<<

C)==和<<

D)=和[]

(25)有函數模板聲明和一些變量定義如下:

template   double dl,d2;

則下列調用中,錯誤的是

A)sum  B)sum(d1,d2);

C)sum(d1,d2);

D)sum(d1,d2);

(26)有如下語句序列:

char str[10];cin>>str;

當從鍵盤輸入”I love this game”時,str中的字符串是

A)"I love this game"

B)"I love thi"

C)"I love"

D)"I"

(27)有如下程序:

#include

#include

using std::cout;

class Point{

public:

friend double distance(const Point &p); //p距原點的距離

Point(int xx=0,int yy=0):x (xx),Y(YY){}//①

private:

Int x,Y;

};

double distance(const Point &p) { //②

return sqrt(p.x*p.x+p.Y*p.Y);

int main(){

Point p1(3,4);

cout<  return 0;

下列敍述中正確的是

A)程序編譯正確

B)程序編譯時語句①出錯

C)程序編譯時語句②出錯

D)程序編譯時語句③出錯

(28)有如下程序:

#include

using namespace std;

class CD{

public:

~CD(){cout<<’C’;}

private:

char name[80];

};

int main(){CD a,*b,d[2];return 0;}

運行時的輸出結果是

A)CCCC B)CCC C)CC D)C

(29)某類中有一個無參且無返回值的常成員函數Show,則正確的Show函數原型是

A)const void Show();

B)void const Show();

C)void Show()const;

D)void Show(const);

(30)若已定義了類Vehicle,則下列派生類定義中,錯誤的是

A)class Car:Vehicle{/*類體略*/},

B)class Car:public Car{/*類體略*/};

C)class Car:public Vehicle{/*類體略*/};

D)class Car:virtual public Vehicle{/*類體略*/};

(31)有如下程序:

#include

using namespace std;

class Music{

public:

void setTitle(char*str){strcpy(title,str);}

protected:

char type[10];

private:

char title[20];

};

class Jazz:public Music{

public:

void set(char* str){

strcpy(type,"Jazz"); //①

strcpy(title,str); //②

};

下列敍述中正確的是

A)程序編譯正確一 B)程序編譯時語句①出錯

C)程序編譯時語句②出錯 D)程序編譯時語句①和②都出錯

(32)有如下程序:

#include

using namespace std;

class Instrument{

public:

virtual void Display()=0;

};

class Piano:public Instrument{

public:

void Display(){/*函數體程序略*/}

};

int, main(){

Instrument s;

Instrument*p=0;

//...;

return 0;

下列敍述中正確的是

A)語句“Insturment *p=0;”編譯時出錯

B)語句“Instruments;”編譯時出錯

C)類Piano中的Display函數不是虛函數

D)類Instrumen七是一個虛基類

(33)有類定義如下:氣

class Type {

public:

Type (int i=0);

Tvpe operator -(int);

friend Type operator + (Type, Type );

private:

int val;

若有對象定義Type cl;則下列語句序列中,錯誤的是

A)Type(3)+c1; B)cl+Type(3);

C)3-cl; D)c1-3;

(34)有如下程序:

#include

#include

using namespace std;_

int main(){

Cout<  Cout<<12.3456793<<_______<<98765;

return 0;

若程厚的輸出是12.345679x98765xxxxx,則劃線處缺失的部分是

A)setw(1

0) B)setfill('x') C)setprecision(8) D)right

(35)有如下程序:

#include

using namespace std;

class Book{

public:

Book(char* t=""){strcpy(titie,t); }

_____________________________

private:

Char title[40];

};

class Novel:public Book{

public:

Novel(char*t=""):B00K (t){}

char*Category()const { return” "文學" }

};

int main(){

Book*pb;

pb=new Novel();

Cout

return 0;

若程序運行時輸出結果是“文學”,則劃線處缺失的語句是

A)char* Category();

B)char*Category()const;

C)virtual char*Category()const;

D)virtual char*Category()const=0;

  二、填空題(每空2分,共30分)

請將每一個空的正確答案寫在答題卡【1】-【15】序號的橫線上,答在試卷上不得分。注意:以命令關鍵字填空的必須拼寫完整。

(1)一個棧的初始狀態為空。首先將元素5,4,3,2,1 依次入棧,然後退棧一次,再將元素A,B,C,D依次入棧,之後將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序為__【1】__。

(2)在長度為n的線性表中,尋找最大項至少需要比較___【2】___次。

(3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有__【3】___個

結點。

(4)僅由順序、選擇(分支)和重複(循環)結構構成的程序是_【4】__程序。

(5)數據庫設計的四個階段是:需求分析,概念設計,邏輯設計和_【5】_。

(6)如果一個派生類只有一個直接基類,則該類的繼承方式稱為_【6】_繼承;如果一個派生類同時有多個直接基類,則該類的繼承方式稱為_【7】_繼承。

(7)運算符“+”允許重載為類成員函數,或者非成員函數。若用operator+(c1, c2)這樣的表達式來使用運算符“+”,應將“+”重載為_【8】_函數。

(8)下列程序的輸出是3,請填充程序中的空缺,使該行形成一個運算符重載函數的定義。

#include

using namespace std;

class MyNumber{

int n;

public:

MyNumber(int k):n(k){}

_【9】_int()const{return n,}

};

int main(){

MyNumber numl(3);

Cout<  return 0;

(9)下列程序的輸出結果是_【10】__。

#include

using namespace std;

class Base{

public:

int m,n;

Base(int i,int j):m(i),n(j){}

};

class Derived:public Base{

public:

int m, k;

Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}

};

int main(){

Derived d(1;5);

Cout<  return 0;

(10)根據程序中的註釋將下列缺失部分補充完整。

class A{

char*a;

public:

A():a(0){}

A(char *aa){//把aa所指字符串複製給a所指向的存儲空間

a=__【11】__char[strlen(aa)+1];

strcpy(a,aa);

~A(){delete[]a;}

};

(11)根據程序中的註釋將下列缺失部分補充完整。

class Point{

int x, y; //點的x和y座標

public:

Point(int xx=0,int yy=。):x(xx),y(yy){}

};

class Circle{

Point center;//圓心位置

int radius; //半徑

public: //利用cx和cy分別初始化圓心的x和y座標

Circle(int cx;int cy,int r):__【12】__,radius(r){}

void area(){cout<<3.14159*radius*radius<  };

(12)一網喂序的輸出結果是__【13】__。

#include

using namespace std;

class Base{

Int x;

Public:

Base(int b):x(b){}

virtual void display(){cout<  };

class Derived:public Base{

Int y;

public:

Derived(int d):Base(d),y(d){}

void display(){cout<  };

int main(){

Base b(1);Derived d(2);

Base*p=&d;

b lay();lay();p一>display();

return 0;

(13)一個雙目運算符作為類的成員函數重載時,重載函數的參數表中有__【14】__個參數。

(14)派生類中的成員函數可以直接訪問基類中的公有成員和__【15】__成員。