二級C++筆試-304-真題無答案_第1頁
二級C++筆試-304-真題無答案_第2頁
二級C++筆試-304-真題無答案_第3頁
二級C++筆試-304-真題無答案_第4頁
二級C++筆試-304-真題無答案_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

二級C++筆試-304(總分100,做題時間90分鐘)一、選擇題

在下列各題的A)、B)、C)、D)選項中,只有一個選項是正確的。1.

下面內(nèi)容不屬于使用軟件危機的是(

)。A

軟件質(zhì)量難以保證B

軟件的成本不斷提高C

軟件需求增長緩慢D

軟件不可維護或維護程度非常低2.

下列敘述中,正確的是(

)。A

while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替B

do-while語句構(gòu)成的循環(huán)只能用break語句退出C

用while語句構(gòu)成的循環(huán),只有在while后的表達式為非0時才執(zhí)行循環(huán)D

do-while語句構(gòu)成的循環(huán),只有在while后的表達式為0時才結(jié)束循環(huán)3.

以下程序執(zhí)行后的輸出結(jié)果是(

)。

#include<iostream.h>

classBasel

public:

voidfun()cout<<"Basel"<<end1;

;

classBase2

public:

voidfun()

cout<<"Base2"<<end1;

classDerived:publicBasel,publicBase2

;

voidmain()

DerivedObj;

Obj.fun();

A

BaselB

Base2C

BaselBase2D

程序產(chǎn)生二義性4.

有如下程序:

#include<iostream>

usingnamespacestd;

intgetSum(intnum);

intmain()

inti;

for(i=1;i<4;i++)

cout<<getSum(i);

return0;

intgetSum(inthum)

staticintsum=O;

sum+=num;

returnsum;

上述程序執(zhí)行后的輸出結(jié)果是(

)。A

136B

248C

123D

1355.

數(shù)據(jù)字典(DD)是定義以下哪種系統(tǒng)描述工具中的數(shù)據(jù)的工具(

)。A

數(shù)據(jù)流程圖B

系統(tǒng)流程圖C

程序流程圖D

軟件結(jié)構(gòu)圖6.

若有以下程序:

voidg(int**q)

(**q)++;

(*q)++;

voidmain()

intline[5];

int*p=line;

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

*p=i;

g(&P);

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

cout<<line[i];

cout<<end1;

該程序運行后的輸出結(jié)果為(

)。A

12345B

01234C

11111D

555557.

以下各項說法中,正確的是(

)。A

當通過引用傳遞參數(shù)時,函數(shù)創(chuàng)建一個變量以存儲參數(shù)的值B

當通過引用傳遞參數(shù)時,函數(shù)無法訪問參數(shù)的值C

當通過引用傳遞參數(shù)時,調(diào)用程序創(chuàng)建一個臨時變量以容納參數(shù)的值D

當通過引用傳遞參數(shù)時,函數(shù)訪問調(diào)用程序中參數(shù)的原始值8.

若有定義“intk,*q;”,則下列各選項中,賦值表達式正確的是(

)。A

q=(&k+1)B

q=&kC

q=kD

*q=&k9.

概要設(shè)計是軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計,以下選項中不屬于概要設(shè)計的是(

)。A

把軟件劃分成模塊B

確定模塊之間的調(diào)用關(guān)系C

確定各個模塊的功能D

設(shè)計每個模塊的偽代碼10.

有如下程序:

#include<iostream>

usingnamespacestd;

classsample

private:

intx,y;

public:

sample(inti,intj)

x=i;

y=j;

voiddisp()

cout<<"displ"<<end1;

voiddisp()

const

cout<<"disp2"<<end1;

;

intmain()

constsamplea(i,2);

a.disp();

return0;

該程序運行后的輸出結(jié)果是(

)。A

disp1B

disp2C

disp1disp2D

程序編譯時出錯11.

下面的程序段中,有(

)處錯誤和警告。

#include<stdio.h>

intmain()

intx;

cin>>x

cout<<x;

A

1B

2C

3D

412.

有以下程序:

#include<iostream>

usingnamespacestd;

intf1(intx,inty)

returnx>y?x:y;

intf2(intx,inty)

returnx>y?y:x;

intmain()

inta=4,b=3,c=5,d,e,f;

d=f1(a,b);

d=f1(d,c);

e=f2(a,b);

e=

f2(e,c);

f=a+b+c-d-e;

cout<<d<<","<<e<<","<<f<<end1;

return0;

執(zhí)行后的輸出結(jié)果是(

)。A

3,4,5B

5,3,4C

5,4,3D

3,5,413.

下列對派生類的描述中,錯誤的是(

)。A

一個派生類可以作為另一個派生類的基類B

派生類至少有一個基類C

派生類的默認繼承方式是私有派生D

派生類只繼承了基類的公有成員和保護成員14.

關(guān)于類型轉(zhuǎn)換的說法中,錯誤的是(

)。A

如果a為血型變量,b為char型變量,則a+b的值為血型B

如果a為float型變量,b為int型變量,則a-b的值為float型C

如果a為double型變量,b為float型變量,則a*b的值為double型D

如果a為血型變量,b為血型變量,則a/(double)b的值為int型15.

下列關(guān)于棧的敘述中,不正確的是(

)。A

在棧中能插入數(shù)據(jù)B

在棧中能刪除數(shù)據(jù)C

棧是先進先出的線性表D

棧是先進后出的線性表16.

下列各項特點中,屬于線性表的順序存儲結(jié)構(gòu)的是(

)。A

線性表中所有元素所占的存儲空間是不連續(xù)的B

線性表的數(shù)據(jù)元素在存儲空間中是隨便存放的C

線性表中所有元素所占的存儲空間是連續(xù)的D

前后件兩個元素在存儲空間是隨便存放的17.

一個關(guān)系數(shù)據(jù)庫文件中的各條記錄(

)。A

前后順序不能任意顛倒,一定要按照輸入的順序排列B

前后順序可以任意顛倒,不影響庫中數(shù)據(jù)的數(shù)據(jù)關(guān)系C

前后順序可以任意顛倒,但排列/頃序不同,統(tǒng)計處理的結(jié)果就可能不同D

前后順序不能任意顛倒,一定要按照關(guān)鍵詞段值的順序排列18.

對于輸入輸出,在設(shè)計和編程時都應(yīng)該考慮的原則是(

)。A

對部分輸入數(shù)據(jù)檢驗數(shù)據(jù)的合法性B

不允許默認值C

輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標志D

輸入數(shù)據(jù)時,不允許使用自由格式19.

有以下程序:

#include<iostream>

usingnamespacestd;

intmain()

chars1[10],s2[10];

char

*p=s1,*q=s2;

cin>>s1>>s2;

while(*p!='\0')

p++;

while(*q!='\0')

*p++=*q++;

*p='\0';

cout<<s1<<end1;

return0;

A

abcd0ghijB

abcd0ghij0C

abcdD

abcdghij20.

對下列程序的描述中,正確的是(

)。

#include<iostream>

usingnamespacestd;

intFun(int,int);

intmain()

cout<<Fun(5,50)<<end1;

return0;

intFun(intx,inty)

returnx*x+y*y;

A

該函數(shù)定義正確,但函數(shù)調(diào)用方式錯誤B

該函數(shù)調(diào)用方式正確,但函數(shù)定義錯誤C

該函數(shù)的定義和調(diào)用方式都是正確的D

該函數(shù)的定義和調(diào)用方式都是錯誤的21.

以下程序執(zhí)行結(jié)果是(

)。

#include<iostream.h>

classBase

public

virtualvoidfun()

cout<<"B";

;

classDerived

public:

Derived()

cout<<"D";

virtualvoidfun()

Base::fun();

cout<<"C";

intmain()

Base*ptr;

Derivedobj;

ptr=&obj;

p->fun();

return0;

A

DBCB

DCBC

BDCD

CBD22.

對待排序文件的初始狀態(tài)不作任何要求的排序方法有(

)。A

直接插入和快速排序B

直接插入和歸并排序C

歸并和快速排序D

歸并和直接選擇排序23.

一個類的友元函數(shù)或友元類可以通過成員操作符訪問該類的(

)。A

私有成員B

保護成員C

公有成員D

所有成員24.

下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是(

)。A

靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進行初始化B

靜態(tài)數(shù)據(jù)成員不可以通過類的對象調(diào)用C

靜態(tài)數(shù)據(jù)成員不能受private(私有)控制符的作用D

靜態(tài)數(shù)據(jù)成員可以直接通過類名調(diào)用25.

有以下程序:

#include<iostream>

usingnamespacestd;

classA

private:

intx,y;

public:

voidset(inti,intj)

x=i;

y=j;

intget_y()

returny;

;

classbox

private:

intlength,width;

Alabel;

public:

voidset(int1,intw,ints,intp)

length=1;

width=w;

label.set(s,p);

intget_area()

returnlength*width;

;

intmain()

boxsmall;

small.set(2,4,1,35);

cout<<small.get_area()<<end1;

return0;

運行后的輸出結(jié)果是(

)。A

8B

4C

35D

7026.

若有以下程序

#include<iostream>

usingnamespacestd;

classA

public:

A(inti,intj)

a=i;

b=j;

voidmove(intx,inty)

a+=x;

b+=y;

voidshow()

cout<<a<<","<<b<<end1;

private:

int

a,b;

;

classB:

privateA

public:

B(inti,intj):A(i,j)

voidfun()

move(3,5);

voidf1()

A::show();

;

intmain()

Bd(3,4);

d.fun();

d.f1();

return0;

程序執(zhí)行后的輸出結(jié)果是(

)。A

3,4B

6,8C

6,9D

4,327.

下列各項中不屬于算法基本特征的是(

)。A

可行性B

遞歸性C

確定性D

有窮性28.

執(zhí)行語句序列

ofstreamoutfile("data.dat");

if(...)

cout<<"ok";elsecout<<"fail";

后,如果文件打開成功,顯示“ok”,否則顯示“fail”。由此可知,上面if語句“...”處的表達是(

)。A

outfile.fail()或outfileB

outfile.good()或!outfileC

outfile.good()或outfileD

outfile.fail()或!outfile29.

下列描述中,(

)是抽象類的特性。A

可以說明虛函數(shù)B

可以進行構(gòu)造函數(shù)重載C

可以定義友元函數(shù)D

不能說明其對象30.

下列關(guān)于鏈式存儲的敘述中,正確的是(

)。A

鏈式存儲結(jié)構(gòu)的空間不可以是不連續(xù)的B

數(shù)據(jù)節(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系必須一致C

鏈式存儲方式只可用于線性結(jié)構(gòu)D

鏈式存儲也可用于非線性結(jié)構(gòu)二、填空題

請將每空的正確答案寫在【1】~【15】序號的橫線上。1.

對于長度為n的線性表,若進行順序查找,則時間復(fù)雜度為

【1】

。2.

已知某序列為49,38,65,97,76,13,27,試采用該序列的第一個元素為樞軸進行快速排序,則經(jīng)過一趟快速排序之后所得到的序列為:

【2】

。3.

軟件生命周期一般可分為以下階段:問題定義、可行性研究、

【3】

、設(shè)計、編碼、

【4】

、運行與維護。4.

在選擇運算所得到的結(jié)果關(guān)系中,所含的元組數(shù)不合

【5】

原關(guān)系中的元組數(shù)。5.

當輸入10,11,12時,下面程序運行結(jié)果是

【6】

。

#include<iostream>

usingnamespacestd;

intmain()

int

a,b,c,max;

cin>>a>>b>>c;

max=a;

if(max<B)

max=b;

if(max<C)

max=c;

cout<<max<<end1;

return0;

6.

下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁胀瓿纱顺绦颉?/p>

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

chara[]="changuage",t,m;

int

i,j,k;

k=strlen(A);

for(i=0;i<=k-2;i+=2)

m=i;

for(j=i+2;j<=k;

【7】

)

if(a[m]>a[j]

m=j;

if(

【8】

)

t=a[i];

a[i]=a[m];

a[m]=t;

cout<<a<<end1;

return0;

7.

閱讀下面程序:

#include<iostream>

usingnamespacestd;

intfun(

inta,

intb)

intc;

c=a*b;

returnc;

intmain()

inta=3,

b=5,

c=4,

x=O;

x=fun(fun(a,

b),

c);

cout<<x<<end1;

return0;

其運行結(jié)果是

【9】

。8.

在C++語言中,每個類都有一個隱含的指針叫

【10】

指針。該指針指向

【11】

。9.

經(jīng)常和一個運算符連用,構(gòu)成一個運算符函數(shù)名的C++關(guān)鍵詞是

【12】

。10.

若有以下程序:

#include<iostream>

usingnamespacestd;

template<classT>

Tmin(Tx,Ty)

if(x<y)

returnx;

else

returny;

intmain()

intn1=2,n2=10;

doubled1=1.5;d2=5.6;

cout<<min(n1,n2)<<",";

cout<<min(d2,d2)<<end1;

return0;

程序運行后的輸出結(jié)果是

【13】

。11.

以下程序運行后的輸出結(jié)果是

【14】

#include<iostream>

#include<string>

usingnamespacestd;

classY;

classX

intx;

char*strx;

public:

X(int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論