2023年計算機等級考試無紙化真考題庫試卷二級_第1頁
2023年計算機等級考試無紙化真考題庫試卷二級_第2頁
2023年計算機等級考試無紙化真考題庫試卷二級_第3頁
2023年計算機等級考試無紙化真考題庫試卷二級_第4頁
2023年計算機等級考試無紙化真考題庫試卷二級_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機等級考試無紙化真考題庫試卷⑵

二級C++

(考試時間120分鐘,滿分100分)

一、選擇題(每題1分。共40分)

⑴一種棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依

次出棧,則元素出棧的

次序是(r

A)12345ABCDE

B)EDCBA54321

C)ABCD日2345

D)5432IEDCBA

⑵下列論述中對H勺口勺是()。

A)循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是半線性構(gòu)造

B)在循環(huán)隊列中,只需要隊頭指針就能反應(yīng)隊列中元素的動態(tài)變化狀況

。在循環(huán)隊列中,只需要隊尾指針就能反應(yīng)隊列中元索向動態(tài)變化狀況

D)循環(huán)隊列中元素U勺個數(shù)是由隊頭指針和隊尾指針共同決定

⑶在長度為n的有序線性表中進(jìn)行二分查找,最壞狀況下需要比較U勺次數(shù)是()。

A)O(n)

B)O(n2)

C)O(1092n)

C)0(nl092n)

⑷下列論述中對日勺口勺是()。

A)次序存儲構(gòu)造H勺存儲一定是持續(xù)H勺,鏈?zhǔn)酱鎯?gòu)造的存儲空間不一定是持續(xù)H勺

B)次序存儲構(gòu)造只針對線性構(gòu)造,鏈?zhǔn)酱鎯?gòu)造只針對非線性構(gòu)造

c)次序存儲構(gòu)造能存儲有序表,鏈?zhǔn)酱鎯?gòu)造不能存儲有序表

D)鏈?zhǔn)酱鎯?gòu)造比次序存潴構(gòu)造節(jié)省存儲空問

⑸數(shù)據(jù)流圖中帶有箭頭的線段表達(dá)日勺是()。

A)控制流

B)事件驅(qū)動

Q模塊調(diào)用

D)數(shù)據(jù)流

⑹在軟件開發(fā)中,需求分析階段可以使用的工具是()o

A)N—s圖

B)DFD圖

C)PAD圖

D)程序流程圖

⑺在面向?qū)ο蟠胧┲?,不屬于“對象”基本特點的是()。

A)一致性

B)分類性

C)多態(tài)性

D)標(biāo)識唯一性

(8)一問宿舍可住多種學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)絡(luò)足()。

A)一對一

B)一對多

Q多對一

D)多對多

⑼在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最佳的是()。

A)人工管理階段

B)文獻(xiàn)系統(tǒng)階段

c)數(shù)據(jù)庫系統(tǒng)階段

D)三個階段相似

(10)有三個關(guān)系R、S和T如下:

ST

BCABc|

13m13

35

由關(guān)系R和S通過運算得到關(guān)系T,則所使用日勺運算為().

A)笛卡爾積

B)交

C)并

D)自然連接

(11)下列語句中,錯誤的是()。

A)constintbuffer=256;

B)constdouble*point:

C)intconstbuffer=256;

D)double*eonstpoint:

(12)if語句時語法格式可描述為:

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

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

clsc<語句2>

有關(guān)上面口勺語法格式,下列表述中錯誤的是()。

A)〈條件》部分可以是一種if語句,例如if(if(a==0)???)???

B)<語句)部分可以是一種if語句,例如if(…)if(…)…

c)假如在<條件>前加上邏輯非運算符!并互換《語句1》和<語句2>的位置,語句功能不變

D)<語句)部分可以是一種循環(huán)語句,例如if(…)while(…)…

(13)有如下闡明:

inta[10]={l,2,3,4,5,6,7,8,9,10),*P=a;

則數(shù)值為9的體現(xiàn)式是()。

A)*P+9

B)木(P+8)

C)*P+=9

D)P+8

(14)有如下程序段:

inti=0,J=l;

int&r=i://①

r=j;//②

inl*P二&i;//⑧

*P=&r;//@

其中會產(chǎn)生編譯錯誤的I語句是()。

A)@

B)③

C)②

D)①

(15)下列字符串中。不可以用做C++標(biāo)識符口勺是()。

A)y_2023

B)_EST_H

C)Return

D)switch

(16)為了取代c中帶參數(shù)的宏,在C++中使用()。

A)重載函數(shù)

B)內(nèi)聯(lián)函數(shù)

C)遞歸函數(shù)

D)友元函數(shù)

(17)通過運算符重載,可以變化運算符原有的()。

A)操作數(shù)類型

B)操作數(shù)個數(shù)

C)優(yōu)先級

D)結(jié)合性

(18)在函數(shù)中,可以用autO、extern^register和static這四個關(guān)鍵字中的一種來闡明變

量的存儲類型,假如不說

明存儲類型,則默認(rèn)的存儲類型是()。

A)auto

B)extern

C)register

D)static

(19)下列運算符函數(shù)中肯定不屬于類FunNumberH勺組員函數(shù)的是()。

A)intoperator一(FunNumber);

B)FunNumberoperator一();

C)FunNumberoperatoi—(int);

D)intoperator一(FunNumber,FunNumber);

(20)若有下面口勺函數(shù)調(diào)用:

fun(fl+b,3,max(n—Lb))

則fun的實參個數(shù)是()。

A)3

B)4

C)5

D)6

(21)有關(guān)運算符重載,下列表述中對日勺的是()。

A)C++已經(jīng)有的任何運算符都可以重載

B)運算符函數(shù)H勺返回類型不能申明為基本數(shù)據(jù)類型

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

【))可以通過運算符重載來創(chuàng)立C++中本來沒有的運算符

(22)有如下程序:

#nclude<iostrcam>

usingnamespacestd;

intmain()

(

voidfunction(doubleval);

doubleval;

function(val);

cout?val;

return0;

)

voidfunction(doubleval)

}val=3;}

編譯運行這個程序?qū)⒊霈F(xiàn)的狀況是()。

A)編譯出錯,無法運行

B)輸出:3

c)輸出:3.0

D)輸出一種不確定口勺數(shù)

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

A)用一種對象去初始化同一類日勺另一種新對象時

B)將類的I一種對象賦值給該類的另一種對象時

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

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

(24)如下美鍵字不能用來申明類的訪問權(quán)限的足()。

A)public

B)static

C)pi'otected

D)private

(25)由于常對象不能被更新,因此()。

A)通過常對象只能調(diào)用它的常組員函數(shù)

B)通過常對象只能調(diào)用靜態(tài)組員函數(shù)

C)常對象口勺組員都是常組員

D)通過常對象可以調(diào)用任何不變化對象值的組員函數(shù)

(26)下列有關(guān)繼承和派生的論述中,對日勺的是()。

A)假如一種派生類公有繼承其基類,則該派生類對象可以訪問基類的保護(hù)組員

B)派生類日勺組員函數(shù)可以訪問基類日勺所有組員

0基類對象可以賦值給派生類對象

D)假如派生類沒有實現(xiàn)基類的一種純虛函數(shù),則該派生類是一種抽象類

(27)在公有繼承的狀況下,容許派生類直接訪問的基類組員包括()。

A)公有組員

B)公有組員和保護(hù)組員

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

D)保護(hù)組員

(28)有如下程序:

#include<iostream>

usingnamespacestd:

classBase{

public:

voidfun(){

cout<<nBase::funM?endl;}

);

classDerived:publicBase{

public:

voidfunO{

cout<<wDerived::fun“<<endl:

)

};

intmain(){

Derivedd;

d.fun();

return0;

}

已知其執(zhí)行后口勺輸出成果為:

Base::fun

Derived::fun

則程序中下畫線處應(yīng)填人的語句是(

A)Base.fun();

B)Base::fun();

C)Base->fun();

D)fun();

(29)有如下程療:

#include<iostream>

usingnamespacestd;

classMyClass{

public:

MyClass(){cout?,A';}

MyClass(charC){cout?C;}

?MyClass0{cout<<‘B';)

};

intmain(){

MyClasspL+p2;

p2=newMyC1assCX');

deletep2;

return0;

)

執(zhí)行這個程序H勺輸出成果是()。

A)ABX

B)ABXB

C)AXB

D)AXBB

(30)有如下程序:

#include。osIream〉

usingnamespacestd:

inti=l;

classFun{

public:

staticinti;

intvalue(){returni-1;}

intvalue()const(returni+1;}

};

intFun::i=2;

intmain(){

inti=3;

Funfunl;

constFunfun2:

return0;

)

若程序日勺輸出成果是:

123

則程序中下畫線處遺漏的語句是()。

A)cout?funl.value()?Fun::i?fun2.value();

B)tout?Fun::i?funl.value()?fun2.value();

C)cout?funl.value()<<ful12.value()?Fun::i:

D)eout?fun2.value()?Fun::i?funl.value();

(31)有如下程序:

#include<iostream>

usingnamespacestd;

classObj{

staticinti;

public:

Obj(){i++;}

一Obj(){i——;}

staticintgetVal(){returni;}

);

intObj::i=0:

voidf(){Objob2;cout?ob2.getVai();}

intmain(){

Objobi;

f();

0bj}ob3=newObj;cout?ob3—*>getVal():

deleteob3;cout?0bj::9etVal();

return0;

)

執(zhí)行這個程序的輸出成果是()O

A)232

B)231

C)222

D)221

(32)有如下程序:

#include<iostream>

usingnamespacestd;

classPair{

intm,n;

public:

Pair(intj,intk):m(j),n(k){}

intget(){returnm;)

intget()const(returnm+n;}

):

intmain(){

Paira(3,5);

constPairb(3,5);

tout?a.get()>?b.get。;

returnU:

)

執(zhí)行這個程序的輸出成果是()。

A)33

B)38

083

D)88

(33)有如下程序:

#inc1ude<iostroam>

usingnamespacestd:

classBase{

protected:

Base(){cout<<,A';}

Base(charC)(cout<<c;j

);

classDerived:publicBase{

public:

Derived(charc){tout<<C;}

);

intmain(){

Deriveddl('B');

return0;

}

執(zhí)行這個程序R勺輸出成果是()o

A)B

B)BA

C)AB

D)BB

(34)有如下類定義:

classMyB<ise(

intk;

public:

MyBase(intn=0):k(n)}(

intvalue()const(returnk;}

);

classMyDerived:MyBase{

intj;

public:

MyDerived(inti):j(i)|}

intgctK()const{returnk;}

intgetj()const{returnj;}

);

編譯時發(fā)既有一處語法錯誤,對這個錯誤最精確的描述是()。

A)函數(shù)9etK試圖訪問基類U勺私有組員變量k

B)在類MyDerived日勺定義中,基類名MyBase前缺乏關(guān)鍵字public、protected或private

C)類MyDerived缺乏一種無參的構(gòu)造函數(shù)

D)類MyDerived日勺構(gòu)造函數(shù)沒有對基類數(shù)據(jù)組員k進(jìn)行初始化

(35)有如下程序:

#include<iostream>

usingnamespacestd:

classInstrument{

public:

virtualvoidDisplay()=0;

};

classPianO:publicInstrument)

public:

voidDisplay(){/*函數(shù)體略*/}

);

intmainO{

InstrumentS;

Instrumcnt*P=0:

//???;

return0;

)

下列論述中對的的是()o

A)語句"Insturment*P=0;"編譯時出錯

B)語句°Instnunents;”編譯時出錯

C)類PianO中H勺Display函數(shù)不是虛函數(shù)

D)類Instrument是一種虛基類

(36)有如下程序:

#include<iostream>

usingnamespacestd;

classA{

public:

virtualvoidfancl(){cout?MAP*;}

voidfunc2(){cout?wA2r;)

);

classB;publicA(

public:

voidfunci(){tout?MBl";)

voidfunc2(){tout?wB2";)

);

intmainO)

A*P=newB:

P—>funcl();

P—>func2();

deletep;

return0;

)

執(zhí)行這個程序日勺輸出成果是()o

A)B182

B)A1A2

OB1A2

D)AIB2

(37)有關(guān)在調(diào)用模板函數(shù)時模板實參日勺使用,下列表述中對的的是()o

A)對于虛擬類型參數(shù)所對應(yīng)的模板實參,假如能從模板函數(shù)的實參中獲得相似的信息,則都

可以省略

B)對于虛擬類型參數(shù)所對應(yīng)的模板實參,假如它們是參數(shù)表中的最終日勺若干個參數(shù),則都可

以省略

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

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

(38)有關(guān)關(guān)鍵字class和typename,下列表述中對H勺的是()。

A)程序中日勺typename都可以替代為class

B)程序中日勺class都可以替代為typenamc

0在模板形參表中只能用{ypena唳來申明參數(shù)H勺類型

D)在模板形參表中只能用class或typenanle來申明參數(shù)的I類型

(39)在下列枚舉符號中,用來表達(dá)“相對于目前位置”文獻(xiàn)定位方式的是()。

A)ios_base::cur

B)ios-base::beg

C)los_base;:Out

D)ios—base::end

(40)下列有關(guān)C++流口勺描述中,錯誤的I是()。

A)cout?'A'體現(xiàn)式可輸出字符A

B)eof()函數(shù)可以檢測與否抵達(dá)文獻(xiàn)尾

C)對磁盤文獻(xiàn)進(jìn)行流操作時,必須包括頭文獻(xiàn)「stream

D)以iosbase::Out模式打開的文獻(xiàn)不存在時,將自動建立一種新文獻(xiàn)

二、基本操作題(共18分)

請使用VC6或使用【答題】菜單打開考生文獻(xiàn)夾projl下的工程projl,此工程中包括一種

源程序文獻(xiàn)

main.cpp,具中杓類Book(',書”)和主函數(shù)main的定義。程序中位于每個“//

ERROR****found****”下

的語句行有錯誤,請加以改正。改正后程序的輸出成果應(yīng)當(dāng)是:

書名:C++語句程序設(shè)計總頁數(shù):299

已把“C++語言程序設(shè)計”翻到第50頁

已把“C++語言程序設(shè)計”翻到第51頁

已把“C++語言程序設(shè)計”翻到第52頁

已把“C++語言程序設(shè)計”翻到第51頁

已把書合上。

目前頁:0

注意:只修改每個“//ERROR***「ound***"下的那一行,不要改動程序中的其他內(nèi)容。

#include<iostream>

usingnamespacestd;

classBook{

char*title;

intnum—pages;//頁數(shù)

intcur_pagc;//目前打開頁面的I頁碼,0表達(dá)書未打開

pub1ic:

//ERROR***********foiind***********

Book(constchar*theTitie,intpages)numpages(pages)

{

ti11e=ncwchar[strlen(theTitle)+l];

strepy(title,theTitie);

cout?endl<<”書名:”《title

<<“總頁數(shù):°<<num_pages;

)

^*Book(){deletedtitle;)

boolisClosed()const{returncur_0;}//書合上時返回true,否則返回false

boolisOpenOconst{return!isClosedO;}//書打開時返回true,否則返回false

intnumOfPages()const{returnnumpages;)//返回書的)頁數(shù)

intcurrentPage()const{returncur_page;}//返回打開頁面H勺頁碼

//ERROR***********foiind***********

voidopcnAtPage(intpage_no)const{//把書翻到指定頁

cout<<endl:

iupageno<lJjpageno>humpages){

tOUt?w無法翻至ij第”?curpage<<“頁.”;

ClOSe();

)

else(

curpage=pagenO;

tout?!耙寻逊罥I第“<<curpage?“頁”;

)

}

voidopenAtPrevPageO{openAtPage(curpage—I);{//把書翻到上一頁

voidopenAtNextPage(){openAtPage(curpage+1);)//把書翻到F一頁

voidcloseO{//把書合上

tout?endl:

if(isClosedO)

tout<<"書是合上的I。

else{

//ERROR**********found**********

num_pages=O;

cout。”已把書合上。”;

)

cOut<<endl;

)

};

intmain(){

Bookbook("C++語言程序設(shè)計",299);

book,openAtPage(50);

book.openAtNextPageO:

book.openAtNextPageO:

book.openA.tPrevPageO;

book,close();

tout?w目前頁:"<<book.currcntPage()<<endl;

return0:

)

三、簡樸應(yīng)用題(共24分:)

請使用VC6或使用【答題】菜單打開考生文獻(xiàn)夾proj2下的工程proj2。此工程中包括一種

源程序文獻(xiàn)

main.cpp,其中有“房間”類Roon]及其派生出口勺“辦公室”類Office的定義,尚有主函

數(shù)main的定義。請在程

序中“//****f°und****”下的橫線處填寫合適的代析并刪除橫線,以實現(xiàn)上述類定義。

此程序日勺對日勺輸出

成果應(yīng)為:

辦公室房間號:308

辦公室長度:5.6

辦公室寬度:4.8

辦公室面積:26.88

辦公室所屬部門:會計科

注意:只能在橫線處填寫合適時代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動”/

//料料found?料

#include<isotream)

usingnamespaeestd;

classRccm{//"房間”類

introomnO;//房間號

doublelength;//房間長度(m)

doublewidth;//房間寬度(nl)

public:

Room(intthe-room-nO,doublethe?length,doublethe-width):loom-no(the-room

-no),length(the-

length),width(the—width){}

inttheRoomNo()eonst{returniDonl—nO;}

//返回房間號

doubletheLength()const{returnlength;}//返回房間長度

doubletheWidth()const{returnwidth;}//返回房間寬度

//**********found**********

doublethcArcaOconst(}//返回房間面積(矩形面積)

};

classOffice:publicRoom{//“辦公室”類

char*depart;//所屬剖門

public:

Officc(intthcroomnC,doublethelcngth,doublethewidth,constchar木

thedopart)

//**********found**********

depart=newchar[strlen(thedepart)+1];

//**********found**********

strepy();

)

?Office。idelete[]depart:}

constchar*theDepartment()const{returndepart;}//返回所屬部門

};

intmain(){

//**********「0und**********

Office;

cout?n辦公室房間號:"<<auoffice.theRoomNo()<<end1

<<”辦公室長度:”<<anoffice.theLength0?endl

?w辦公室寬度:”《anOffice.thcWidthO?endl

<<n辦公室面積:"〈〈anoffice.theArea()<<endl

<<"辦公室所屬部門:”<<all一office.theDepartment()?endl;

return0;

)

四、綜合應(yīng)用題(共18分J

請使用VC6或使用【答題】菜單打開考生文獻(xiàn)夾proj3下的工程文獻(xiàn)proj3。本題創(chuàng)立一種

小型字符串類,字符串長度不超過100。程序文獻(xiàn)包括pmj3.h、proj3.cpp、writeToFile.obj。

補充完畢重載賦值運算符函數(shù),完畢深復(fù)制功能。

屏幕上輸出的對H勺成果應(yīng)當(dāng)是:

Hello!

Happynewyear!

補充編制H勺內(nèi)容寫在"http://**********333**********"與"http://**********666**********"

兩行之間。

不得修改程序的其他部分、

注意:

程序最終調(diào)用writeToFilo函數(shù),使用另?組不?樣的測試數(shù)據(jù),將不?樣的運行成果輸

出到文獻(xiàn)Out?dat中。

輸出函數(shù)writeToFile已經(jīng)編譯為obj文獻(xiàn)。

//proj3.h

#includc<iostrcam>

#include<iomanip>

usingnamespacestd:

classMiniString

pubhc:

friendo8tream&operator?(oatream&output,constMiniString&s)//重載流插入運算

{output?s.sPtr;returnoutput;}

friendistream&operator?(istream&input,MiniString&8)//重載流提取運算符

{chartemp[100];//用于輸入的I臨時數(shù)組

temp[0]=>\0\//初始為空字符串

input>>setw(100)>>temp;

intinLcn=strlen(temp);//輸入字符串長度

if(inLen!=0)

)

s.length=inLen;//賦長度

if(s.sPtr!=0)delete[]s.sPtr;//防止內(nèi)存泄漏

s.sPtr=Howcharts,lcngth+1];

strcpy(s.sPtr,temp);//假如8不是空指針,則復(fù)制內(nèi)容

)

elses.sPtr[O]=>\D';//假如s是空指針,則為空字符串

returninput;

)

voidmodString(constchar}string2)//更改字符串內(nèi)容

{

if(strin921=0)//假如strin92不是空指針,則復(fù)制內(nèi)容

(

if(strlcn(strin92)!=lcngth)

(

length=strlen(strin92);

delete[]sPtr;

sPtr=newchar[length+1];//分派內(nèi)存

)

strcpy(sPlr,strin92);

)

elsesPtr[O]=,\0\//假如string2是空指針,則為空字符串

)

MiniString&operator=fconstMiniString&otherString);

MiniString(corotchar*s=""):Icngtll((s!=O)?strlcn(s):0)//構(gòu)造函數(shù)

(

sPtT=0:

if(length[=0)

setString(S);

)

--MiniStringO//析構(gòu)函數(shù)

{delete[]sPtr:}

private:

intlength;//字符串長度

char*sPtr;//指向字符串起始位置

voidsetString(constchar*string2)//輔助函數(shù)

sPtr=Dewchar[str|en(string2)+l];//分派內(nèi)存

if(stnl192!=0)strcpy(sPtr,string2);//假如string2不是空指針,則復(fù)制內(nèi)容

elseslur[0]=\0,;//假如string2是空指針,則為空字符串

)

};

//pwj3.cpp

include<iostream>

#include<iomanip>

usingnamespacestd;

#include”proj3.h”

MiniString&MiniStrin9::0perator=(constMiniString&otherString)

{//重載賦值運算符函數(shù)。提醒:可以調(diào)用輔助函數(shù)setString

//*************333**********

//*************666**********

)

intmain()

MiniSu*ingstrl(,fHeuo!n),str2;

voidwriteToFile(constchar*);

sir2=strl;//使用重載的賦值運算符

str2.modString("Happynewyear!”);

cout?strl?,\n*:

cout?str2?,\n:

writeToFile(**);

return0;

)

無紙化真考題庫試卷(2)

一、選擇題

(1)B【解析】棧是先進(jìn)后出口勺原則組織數(shù)據(jù),因此入棧最早R勺最終出棧,因此選擇B。

(2)D【解析】循環(huán)隊列有隊頭和隊尾兩個指針,不過循環(huán)隊列仍是線性構(gòu)造U勺,因此A錯

誤;在循環(huán)隊列中需要隊頭指針與隊尾指針來共同反應(yīng)隊列中元素的動態(tài)變化狀況,因此B

與C錯誤。

(3)C【解析】當(dāng)有序線性表為次序存儲時才能用:二分法查找??梢宰C明的是對于長度為n

時有序線性表,在最壞狀況下,二分法查找只需要比較IO92n次,而次序查找需要比較n次。

(4)A【解析】鏈?zhǔn)酱鎯?gòu)造既可以針對?線性構(gòu)造也可以針對非線性構(gòu)造,因此B與C錯誤。

鏈?zhǔn)酱鎯?gòu)造中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分構(gòu)成,增長了存儲空間,因此D錯誤。

(5)D【解析】數(shù)據(jù)流圖中帶箭頭的線段表達(dá)口勺是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,

一般在旁邊標(biāo)注數(shù)據(jù)流名,

(6)B【解析】在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,鑒定樹與

鑒定表,因此選擇B。

(7)A【解析】對象有如下某些基本特點:標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨

立性好。因此選擇A。

(8)B【解析】由于一間宿舍可以住多種學(xué)生即多種學(xué)生住在一種宿舍中,但一種學(xué)生只能

住一間宿舍,因此實體宿舍和學(xué)生之間是一對多日勺關(guān)系。

(9)C【解析】數(shù)據(jù)管剪發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文獻(xiàn)系統(tǒng)階段和數(shù)據(jù)

庫系統(tǒng)階段。其中最終一種階段構(gòu)造簡樸,使用以便邏輯性強物理性少,在各方面的體現(xiàn)都

最佳,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,因此選擇c。

(10)D【解析】自然連接是一種特殊的等值連接,它規(guī)定兩個關(guān)系中進(jìn)行比較的分量必須是

相似的屬性組,并且在成果中把反復(fù)口勺屬性列去掉,因此根據(jù)T關(guān)系中日勺有序組可知R與s

進(jìn)行的是自然連接操作。

(11)D【解析】const是一種C++關(guān)鍵字,用于限定不容許變化的變量。選項B是指向常量的

指針,定義時可以不初始化:選項D是指針常量,定義時必須初始化。故答案為D。

(12)A【解析】本題考察if語句,if語句的條件部分不能嵌套if語句,因此A選項錯誤;B

選項就是if語句嵌套;C選項其實就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,因此效果

同樣;D選項也對的。

(13)B【解析】本題考察指向數(shù)組的指針,本題中指針變量P指向數(shù)組a,那么*PH勺值就是

1,即表達(dá)數(shù)組的第一種元素,那么數(shù)值為9日勺體現(xiàn)式就是將指針向后移動8個地址,即P+8

指向的是數(shù)組元素值為9,因此數(shù)值為9的體現(xiàn)式是*(P+8)。

(14)A【解析】本題考察指針和引用。①為引用,使用玄孫④中&r表達(dá)一一種地址,而*

P已經(jīng)是一種值了,不能將一種指針賦值給一種值,因此編譯錯誤。

(15)D【解析】本題考察C++標(biāo)識符的命名規(guī)則,其規(guī)則有如下幾點:①所有標(biāo)識符必須由

字母、數(shù)字或下畫線構(gòu)成:且必須由字母或下畫線開頭;②所有標(biāo)識符不能使用C++已經(jīng)有

的關(guān)鍵字;③大、小寫字以表達(dá)不一樣意義,即代表不一樣W、J標(biāo)識符。選項C中雖然return

是關(guān)鍵字,但因首字母大、小寫不一樣,也可用于標(biāo)識符,但不提議使用。故答案為D。

(16)B【解析】一般函數(shù)進(jìn)行調(diào)用時,要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)

用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時,是將調(diào)用體現(xiàn)式用內(nèi)聯(lián)函數(shù)體來替代,即類似于宏。

(17)A【解析】重載運算符MJ規(guī)則如下:①C++不容許顧客自己定義新的運算符,只能對己

經(jīng)有的C++運算符進(jìn)行重或;②C++不能重載的運算符只有5個;③重載不能變化運算符運

算對象的個數(shù);④重載不能變化運算符的優(yōu)先級和結(jié)合性;⑤重載運算符的函數(shù)不能有默認(rèn)

的參數(shù);⑥重載的運算符必須和顧客定義的自定義類型的對象一起使用,至少應(yīng)有一種是類

對象,即不容許參數(shù)所有是C++的原則類型。故本題答案為A.

(18)A【解析】變量的存儲措施分為靜態(tài)存儲和動態(tài)存儲兩大類,包括4種:自動的(auto)、

靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量假如沒有闡明存儲類型,那么默認(rèn)

就是autOo

(19)D【解析】本題考察運算符重載H勺某些規(guī)則:①一般狀況下,單目運算符最佳重載為類

的組員函數(shù),雙目運算符則最佳重載為類的友元函數(shù);②雙目運算符=、()、口、。不能重載

為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一種類的組員函數(shù),而不能定義為類的友元函

數(shù);④若一種運算符的操作需要修改對象的狀態(tài),選擇重載為組員函數(shù)很好:⑤若運算符所

需的操作數(shù)(尤其是第一種操作數(shù))但愿有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運算符

函數(shù)是一種組員函數(shù)時,最左邊口勺操作數(shù)(或者只有最左邊的操作數(shù))必須是運算符類的一種

類對象(或者是對該類對象B勺引用):假如左邊的操作數(shù)必須是一種不一樣類的I對象,或者是

一種內(nèi)部類型日勺對象,該運算符函數(shù)必須作為一種友元函數(shù)來實現(xiàn)。因此答案為D。

(20)A【解析】本題考察函數(shù)實參個數(shù)口勺基礎(chǔ)知識,根據(jù)實參口勺概念,(a+b)、3、mflJc(n一

1,b)分別為其中的3個實參。故答案為A。

(21)c【解析】重載運算符的規(guī)則如下:①C++不容許顧客自己定義新H勺運算符,只能對已經(jīng)

有的C++運算符進(jìn)行重載;②C++不能重載的運算符只有5個;③重載不能變化運算符運算

對象的個數(shù);④重載不能變化運算符的優(yōu)先級和結(jié)合性;⑤重載運算符口勺函數(shù)不能有默認(rèn)的

參數(shù);⑥重載的運算符

必須和顧客定義日勺自定義類型日勺對象?起使用,至少應(yīng)有?種是類對象,即不容許參數(shù)所有

是C++的原則類型。故本題答案為c。

(22)D【解析】本題考察函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時,并沒有將3

時值傳回來,而val又沒有初始化,因此會輸出一種不確定的I值,D選項對R勺。

(23)6【解析】本題考察復(fù)制構(gòu)造函數(shù),在如下3種狀況下使用:①程序中需要新建立一種

對象,并用另一種對象對它初始化;②函數(shù)11勺參數(shù)為類的對象;③函數(shù)的返回值是類的對象。

其中B選項是由賦值運算符重載實現(xiàn)的。

(24)B【解析】類的組員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private(私有)。

(25)A【解析】本題考察常對象的基本知識,常對象只能調(diào)用它的常組員函數(shù),而不能調(diào)用

非const函數(shù),常對象U勺組員函數(shù)不一定都是常組員函數(shù),只需保證其數(shù)據(jù)組員是常數(shù)據(jù)組

員即可。因此本題選A。

(26)D【解析】私有繼承方式為基類的公用組員和保護(hù)組員在派生類中成了私有組員,其私

有組員仍為基類私有,但派生類對象可以訪問基類H勺保護(hù)組員,因此基類對象不能賦值給派

生類對象。抽象類是指具有純虛擬函數(shù)的類,因此選項D對的J。

(27)B【解析】本題考察公用繼承對基類組員的訪問屬性。在公用繼承中,基類的公用組員

和保護(hù)組員在派生類中保持原有日勺訪問屬性,其私有組員仍為基類私有。因此本題答案為B。

(28)B【解析】本題考察公用繼承對基類組員的訪問屬性。在公用繼承中,基類的公用組員

和保護(hù)組員在派生類中保持原有的訪問屬性,其私有組員仍為基類私有。本題中想要輸出

Base::fun,則必須調(diào)用基類日勺公用組員函數(shù)fun,因此使用Base::fun();來調(diào)用基類的組

員函數(shù)fun。

(29)D【解析】構(gòu)造函數(shù)和析構(gòu)函數(shù)H勺調(diào)用次序為先構(gòu)造H勺后析構(gòu),后構(gòu)造的先析構(gòu)。因此

本題答案為D。

(30)A【解析】本題考察構(gòu)造函數(shù)、常組員函數(shù)和靜態(tài)數(shù)據(jù)組員。外部同名H勺變量賦值,不

能變化類的靜態(tài)變量值,因此Fun對象里的i值為2,因此本題答案為A。

(31)D【解析】本題考察構(gòu)造函數(shù)和析構(gòu)函數(shù)的J調(diào)用次序,調(diào)用次序為先構(gòu)造的后析構(gòu),后

構(gòu)造的先析構(gòu)。本題中先定義了一種對象。bl,會執(zhí)行構(gòu)造函數(shù),那么i就變?yōu)榱薎;再執(zhí)行

函數(shù)f后,由于又定義了一種對象。b2,因此再次執(zhí)行構(gòu)造函數(shù),i就變?yōu)榱?,輸出了20

函數(shù)執(zhí)行完后執(zhí)行析構(gòu)函數(shù),i變?yōu)榱?,然后又定義了對象指針,i變?yōu)榱?。釋放。b3后,

i變?yōu)榱?,因此答案為D。

(32)B【解析】本題考察常對象、常組員函數(shù)及構(gòu)造函數(shù)。常對象只能調(diào)用常組員函數(shù),因

此本題中,對象a為一般對象,執(zhí)行a.get()后,會執(zhí)行默認(rèn)構(gòu)造函數(shù),輸出3;對象b為

常對象,執(zhí)行b.get()后,會執(zhí)行常構(gòu)造函數(shù),輸出8。

(33)C【解析】本題考察派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù).在定義一種派生類的對象時,先調(diào)

用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類口勺構(gòu)造函數(shù);對象釋放時,先執(zhí)行派生類日勺析構(gòu)函數(shù),

再執(zhí)行基類及I析構(gòu)函數(shù)。本題中定義了一種派生類對象dl,首先執(zhí)行基類口勺構(gòu)造函數(shù),輸

出A;然后執(zhí)行派生類的構(gòu)造函數(shù),輸出B。因此答案為C。

(34)A【解析】默認(rèn)繼承方式為私有繼承,私有繼承將基類的公用組員和保護(hù)組員都變?yōu)閞

私有組員,基類的私有組員仍然屬于基類私有,派生類不能訪問基類的私有組員。因此A

選項對"勺。

(35)B【解析】本題考察純虛函數(shù)和抽象類,純虛函數(shù)是在申明虛函數(shù)時被“初始化”為0

的函數(shù),包括純虛函數(shù)n勺類為抽象類,抽象類不能被實例化,因此語句“In5tminents;”在

編譯時出錯。

(36)C【解析】本題考察虛函數(shù)。虛函數(shù)指在基類中申明為virtual并在一種或多種派生類中

被重新定義的I組員函數(shù)。邈中定義了一種派生類對象8,并使用類A日勺對象指針指向B,由

于基類A中口勺fund為虛函數(shù),因此會執(zhí)行派生類的fund,輸出Bl,而基類中的func2不是

虛函數(shù),因此P->func2()會執(zhí)行基類的func2,輸出A2。故答案為c。

(37)D【解析】在調(diào)用一種模板函數(shù)時,編譯系統(tǒng)需要足夠的信息來鑒別每個虛擬類型參數(shù)

所對應(yīng)的實際類型,可以從兩個不一樣的渠道獲得這樣的信息:從模板實參表(用“<>”括

起來的參數(shù)表)或從模板豕數(shù)實參表(用“()”括起來U勺參數(shù)表)。假如從后者獲得的信息已經(jīng)

可以鑒定其中部分或所有電擬類型參數(shù)所對應(yīng)的實際參數(shù),并且它們又恰好是參數(shù)表中最終

的若干參數(shù),則模板實參表中的那幾種參數(shù)可以省略。假如模板實參表中日勺實參都被省略了,

則空表“<>”也可以不要,因此選項D錯誤。反之,對于某個模板實參,假如從模板函數(shù)

的實參表中無法獲得同樣的信息,,就不能省略:或者雖然可以獲得同樣口勺信息,但在它背面

尚有其他不能省略的實參,則其自身還是不能省略。

(38)A【解析】程序中的typename都可以替代為class,但程序中的class不可以所有替代為

typenameo在模板類型形參中除了typename和class以外,也可以用常規(guī)類型來申明參數(shù)

的類型,因此C、D選項錯誤。

(39)A【解析】streamoff定義于iostream,h中,定義有偏移量Offset所能獲得的最大值,

seek—dir表達(dá)移動的基準(zhǔn)位置,是一種有如下值的枚舉:ios::be9:(文獻(xiàn)開頭)、ios::cur:

(文獻(xiàn)目前位置.)、ios::end:(文獻(xiàn)結(jié)尾)。

(40)A【解析】本題考察C++流,想要輸出字符“A”,貝!應(yīng)當(dāng)是cout<<"A",因此本題答案

為A。

二、基本操作題

【參照答案】

(l)Book(constchar*theTifle,intpages):num_pages(pages)

(2)voidopenAtPage(intpage—no)//把

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論