當前位置:才華齋>計算機>計算機二級>

2015年計算機二級C++模擬試題(二)

計算機二級 閱讀(3.05W)

一、選擇題

2015年計算機二級C++模擬試題(二)

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

(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)一切事物

(11)以下都是C++語言識別符號的是

A)dsfa,df4,f$

B)huhj,a^,k2

C)3k,h,j_9

D)_ok,jk,k8

(12)C++語言中用於定義類的關鍵字是

A)class

B)struct

C)default

D)sizeof

(13)設以下變數均為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)

(14)以下程式的輸出結果是

#include

void main()

{ int a=21,b=11;

cout << --a+b;}

A)30

B)31

C)32

D)33

(15)while 和do-while迴圈的主要區別是

A)do-while的迴圈體至少無條件執行一次

B)while的迴圈控制條件比do-while的迴圈控制條件更嚴格

C)do-while允許從外部轉到迴圈體內

D)do-while 的迴圈體不能是複合語句

(16)與 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;

(17)若二維陣列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

(18)下面程式段的執行結果是

#include

void main()

{ char *s="abcde";

s+=2;

cout << &s;}

A)cde

B)字元′c′

C)字元′c′的地址

D)無確定的輸出結果

(19)下面敘述不正確的是

A)派生類一般都用公有派生

B)對基類成員的訪問必須是無兩義性的

C)賦值相容規則也適用於多重繼承的組合

D)基類的公有成員在派生類中仍然是公有的`

(20)下面程式應能對兩個整型變數的值進行交換。以下正確的說法是

#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)以上說法都不對

(21)關於友元的概念錯誤的是

A)友元函式沒有this指標

B)呼叫友元函式時必須在它的實參中給出要訪問的物件

C)一個類的成員函式也可以作為另一個類的友元函式

D)只能在類的公有段宣告友元

(22)關於抽象類下面說法正確的是

A)抽象類就是其中有函式定義但沒有實現的類

B)抽象類是可以被例項化的

C)派生類不能成為抽象類

D)抽象類的子類必須實現父類中的純虛擬函式

(23)下面程式的結果是

#include

class test { private:

int num;

public:

test();

int getint(){return num;}

~test();};

test :: test()

{ num =0;}

test::~test()

{ cout<<"Destructor is active"< P>

{ test x[3];

cout<<"Exiting main"<>

Destructor is active

Destructor is active

Destructor is active

B)Exiting main

Destructor is active

Destructor is active

C)Exiting main

Destructor is active

D)Exiting main

(24)如果表示式--x+y中,--是作為成員函式過載的, +是作為成員函式過載的,則該表示式還可為

A)ator+(ator--(0))

B)ator+(ator--())

C)ator+(operator--(x,0))

D)operator+(ator--())

(25)下列語句不能夠用於開啟C根目錄下檔案的語句是

A)ifstream fin; ("C:");

B)ifstream fin("C:");

C)A)和B)

D)ifstream fin; fin("C:");

(26)以下哪個基類中的成員函式表示純虛擬函式?

A)virtual void vf (int)

B)void vf (int)=0

C)virtual void vf(=0)

D)virtual void yf(int){ }

(27)下面程式輸出的結果是

#include

void main()

{ int i;

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

for(i=0;i<3;i++)

cout << a[i][i] << " ";}

A)1 5 9

B)7 5 3

C)3 5 7

D)5 9 1

(28)派生類繼承基類的方式有

A)public

B)private

C)protected

D)以上都對

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

#include

class Location {

protected:

int X, Y;

public:

void SetX(int myx){X=myx;}

void SetY(int myy){Y=myy;}

void showxy(){cout << "X=" << X << " " << "Y=" << Y <>

private:

int H, W;

public:

void SetH(int myh){H=myh;}

void SetW(int myw){W=myw;}

void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}};

void main()

{ Rectangle r1;

(3);

(5);

(4);

(6);

xy();

();}

A)X=3 Y=5

X=3 Y=5 H=4 W=6

B)X=3 Y=5

X=3 Y=5 H=3 W=6

C)X=3 Y=5

X=3 Y=4 H=4 W=6

D)X=3 Y=5

X=3 Y=3 H=4 W=6

(30)有以下程式

#include

void ss(char *s,char t)

{ while(*s)

{ if(*s==t)*s=t-′a′+′A′;

s++;}}

void main()

{ char str1[100]="abcddfefdbd",c=′d′;

ss(str1,c); cout << str1;}

程式執行後的輸出結果是

A)ABCDDEFEDBD

B)abcDDfefDbD

C)abcAAfefAbA

D)Abcddfefdb

31)有以下程式

#include

void main()

{ int a=5,b=0,c=0;

if(a=b+c)cout << "***"<< ?$$$?<下列選項敘述正確的是<>

A)有語法錯不能通過編譯

B)可以通過編譯但不能通過連線

C)輸出***

D)輸出$$$

(32)已知各變數的定義如下

int i=8,k,a,b;

unsigned long w=5;

double x=1.42,y=5.2;

則以下符合C++語言語法的表示式是

A)a+=a-=(b=4)*(a=3)

B)a=a*3+2

C)x%(-3)

D)y=float i

(33)以下程式中迴圈體總的執行次數是

int i,j;

for(i=6;i>1;i--)

for(j=0;j{……}

A)20

B)261

C)15

D)25

(34)對於下面的程式,說法正確的是

#include

void main()

{ int x=3,y=4,z=2;

if(x=y+z)cout << "x=y+z";

else cout << "x!=y+z";}

A)不能通過編譯

B)輸出6

C)輸出x!=y+z

D)輸出x=y+z

(35)下列程式的輸出結果是

#include

void main()

{ int a[3],i,j,k=2;

for(i=0;i<3;i++)a[i]=i;

for(i=0;ifor(j=0;ja[j]=a[i];

cout << a[2];}

A)2

B)3

C)1

D)0

二、填空題

請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。

(1)常用的黑箱測試有等價分類法、 1 、因果圖法和錯誤推測法4種。

(2)測試的目的是暴露錯誤,評價程式的可靠性;而 2 的目的是發現錯誤的位置並改正錯誤。

(3)軟體維護活動包括以下幾類:改正性維護、適應性維護、 3 維護和預防性維護。

(4)在面向物件的設計中,用來請求物件執行某一處理或回答某些資訊的要求稱為 4 。

(5)關鍵字ASC和DESC分別表示 5 的含義。

(6)C++語言中表示雙精度浮點數的關鍵字是 6 。

(7)執行下列語句後,c3中的值為 7

int c1=1,c2=2,c3;c3=1.0/c2*c1;

(8)若從鍵盤輸入70,則以下程式輸出的結果是 8 。

#include

void main()

{ int a;cin >> a;

if(a>50)cout << a;

if(a>40)cout << a;

if(a>30)cout << a;}

(9)以下程式的輸出結果是 9 。

#include

void main()

{ char s[]="abcdef";s[3]=′