2006年9月全國計(jì)算機(jī)二級C語言考試真題及答案_第1頁
2006年9月全國計(jì)算機(jī)二級C語言考試真題及答案_第2頁
2006年9月全國計(jì)算機(jī)二級C語言考試真題及答案_第3頁
2006年9月全國計(jì)算機(jī)二級C語言考試真題及答案_第4頁
2006年9月全國計(jì)算機(jī)二級C語言考試真題及答案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

年9月全國計(jì)算機(jī)二級C語言考試真題及答案一、選擇題(每小題2

分,共70

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

(1)下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是______。

A)、源程序要文檔化

B)、數(shù)據(jù)說明的次序要規(guī)范化

C)、避免濫用goto

語句

D)、模塊設(shè)計(jì)要保證高耦合,高內(nèi)聚

(2)從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是______。

A)、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)

B)、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)

C)、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)

D)、過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)

(3)下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是______。

A)、軟件測試

B)、概要設(shè)計(jì)

C)、軟件維護(hù)

D)、詳細(xì)設(shè)計(jì)

(4)在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為______。

A)、概念模式

B)、外模式

C)、內(nèi)模式

D)、物理模式

(5)數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。

A)、編碼設(shè)計(jì)

B)、測試階段

C)、運(yùn)行階段

D)、物理設(shè)計(jì)

(6)設(shè)有如下三個(gè)關(guān)系表下列操作中正確的是

A)、T=R∩S

B)、T=R∪S

C)、T=R×S

D)、T=R/S

(7)下列敘述中正確的是

A)、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大

B)、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C)、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D)、上述三種說法都不對

(8)在長為64

的有序線性表中進(jìn)行順序查找,壞情況下需要比較的次數(shù)為______。

A)、63

B)、64

C)、6

D)、7

(9)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的______。

A)、存儲問題

B)、共享問題

C)、安全問題

D)、保護(hù)問題

(10)對下列二叉樹:

進(jìn)行中序遍歷的結(jié)果是______。

A)、ACBDFEG

B)、ACBDFGE

C)、ABDCGEF

D)、FCADBEG(11)下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是______。

A)、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移

B)、內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline

來定義

C)、內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的

D)、內(nèi)聯(lián)函數(shù)體的后一條語句必須是rennin

語句

(12)下列情況中,不會調(diào)用拷貝構(gòu)造函數(shù)的是______。

A)、用一個(gè)對象去初始化同一類的另一個(gè)新對象時(shí)

B)、將類的一個(gè)對象賦予該類的另一個(gè)對象時(shí)

C)、函數(shù)的形參是類的對象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)

D)、函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用時(shí)

(13)下列有關(guān)繼承和派生的敘述中,正確的是______。

A)、如果一個(gè)派生類私有繼承其基類,則該派生類對象不能訪問基類的保護(hù)成員

B)、派生類的成員函數(shù)可以訪問基類的所有成員

C)、基類對象可以賦值給派生類對象

D)、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類

(14)下列運(yùn)算不能重載為友元函數(shù)的是______。

A)、=

(

)

[]

->

B)、+

-

++

--

C)、>

<

>=

<=

D)、+=

-=

*=

/=

(15)關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列表述正確的是______。

A)、對于虛類型參數(shù)所對應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的信息,則都可以省略

B)、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的后的若干個(gè)參數(shù),F(xiàn)C

EA

DBG則都可以省略

C)、對于虛擬型參數(shù)所對應(yīng)的模板實(shí)參,若能夠省略則必須省略

D)、對于常規(guī)參數(shù)所對應(yīng)的模板實(shí)參,任何情況下都不能省略

(16)下列關(guān)于輸入流類成員函數(shù)getline(

)的描述中,錯(cuò)誤的是______。

A)、該函數(shù)是用來讀取鍵盤輸入的字符串的

B)、該函數(shù)讀取的字符串長度是受限制的

C)、該函數(shù)讀取字符串時(shí),遇到終止符便停止

D)、該函數(shù)讀取字符串時(shí),可以包含空格

(17)下列符號中,正確的C++標(biāo)識符是______。

A)、enum

B)、2b

C)、foo-9

D)_32

(18)下列語句中,錯(cuò)誤的是______。

A)、const

int

buffer=256;

B)、const

double*point;

C)、int

const

buffer=256;

D)、double*const

point;

(19)if

語句的語法格式可描述為

格式1:if(<條件>)<語句>

格式2:if(<條件>)<語句1>else<語句2>

關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是

A)、<條件>部分可以是一個(gè)if

語句,例如if(if(a

=0)?)?

B)、<條件>部分可以是一個(gè)if

語句,例如if(?)if(?)?

C)、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句1>和<語句2>的位置,語句功能不變

D)、<語句>部分可以是一個(gè)循環(huán)語句,例如if(?)while(?)?

(20)有如下說明

int

a

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

則數(shù)值為9

的表達(dá)式是______。

A)、*p+9`

B)、*(p+8)

C)、*p+=9

D)、p+7(21)或下面的函數(shù)調(diào)用

fun(a+b,3,max(n-1)b)

則fun

的實(shí)參個(gè)數(shù)是______。

A)、3

B)、4

C)、5

D)、6

(22)以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是______。

A)、public

B)、static

C)、protected

D)、private

(23)在公有繼承的情況下,允許派生類直接訪問的基類成員包括______。

A)、公有成員

B)、公有成員和保護(hù)成員

C)、公有成員、保護(hù)成員和私有成員

D)、保護(hù)成員

(24)關(guān)于運(yùn)算符重載,下列表述中正確的是______。

A)、C++已有的任何運(yùn)算符都可以重載

B)、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型

C)、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型

D)、可以通過運(yùn)算符重載來創(chuàng)建C++中原來沒有的運(yùn)算符

(25)關(guān)于關(guān)鍵字class

和typename,下列表述中正確的是______。

A)、程序中的typename

都可以替換為class

B)、程序中的class

都可以替換為typename

C)、在模板形參表中只能用typename

來聲明參數(shù)的類型

D)、在模板形參表中只能用class

或typename

來聲明參數(shù)的類型

(26)有如下程序

#include

#include

using

namespace

std;

int

main(){

count<count

<<12,345<<

<<34,567;

return

0;

}

若程序的輸出是:

**12.345**34.567

則程序中下劃線處遺漏的操作符是______。

A)、setprecision(3)

B)、fixed

C)、setfill(*)

D)、stew(8)

(27)有如下程序

#include

#include

using

namespace

std;

class

MyClass{

public:

MyClass(){cout<<’A”;}

MyClass(char

c

{cout<~MyClass(){sout<<’B”;}

};

Int

main(){

MyClassp1,*p2

p2=new

MyClass(‘X’);

delete

p2;

return

0;

}

執(zhí)行這個(gè)程序幕上將顯示輸出______。

A)、ABX

B)、ABXB

C)、AXB

D)、AXBB</count

<<12,345<<

<<34,567;(28)有如下程序

#include

using

namespace

std;

int

i=1;

class

Fun{

public;

static

int

i;

int

value(){return

i-1}

int

value

()const{return

i+1;}

};

int

Fun;;i=2;

int

main(){

int

i=3;

Fun

Fun1

const

Fun

fun2;

return

0;

}

若程序的輸出結(jié)果是:

123

則程序中下劃線處遺漏的語句是______。

A)、cout<

B)、cout<

C)、cout<

D)、cout<

(29)有如下程序

#include

using

namespace

std;

class

Obj{

static

int

i;

public:

Obj(){i++;}

~Obj(){i--;}

static

int

getVal(){teturn

i;}

};

int

Obj::i=0;

void

f

(){Obj

ob2;cout<int

main(){

Obj

obl;

F();

Obj*ob3=new

Obj;cout<getval();

Delete

ob3;cout<return0;

}

程序的輸出結(jié)果是______。

A)、232

B)、231

C)、222

D)、221

(30)有如下程序

#include

using

namespace

std;

class

Base{

protected;

Base(){cout<<’A’;}

Base(char

c){cout<};

class

Derived;

public

Base{

public:

Derived(char

c

){cout

<};

int

main(){

Derived

d1(‘B’);

return

0;

}

執(zhí)行這個(gè)程序屏幕上將顯示輸出______。

A)、B

B)、BA

C)、AB

D)、BB

(31)有如下類定義:

class

MyBase{

int

k;

public;

MyBase(int

n=0):k(n){}

int

value()const{return

k;}

};

class

MyDerived;

MyBase{

int

j;

public;

MyDerived(int

i):

j(i){}

int

getK()const

{return

k;}

int

gutj()const{return

j;}

};

編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對這個(gè)錯(cuò)誤準(zhǔn)確的描述是

A)、函數(shù)getK

試圖訪問基類的私有成員變量K

B)、在類MyDerived

的定義中,基類名MyBase

前缺少關(guān)鍵字public、protected

或private

C)、類MyDerived

缺少一個(gè)無參的構(gòu)造函數(shù)

D)、類MyDerived

的構(gòu)造的數(shù)沒有對基數(shù)數(shù)據(jù)成員K

進(jìn)行初始化

(32)在一個(gè)派生類對象結(jié)束其生命周期時(shí)

A)、先調(diào)用派生類的析構(gòu)函數(shù)后調(diào)用基類的析構(gòu)函數(shù)

B)、先調(diào)用基類的析構(gòu)函數(shù)后調(diào)用派生類的析構(gòu)函數(shù)

C)、如果基數(shù)沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)

D)、如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)

(33)有如下的運(yùn)算重載函數(shù)定義:

Double

operator+(int

i,

int

k){return

double(i+k);}

但定義有錯(cuò)誤,對這個(gè)錯(cuò)誤的準(zhǔn)確的描述是______。

A)、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的

B)、兩個(gè)int

型參數(shù)的和應(yīng)該是int

型,而這里將+的返回類型聲明為double

C)、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元

D)、C++已經(jīng)提供了求兩個(gè)int

型數(shù)據(jù)之和運(yùn)算符+,不能再定義同樣的運(yùn)算符

(34)語句ofstreamf(“SALARY.DAT”,ios_base::app)的功能是建立流對象f,并試圖打開文件SALARY.DAT

與f

關(guān)聯(lián),而且______。

A)、若文件存在,將其置為空文件;若文件不存在,打開失敗

B)、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件

C)、若文件存在,將文件指針定位于文件首;若文件不存在,打開失敗

D)、若文件存在,打開失敗;若文件不存在,建立一個(gè)新文件

(35)有如下程序

#include

using

namespace

std;

class

A{

public:

virtual

Void

funcl(){cout<<

“A1”;}

void

fune2(){cout<<

“A2”;}

};

class

B:

public

A{

public:

void

func1(){cout<<

“B1”;}

void

func2(){cout<<

“B2”;}

};

Int

main(){

A*p=new

B;

p->funcl();

p->func2();

retum0;

}

運(yùn)行程序,屏幕上將顯示輸出______。

A)、B1B2

B)、A1A2

C)、B1A2

D)、A1B2</return0;

</getval();

</int

main(){二、填空題(每空2

分,共30

分)請將每一個(gè)空的正確答案寫在答題卡[1]~[15]序號的橫線上,答在試卷上不得分。

(1)下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為

[1]

。

(2)

[2]

的任務(wù)是診斷和改正程序中的錯(cuò)誤。

(3)一個(gè)關(guān)系表的行為

[3]

。

(4)按“行進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是

[4]

。

(5)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于

[5]

。

(6)若有定義語句:int*a,b;,則變量b

的數(shù)據(jù)類型是

[6]

。

(7)已知數(shù)組a

中的元素個(gè)數(shù)為n,下列語句的作用是將下標(biāo)為i

的元素移動到下標(biāo)為i-1

的單元,其中1≤i<n。例如,當(dāng)n=4,a

中原有數(shù)據(jù)為1,2,3,4

時(shí),則移動后a中元素為2,3,4,4。請將語句補(bǔ)充完整:

For(int

i=0;i(8)已知遞歸函數(shù)f

的定義如下:

int

f

(int

n)

{

If(n<=1)return

1;//遞歸結(jié)束情況

else

return

n*f(n-2);//遞歸}則函數(shù)調(diào)用語句f(5)的返回值是

[8]

。

(9)創(chuàng)建對象數(shù)組時(shí),對數(shù)組的每一個(gè)元素都將調(diào)用一次構(gòu)造函數(shù),如果沒有顯式給出數(shù)組元素的初值,則調(diào)用缺省構(gòu)造函數(shù),下列程序涉及到對象數(shù)組的創(chuàng)建和單個(gè)對象的創(chuàng)建,其輸出結(jié)果是

[9]

。

#include

using

namespace

std;

class

Foo{

public:

Foo(int

X){cout

<<’A”}

Foo(){}

};

int

main()

Foo

f[3],g(3);

return

0;

}

(10)習(xí)慣性在下列程序的輸出結(jié)果是42,請將畫線處缺失的部分補(bǔ)充完整。

#include

Using

namespace

atd;

Class

Foo{

int

value;

public:

Foo():value(0){}

Void

setvalue(int

value)

{

[10]

=value;

//給Foo

的數(shù)據(jù)成員value

賦值}void

print(){cout<};

Int

main()

{

Foo

f;

f.setvalue(42);

f.print();

retum0;

}

(11)如果不能使用多態(tài)機(jī)制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基數(shù)繼承的成員,下列程序沒有使用多態(tài)機(jī)制,其輸出結(jié)果是

[11]

#include

using

namespace

std;

class

Base{

public:

Void

print(){cout<<

‘B’;}};

class

Derived:

public

Base{

public

void

print(){cout<<

‘D’;}}

int

main()

{

Derived*pd=new

Dreived);

Base*pb=pd;

pb->print();

pd->print();

delete

pd;

return

0;

}

(12)在聲明派生類時(shí),如果不顯式地給出繼承方式,缺省的類繼承方式是私有繼承

private。已知有如下類定義:

class

Base{

protected:

void

fun(){}

};

Class

Derived:

Base{};

則Base

類中的成員函數(shù)fun(),在Derived

類中的訪問權(quán)限是

[12]

(注意:要求填寫private、protected

或public

中的一項(xiàng))。

(13)在MyClass

類的定義中,對賦值運(yùn)算符=進(jìn)行重載。請將畫線處缺失的部分補(bǔ)充完整。

[13]

MyClass::operator=(const

MyClass

rhs)

{

if(this=&rhs)return*this;

value=rhs.

value;

return*this;

}

(14)插入排序算法的主要思想是:每次從未排序序列中取出一個(gè)數(shù)據(jù),插入到已排序序列中的正確位置,InsertSort

類的成員函數(shù)sort()實(shí)現(xiàn)了插入排序算法,請將畫線處缺失的部分補(bǔ)充完整。

class

InsertSort{

public:

InsertSort(int*a0,int

n0):a(a0),n(n0){}//參數(shù)組首地址,n

是數(shù)組元素個(gè)數(shù)

void

sort()

{//此函數(shù)假設(shè)已排離序列初始化狀態(tài)只包含a[0],未排序序列初始為a[1]?a[n-1]

for

(int

i=1;iint

j;

for(

[14]

j>0;--j){

if(t>a[j-1])break;

a[j]=a[j-1];}

a[j]=t;}}

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論