版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷
第1套
一、選擇題(本題共18題,每題1.0分,共18分。)
1有如下程序:#includeusingnamespacestd;classBase(private:void
funl()const{cout?t4fun}protected:voidIiin2()const{coutvv"fun2'';)public:
voidfUn3()const{coutvv“fiin3'':}}:classDerived:pmtectedBase{public:void
fun40connt{cout<<“fun4";));intmain(){Derivedobi;obj.funl();//①
obj.fun2();//②obj.fun3();//③obj.fun4();//(4)return0;}其中有
語法錯(cuò)誤的語句是()。
A、①②③④
B、?@?
C、②③④
D、①④
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,受保護(hù)繼承中,基類
的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)
基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以①②③錯(cuò)誤。
2、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬
于系統(tǒng)軟件的是()。
A、編輯軟件
B、操作系統(tǒng)
C、教務(wù)管理系統(tǒng)
D、瀏覽器
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:軟件根據(jù)應(yīng)用目標(biāo)的不同,是多種多樣的。軟件按功能可以分為:應(yīng)
用軟件、系統(tǒng)軟件、支承軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而
開發(fā)的軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用
戶提供各種服務(wù)的軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)
軟件的工具性軟件,包后輔助和支持開發(fā)和維護(hù)應(yīng)用軟件的工具軟件,還包括輔助
管理人員控制開發(fā)進(jìn)程和項(xiàng)目管理的工具軟件。
3、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯(cuò)誤的是
()。
A^charfun(int,int);
B>doublefun(int,int,double);
*
C、intfun(int,char);
D、floatfun(int,int,int);
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:重載函數(shù)至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上不同。而選項(xiàng)D中的函數(shù)
與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個(gè)數(shù)及類型),則不能作為重載
函數(shù)來使用。
4、關(guān)于this指針的說法不正確的是()。
A、不能在程序中修改this指針
B、ihis指針可以給其他指針賦值,但不能修改this指針
C、靜態(tài)成員函數(shù)中沒有this指針
D、this指針可以被賦值
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:this指針不能在程序中修改,不能被幅值;靜態(tài)成員沒有this指針,
因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,使用this指針無意義。
5、有如下程序:#includeusingnamespacestd;classA{public:A(inti=0):
rl(i){}voidprini(){coui?'Ey*rl?'-';}voidprint(int}
private:intrl;);intmain(){Aal;constAa2(4);al.print(2);a2.print。;
return0;}運(yùn)行時(shí)的輸出結(jié)果是()。
A、P8-E4
B、P8-C16-
C、P0-E4-
D、P0-C16-
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建al對(duì)象時(shí),調(diào)用類A的默認(rèn)構(gòu)造函數(shù),其數(shù)據(jù)成員
rl的值等于0。當(dāng)執(zhí)行al.prin《2)語句時(shí),調(diào)用帶參數(shù)的print成員函數(shù),所以輸
出結(jié)果為pO-,對(duì)象a2為常成員,所以其成員變量rl的值等于4,因?yàn)槌?duì)象只
能調(diào)用常成員函數(shù),所以當(dāng)執(zhí)行語句a2.print。語句時(shí),輸出結(jié)果為C14-。
6、有如下程序:#includeusingnamespacestd;className{charname[20];
public:Name(){strcpy(name,"");cout<<4?\)
Name(char*fname){strcpy(name,fname);cout<<t7,;));intmain(){Name
names[3]={Name("張三)Name(“李四")};return0:}運(yùn)行此程序輸出符號(hào)?的個(gè)
數(shù)是()。
A、0
B、1
C、2
D、3
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:類Name有兩個(gè)構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組。Flame
賦窄值,并輸出一個(gè)?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的
字符串賦給字符數(shù)組name,并輸出一個(gè)?。所以在主函數(shù)中,定義了Name的三個(gè)
對(duì)象,F(xiàn)lamelOhname|lhname|2|,在創(chuàng)建這三個(gè)對(duì)象時(shí),會(huì)調(diào)用構(gòu)造帶參數(shù)的
函數(shù)對(duì)前兩個(gè)對(duì)象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時(shí)會(huì)輸
出j個(gè)“?”符號(hào)。
7、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。
A、WHILE
B>user
C^_lvar
D、9stars
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)
字符必須是字母或者下劃線。
8、下列符號(hào)中不屬于C++關(guān)鍵字的是()。
A、friend
B、namespace
C、continue
D^byte
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是C++語言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類時(shí)
用到的關(guān)鍵字:namespace是定義或使用名字空間時(shí)用到的關(guān)鍵字;conlinue是終
止本次循環(huán)直接開始下一次循環(huán)所用到的關(guān)鍵字:byte是字節(jié)的意思,它不是C++
語言中的關(guān)鍵字。
9、下列說法中錯(cuò)誤的是()。
A、公有繼承時(shí)基類中的public成員在派生類中仍是public的
B、公有繼承時(shí)基類中的private成員在派生類中是public的
C、私有繼承時(shí)基類中的public成員在派生類中是private的
D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:公有繼承中,基類的公有成員和保護(hù)成員在派生類中保持原有訪問屬
性,其私有成員仍為基類私有。所以B是錯(cuò)誤的,即選擇B。
10、己知函數(shù)FA調(diào)用FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則()。
A、FA必須定義在FB之前
B、FB必須定義在FA之前
C、若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前
D、若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在C++中,在調(diào)用任何函數(shù)之前,必須確保它已有原型說明。函數(shù)
原型說明通常放在程序文件的頭部,以使得該文件中所有函數(shù)都能調(diào)用它們。在本
題中,當(dāng)函數(shù)FA調(diào)用FB時(shí),,函數(shù)FB可以定義在FA的后面,但是FB的原型必
須出現(xiàn)在FA的定義之前,因而選項(xiàng)D)為正確答案。
11、有如下程序:#includeusingnamespacestd;classComplex{doublere,im;
public:Complex(doubler,doublei):re(r),im(i){|doublereal()const[returnre;}
doubleimage()const{returnim;)Complex&operator-I-=(Complexa){re+=a.re;
*
im+=a.im;returnthis;));ostream&operator?(ostream&s,const
Complex&z){returns?,(,<
A、(1,-2)
B、(2,3)
C>(3,5)
D、(3,1)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查了運(yùn)算符重載應(yīng)用。因?yàn)閤和y都是Complex類的對(duì)象,
Complex類中已經(jīng)重載了+=運(yùn)算符,表達(dá)式x+二丫就等價(jià)與x.operator+=
(y),執(zhí)行后得到(3,1);接著計(jì)算cout?(x+=y),其等價(jià)于調(diào)用
opcrator?(cout,(x十一y)),最后輸出結(jié)果是(3,1)。
12、有如下類定義:classMyClass{intb;chara;doublec;public:MyClass():
c(0.0),b(0),a(L,){}}:創(chuàng)建這個(gè)類的對(duì)象時(shí),數(shù)據(jù)成員的初始化順序是()。
A、a,b,c
B、c,b,a
C、b,a,c
D、c,a,b
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:類的成員初始化順序與成員變量在構(gòu)造函數(shù)中的位置先后順序無關(guān),
只與成員變量在類中定義的先后順序有關(guān)。
13、執(zhí)行下列語句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>l;I-
=2)cout?,*';
A、24
B、25
C、26
D、50
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語句。執(zhí)行循環(huán)語句,變量i從50遞減,每次
減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè),*L
14、有如下類定義:classPoint{private;staticinthow_many;);
how_many=0:要初始彳七Point類的靜態(tài)成員how_many,下劃線處應(yīng)填
入的內(nèi)容是()。
A、ing
B、staticint
C>intPoint::
D、staticintPoint::
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行
初始化,且初始化的一股格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名二初始值,
15、下列函數(shù)原型聲明中,錯(cuò)誤的是()。
A、intfunction(intm,intn);
B、intfunction(int,int):
C>intfunction(intm=3,intn);
D、intfunction(int&m,int&n);
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱
為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須提供的參數(shù)
個(gè)數(shù)和類型。其語法為:(返回類型><函數(shù)名>(〈形參列表>);使用函數(shù)原型說明
有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個(gè)分號(hào);②在函數(shù)原
型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個(gè)數(shù)及次
序。在選項(xiàng)C)中,給出了形參變量m的初值。
16、下列有關(guān)繼承和派生的敘述中,正確的是()。
A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員
B、派生類的成員函數(shù)可以訪問基類的所有成員
C、基類對(duì)象可以賦值給派生類對(duì)象
D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論是哪種繼承方式,派生類都能夠訪問
基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤:公有
繼承時(shí),基類的對(duì)象不可作為派生類的對(duì)象處理,即基類對(duì)象不可賦值給派生類對(duì)
象,所以選項(xiàng)C錯(cuò)誤。
17、有如下4個(gè)語句:①coutVV'A'VVsetfW('*')VVleftVVsetw⑺VVEV
<endl;@cout<<setfi11(left<<setw(7)<<'A'<<,B,<<endl;(3)cout
<<'A'VVserfill('*')V〈rightVVsetw⑺VV'B'<<endl;?cout<Vsetfilf*')
VVrightVVsetw(7)V<'A'VV'B'VVendl;其口能顯示A******B的是()。
A、①和③
B、①和④
C、②和③
D、②和④
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查C++流的使用。setfill。作用是設(shè)置填充字符;left是使輸出
數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊:fighl是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。
18、為類Matrix重載下列運(yùn)算符時(shí),只能作為Matrix類成員函數(shù)重載的運(yùn)算符是
()o
A、+
B、=
C、<<
D^++
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在C++中,=、小()、以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員
函數(shù)重載。
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷
第2套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。
A、_256
B、fxt/pig
C、delete
D、5char
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a?z或A?Z)或
下劃線0開頭:②標(biāo)識(shí)符的其他部分可以用字母、下劃線或數(shù)字(0?9)組成;③大
小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如gout和Cout。
2、下列枚舉類型的定義中,包含枚舉值3的是()。
A、enumtest(RED,YELLOW,BLUE,BLACK);
B、enumtest{RED,YELLOW=4,BLUE,BLACK);
C、enumtest{RED=-l,YELLOW,BLUE,BLACK);
D、enumtest(RED,YELLOW=6,BLUE,BLACK(:
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:聲明枚舉類型的語法格式為:enum<類型名>{〈枚舉值表>};<枚舉
值表,包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值
有兩種定義形式:一是《值名〉;二是〈值名>=<整型常量>。關(guān)于枚舉類型有以下
4點(diǎn)說明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表
一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1,…n
-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與
整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦
的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)
常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值
合在一起定義成一個(gè)枚舉類型。對(duì)于本題來說,在選項(xiàng)A中,對(duì)4個(gè)枚舉值沒有
賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正確選
項(xiàng)。
3、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。
A、隊(duì)頭指針是固定不變的
B、隊(duì)頭指針一定大于隊(duì)尾指針
C、隊(duì)頭指針一定小于隊(duì)尾指針
D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位
置,形成邏輯_1_的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear
指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列
的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每
進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長(zhǎng)度加1時(shí),就
把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可
以小于隊(duì)尾指針。
4、下列敘述中正確的是()。
A、棧是一種先進(jìn)先出的線性表
R、隊(duì)列是一種后進(jìn)先出的線忤表
C、棧與隊(duì)列都是非線性結(jié)構(gòu)
D、棧與隊(duì)列都是線性結(jié)構(gòu)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線
性結(jié)構(gòu)。
5、下列敘述中正確的是
A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的
B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空問一般要多于順序存儲(chǔ)結(jié)構(gòu)
C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)
D、上述三種說法都不對(duì)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所
占的存儲(chǔ)空間是連續(xù)的,各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。所以
每個(gè)元素只存儲(chǔ)其值就可以了,而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)
結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域:另一部分用于存儲(chǔ)
下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式
的存儲(chǔ)空間要大一些。
6、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬于開發(fā)階段任
務(wù)的是()。
A、測(cè)試
B、設(shè)計(jì)
C、可行性研究
D、實(shí)現(xiàn)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退
役的過程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測(cè)試、概要設(shè)
計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開發(fā)階段。
7、設(shè)表的長(zhǎng)度為n。在下列結(jié)構(gòu)所對(duì)應(yīng)的算法中,最壞情況下時(shí)間復(fù)雜度最低的
是
A、堆排序
B、有序鏈表查找
C、希爾排序
D、循環(huán)鏈表中尋找最大項(xiàng)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在循環(huán)鏈表中尋找最大項(xiàng)算法是,首先取出第一個(gè)數(shù)作為最大數(shù),然
后和后面的所有項(xiàng)進(jìn)行比較查找。囚此,比較次數(shù)為n-1。
8、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A、控制流
B、事件驅(qū)動(dòng)
C、模塊調(diào)用
D、數(shù)據(jù)流
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的
移動(dòng)變換過程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般
在旁邊標(biāo)注數(shù)據(jù)流名。
9、下列說法中錯(cuò)誤的是()。
A、公有繼承時(shí)基類中的public成員在派生類中仍是public的
B、公有繼承時(shí)基類中的private成員在派生類中仍是private的
C、私有繼承時(shí)基類中的public成員在派生類中是private的
D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是繼承時(shí)基類成員屬性改變。選項(xiàng)B中,公有繼承時(shí)基
類中的private成員在派生類中不是private的,而是不可訪問的。所以選項(xiàng)B錯(cuò)
誤;其他選項(xiàng)敘述均正確。
10、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。
A、charsl[]=n12345abcd";
chars2131=nxyz";
C、chars3[][3]={,a,,C',V};
D、chars412131={"xyz',"mnp");
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫。選
項(xiàng)A)、B)、D)均是字符字符串初始化。。
II、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C
的聯(lián)系是()。
A、一對(duì)一
B、一對(duì)多
C、多對(duì)一
D、多對(duì)多
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:由于B和C有一一對(duì)應(yīng)的聯(lián)系,而A和B只間有一對(duì)多的聯(lián)系,則
通過關(guān)系之間的傳遞,則A和C之間也是一對(duì)多的聯(lián)系。
12、下列語句中錯(cuò)誤的是()。
A、constinta;
B、constinta=10;
C、constint*point=0;
D、constint*point=newint(10;)
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。
13、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;
cout?"Pleaseinputastring:”;cin:str:p=str;for(inti=0;*p!=,\0';
p++,i++);cout?"i"<
A、7
B、12
C、13
D、100
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的
數(shù)據(jù)是“從第一個(gè)非空白字符開始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefg
abed,其中abcdefg后有空格。所以輸入后str中的字符串為"abedefg”:主函數(shù)中
接卜來for語句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度
7o
14>已知數(shù)組arr的定義如下:intan[5]={1,2,3,4,5);下列語句中輸出結(jié)
果不是2的是()。
A、cout<<*arr+1<<endl:
cout<<*(arr+1)<<endl;
C、cout<<arr[1]<<endl;
D、cout<<*art<<endl;
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組ard5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D
中,輸出*arr的值就是數(shù)組art[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組art[5]的
第二元素2o
15、已知枚舉類型聲明語句為:enumCOLOR{WHITE,YELLOW,GREEN=5,
RED,BLACK=10}:則下列說法中錯(cuò)誤的是()。
A、枚舉常量YELLOW的值為1
B、枚舉常量RED的值為6
C、枚舉常量BLACK的值為10
D、枚舉常量WHITE的值為I
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為:enum
類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右
分別與整數(shù)0、1、2、對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量
值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)
束。
16、下列語句中,錯(cuò)誤的是()。
A、constintbuffer=256;
B、constinttemp;
C、constdouble*point;
D、constdouble*rt=newdouble(5.5);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,
故選項(xiàng)B錯(cuò)誤:選項(xiàng)c定義的是一個(gè)指向常量的指針變量,即通過指針不能改變
它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。
17、有如下程序:#include<iostream>usingnamespacescd;classXA{inta;
public:staticintb:XA(intaa):a(aa){b++;)~XA(){)intget()(returna;}};int
XA::b=0;intmain()XAdl(2),<12(3);cout<<dl.get()+d2.get()+XA::b
<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。
A、5
B、6
C、7
D、8
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:執(zhí)行XA類的實(shí)例變量dl(2)時(shí),成員函數(shù)dl.gel()的返回值等于
2,XA.b的值等于1,執(zhí)行XA類的實(shí)例變量d2(3)時(shí),成員函數(shù)di.get()的返回
值等于3,XA.b的值等于2,所以輸出結(jié)果為2+3+2=7。
18、關(guān)于關(guān)鍵字class和typename,下列表述中正確的是()。
A、程序中的typenamc都可以替換為class
B、程序中的class都可以替換為typename
C、在模板形參表中只能用typename來聲明參數(shù)的類型
D、在模板形參表中只能用class或typename來聲明參數(shù)的類型
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用
來定義類以外還能用來聲明模板的虛擬類型參數(shù)。在用作聲明虛擬類型參數(shù)時(shí)
lypename與class可以互換,但不能使用l)rpename來定義類;在模板形參表中除了
可以用typename和class聲明虛擬類型參數(shù)外,還可以使用普通類型聲明常規(guī)函
數(shù),故選項(xiàng)C錯(cuò)誤。
19、已知類Myclass的定義如bclassMyClass{public:voidfunctionI(MyClass&
c){cout<<c.data:)staticvoidfunction2(MyClass&c){cout<<c.data;}void
function3(){cout<<data;}staricvoidfunction4()(cout<<data;}private:int
data;);其中有編譯錯(cuò)誤的函數(shù)是()0
A^function1
B、function?
C、functions
D、function4
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非
靜態(tài)成員,即coutVVdata在編譯時(shí)會(huì)出錯(cuò)。
20、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。
A、重載函數(shù)的函數(shù)名必須相同
B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同
C、重載函數(shù)的返回值類型必須相同
D、重載函數(shù)的函數(shù)體可以有所不同
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載。在C++語言中,允許定義一系列函數(shù)名相
同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類
型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。
21、在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。
A^公有成員
B、公有成員和保護(hù)成員
C、公有成員、保護(hù)成員和私有成員
D、保護(hù)成員
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問?;惖某蓡T有公有、保護(hù)和
私有三種訪問屬性:類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無論
那種繼承方式,派生類中的成員都不能訪問基類中的私有成員,但可以訪問基類中
的公有成員和保護(hù)成員。
22、下列關(guān)于派生類和基類的描述中,正確的是(),
A、派生類成員函數(shù)只能訪問基類的公有成員
B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員
C、派生類成員函數(shù)可以訪問基類的所有成員
D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基
類的公有成員和保護(hù)成員。
23、虛函數(shù)支持多態(tài)調(diào)用,一個(gè)基類的指針可以指向派生類的對(duì)象,而且通過這樣
的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是指針?biāo)傅膶?shí)際對(duì)象的虛函數(shù)。而非虛函數(shù)不支
持多態(tài)調(diào)用。有如下程序:#include<iostrcam>usingnamespacestd:classBase
{public:virtualvoidf(){cout<<,'fO+";}voidgO{cout<<,'gO+H;}};class
Derived:publicBase{public:Voidg(){cont<<"f+";}voidgo{cout.<
};main{Derivedd;Base*p==&d;p—>f();P—>g();
retumO;}運(yùn)行時(shí)輸出的結(jié)果是()。
A、f+g+
B、fU+g+
C、f+gO+
D、fO+gO+
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)和多態(tài)性。此題中,因?yàn)閒()是虛函數(shù)具有多態(tài)
性,所以通過指針p調(diào)用的f()是派生類Derived中定義的f():而g。不是虛函數(shù),
通過指針p調(diào)用的是Base中的g()o
24、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是
()。
A、fstream
B、istreara
C、ostream
D、iomanip
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:要使用seiw、fixed等操作符,須包含iomanip這個(gè)文件。
25、模板對(duì)類型的參數(shù)叱提供了很好的支持,因此()。
A、類模板的主要作用是生成抽象類
B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類
C、在類模板中的數(shù)據(jù)成員都具有同樣類型
D、類模板中的成員函數(shù)都沒有返回值
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查了類模板的概念。在定義對(duì)象的過程中,系統(tǒng)會(huì)自動(dòng)地根據(jù)
需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過程稱為類模板的實(shí)例化。
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷
第3套
一、選擇題(本題共22題,每題1.0分,共22分。)
1、按照“后進(jìn)先出原見組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A^隊(duì)列
B、棧
C、雙向鏈表
D、二叉樹
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除
的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入
的元素,也是最先被刪除的元素:棧底元素總是最先被插入的元素,也是最后才能
被刪除的元素。即棧是按照“后進(jìn)先出”(LastlnFirstOut,簡(jiǎn)稱LIFO)或“先進(jìn)后
出”(FirstInLastOut,簡(jiǎn)稱FILO)的原則組織數(shù)據(jù)的。因此,棧也稱為“后進(jìn)先出
表”或“先進(jìn)后出”表。
2、下列敘述中正確的是()。
A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)
C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的種也應(yīng)該是線性
結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。
3、某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:上以該系統(tǒng)總體
結(jié)構(gòu)圖的深度是()。
A、7
B、6
C、3
D、2
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)》析:這個(gè)系統(tǒng)總體結(jié)構(gòu)圖是一棵樹結(jié)構(gòu),在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第1層,
同一層上所有子結(jié)點(diǎn)都在下一層,由系統(tǒng)總體結(jié)構(gòu)圖可知,這棵樹共3層。在樹結(jié)
構(gòu)中,樹的最大層次稱為樹的深度。所以這棵樹的深度為3。
4、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A、log2n
B、n/2
C^n
D、n+1
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)露析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個(gè)元
素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有
元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。
5、T列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是
A、順序存儲(chǔ)的有序線性表
R、線性鏈表
C、二叉鏈表
D、有序線性鏈表
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素
按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。
6、度為3的一棵樹共有30個(gè)結(jié)點(diǎn),其中度為3、1的結(jié)點(diǎn)個(gè)數(shù)分別為3、4?則該
樹中的葉子結(jié)點(diǎn)數(shù)為
A、14
B、15
C、16
D、不可能有這樣的樹
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:根據(jù)題目可知本樹中還有度為2的結(jié)點(diǎn)。樹的總結(jié)點(diǎn)=(度1*個(gè)數(shù)十度
2*個(gè)數(shù)…)+1,這里我僅設(shè)度為2的結(jié)點(diǎn)數(shù)為x,那么
30=3*3+2*x+l*4+l=2*x+14,由此可計(jì)算出x=8。樹的葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)減去
所有度不為0的結(jié)點(diǎn),也就是30?3-8?4=15。
7、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬
于應(yīng)用軟件的是()。
A、編譯程序
B、操作系統(tǒng)
C、教務(wù)管理系統(tǒng)
D、匯編程序
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有c教務(wù)管理系
統(tǒng)才是應(yīng)用軟件。
8、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。
A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)
B、重載函數(shù)的參數(shù)列表必須不同
C,重載函數(shù)的返回值類型必須不同
D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)
現(xiàn)對(duì)應(yīng)著一個(gè)函數(shù)體,這些函數(shù)的名字相同,但是函數(shù)參數(shù)的類型不同,還允許參
數(shù)的個(gè)數(shù)不同,但不能只有函數(shù)的返回值類型不同而參數(shù)的個(gè)數(shù)和類型相同的重
載。所以本題答案為C
9、下面屬于白盒測(cè)試方法的是()。
A、等價(jià)類劃分法
B、邏輯覆蓋
C、邊界值分析法
D、錯(cuò)誤推測(cè)法
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等。
10、有如下程序:#includeusingnamespacestd;classCD{public:-CD0{cout<<
-C;)private:charname[80];):intmain(){CDa,*b,d[2];return0;}運(yùn)行
時(shí)的輸出結(jié)果是()。
A、CCCC
B、CCC
C、CC
D、C
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在這個(gè)程序的主函數(shù)中定義了3個(gè)CD類的實(shí)例對(duì)象a,d[O],d[l]和
一個(gè)指向CD類對(duì)象的指針變量b,所以當(dāng)程序結(jié)貞時(shí),執(zhí)行cD的析構(gòu)函數(shù)輸出
字符C三次。
11、有如卜程序:#incluldeusingnamespacestd;classBase{private:voidfunl()
const{tout?"funr,;)protected:voidfun2()const{cout?"fun2'^;}public:void
fun30const(cout?"fun3";}};classDerived:protectedBase[public:voidfun4()
const{tout?"fun4";}};intmain(){Derivedobj;obj.funl();||①
obj.tim2();||②obj.fun3();||@obj.fun40;||(4)return0;}其中有語法錯(cuò)誤
的語句是()。
A、①②⑧④
B、①②③
C、②③④
D、@@
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base
類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而
Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對(duì)象只
能夠訪問到Derived類的公有成員。
12、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。
A、連接符
B、下劃線
C、大小寫字母
D、數(shù)字字符
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第
一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于
編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)
識(shí)符時(shí)不能采用系統(tǒng)的保留字。
13、在下列關(guān)系運(yùn)算中,不改變關(guān)系表.中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。
A、并
B、交
C、投影
D、除
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的
有序組所組成,記為RCS,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)
數(shù)。
14、下列枚舉類型的定義中,包含枚舉值3的是()。
A、enumtestfRED,YELLOW,BLUE,BLACK);
B、enumtest(RED,YELLOW=4,BLUE,BLACK);
C、enumtest{RED=-1,YELLOW,BLUE,BLACK):
D、enumtest{RED,YELLOW=6,BLUE,BLACK);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:聲明枚舉類型的語法格式為:enumV類型名>{V枚舉值表>}:<
枚舉值表,包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚
舉值有兩種定義形式:一是《值名〉;二是<值名>=<整型常量〉。關(guān)于枚舉類
型有以下4點(diǎn)說明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚
舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)
0,1,…n-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉
值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚
舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整
型符號(hào)常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)
枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來說,在選項(xiàng)A中,對(duì)4個(gè)枚舉
值沒有賦常量值,所以它們從左到右與整數(shù)0。1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正
確選項(xiàng)。
15、有如卜程序:#include<iostream>usingnamespacestd;voidfunction2(int
n);voidfunctionl(intn){if(n<=0)return;function2(n一2);}voidfunction2(int
n){if(n<=0)return:functionl(n-1);}intmain(){functionl(5);return0:)下列
關(guān)于程序運(yùn)行情況的描述中,正確的是()。
functionl運(yùn)行1次,function2運(yùn)行2次
B、function1運(yùn)行2次,function?運(yùn)行1次
C^functionl運(yùn)行2次,function?運(yùn)行3次
D、functionl運(yùn)行2次,function2運(yùn)行2次
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在土函數(shù)中執(zhí)行functionl(5)時(shí),會(huì)調(diào)用function2(3),function2
(3)又會(huì)調(diào)用functionl(2),functionl(2)又會(huì)調(diào)用function2(0),到此相互
調(diào)用結(jié)束。所以functionl。和function20各執(zhí)行了2次。
16、下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()。
A、一個(gè)類只能有一個(gè)對(duì)象
B、對(duì)象是類的具體實(shí)例
C、類是對(duì)某一類對(duì)象的抽象
D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是類和對(duì)象的概念。類是用戶定義的一種數(shù)據(jù)類型,可以
使用這個(gè)類型來說明一個(gè)或多個(gè)變量,即對(duì)象。
17、有如下類定義:classPoint{private;staticinthow_many;);
how_many=0;要初始4Point類的靜態(tài)成員howmany,下劃線處應(yīng)填入
的內(nèi)容是()。
A、ing
B、staticint
C>intPoint::
D、staticintPoint::
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行
初始化,且初始化的一般格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名二初始值C
18、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。
A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛唐時(shí),,以模板實(shí)參的信息為準(zhǔn)
B、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略
C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參
D、模板參數(shù)表不能為空
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)露析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或
全部虛擬類型參數(shù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),剛
模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。
19^有如下程序:#include<iostream>usingnamespacestd;classA{publicvirtual
voidf(){cout<<1;)voidg(){cout<<2;});classB:PublicA{public:virtual
voidf(){cout<<3;)voidg(){cout<<4;}};voidshow(A&a){a.f();a.g();}
intmain(){Bb:show(b):return0:}運(yùn)行時(shí)的輸出結(jié)果是()。
A、12
B、34
C、14
D、32
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在派生類classB中對(duì)基類中的虛擬成員函數(shù)virtualvoidf。和實(shí)函數(shù)
voidg()進(jìn)行了重新定義,在主函數(shù)中通過語句show(b);調(diào)用派生類中的虛函數(shù)
virtualvoidf(){coutVV3;}輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){coutVV2;}輸出
2o所以選項(xiàng)D為正確答案。
20、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。
A、iostream
B、fstream
C、strstream
D、iomanip
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:要使用文件流對(duì)象進(jìn)行針對(duì)磁盤文件的I/O操作,必須包含fsirem
頭文件。
21、若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是
()o
A、Data+(Data);
B、Dataoperator+{Data);
C、Data+operator{Data);
D、operator+(Data,Data);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:是一個(gè)二元運(yùn)算符,因此作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)
參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)是對(duì)象本身。運(yùn)算符函數(shù)的函數(shù)名是
由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。
22、已知將運(yùn)算符和作為類Complex的成員函數(shù)重載,設(shè)cl和c2是類
Complex的對(duì)象,則表達(dá)式cl+c2*cl等價(jià)于()。
A、cl.opcrator*(c2.opcrator+(c1))
B、cl.operalor+(c2.operator*(cl))
C,cl.operator*(c1.operator+(c2))
D、c2.operator+(c1.operator*(cl))
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:表達(dá)式cl+c2*c1的含義是cl加上c2與cl的積。
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷
第4套
一、選擇題(本題共23題,每題1.0分,共23分。)
1、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。
A、循環(huán)隊(duì)列
B、棧
C、隊(duì)列
D、二叉樹
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或,后進(jìn)先出“(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)
先出”F(IFO)或“后進(jìn)后出”L(ILO)的線性表。
2、有如下程序#include<ioslream>usingnamespacestd;intmain(){chara:cin>
>a;if(a='*')coutV<?'***''<Vendl;elsecout<<4<###,,<<endl;return0:}
輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。
A、***
B、###
C、***###
D、無輸出
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條
件的判定。雙分支選擇語句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式
的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題
執(zhí)行時(shí)雖然輸入變量a的值為』二但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=,*,)的時(shí),由
于此表達(dá)式為賦值表達(dá)式,岡此表達(dá)式的值為賦值號(hào)右邊的值,*',其AscH碼的值
非零,執(zhí)行if后面的輸出語句“***”后回車。
3、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1。則T
中的葉子結(jié)點(diǎn)數(shù)為()。
A、8
B、7
C、6
D、5
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m—1=24—1=15??偨Y(jié)點(diǎn)數(shù)減去度
為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)數(shù)。15—4一2—1—1二7。
4、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最坎情況下需要比較的次數(shù)是
A、O(n)
B、O(n2)
C、O(log2n)
D、O(nlog2n)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較
log2n次,而順序查找需要比較n次。
5、下列描述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()。
A、程序的效率第一,清晰第二
B、程序的可讀性好
C、程序中要有必要的注釋
D、輸入數(shù)據(jù)前要有提示信息
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:一般來講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏
輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的。著
名的“清晰第一,效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。
6、下面敘述錯(cuò)誤的是
A、派生類可以使用pfivate派生
B、對(duì)基類成員的訪問必須是無二義性的
C、基類成員的訪問能力在派生類中維持不變
D、賦值兼容規(guī)則也適用于多繼承的組合
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生
類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類
的成員在派生類中的訪問屬性問題,不僅要考慮對(duì)基類成員所聲明的訪問屬性,還
要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派
生類中的訪問屬性。所以本題選擇C。
7、下面程序輸出的結(jié)果為()。#tnclude<iostrcam.h>voidfun(inta,intb)(int
temp;temp=a;a=b;b二temp;)voidmain(){intm,n;m=l;n=2;fun(m,
n);cout<<m<<Hn<<n<<endl;)
A、12
B、21
C、22
D、程序有錯(cuò)誤
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:函數(shù)fun中定義的參數(shù)a和b為形式參數(shù),它們并不是實(shí)際存在的數(shù)
據(jù),只有在發(fā)生函數(shù)調(diào)用時(shí)才被分配內(nèi)存空間,結(jié)束后,形參所占有的內(nèi)存單元也
被釋放。并且函數(shù)fun沒有返回值,它做的交換操作,并不能影響實(shí)際參數(shù)m和
n.所以輸出值保持不變,仍然是1和2,即輸出:12c
8、軟件是指
A、程序
B、程序和文檔
C、算法加數(shù)據(jù)結(jié)構(gòu)
D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程
序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)
據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。
9、數(shù)據(jù)庫(kù)技術(shù)的根本E標(biāo)是要解決數(shù)據(jù)的()。
A、存儲(chǔ)問題
B、共享問題
C、安全問題
D、保護(hù)問題
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成''、"共享’之特點(diǎn),即數(shù)據(jù)庫(kù)集中了各種應(yīng)
用的數(shù)據(jù),進(jìn)行統(tǒng)一地閡造與存儲(chǔ),而使它們能被不同的應(yīng)用程序所使用。因而數(shù)
據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。
10、數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。
A、數(shù)據(jù)定義語言
13、數(shù)據(jù)管理語言
C、數(shù)據(jù)操縱語言
D、數(shù)據(jù)控制語言
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)一般提供相應(yīng)的數(shù)據(jù)語言,它們分別是:數(shù)據(jù)定義語
言,負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言,負(fù)責(zé)數(shù)據(jù)的操
縱,包括查詢及增、刪、改等操作:數(shù)據(jù)控制語言,負(fù)責(zé)數(shù)據(jù)完整性、安全性的定
義與檢查以及并發(fā)控制、故障恢復(fù)等功能。
11、數(shù)據(jù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是(),
A、內(nèi)模式
B、概念模式
C、外模式
D、設(shè)計(jì)模式
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:概念模式,是由數(shù)據(jù)庫(kù)設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)
構(gòu)造的全局邏輯結(jié)構(gòu),是對(duì)數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所
有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)模式描述
語言(DataDescriptionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫(kù)
系統(tǒng)的整體觀。外模式對(duì)應(yīng)于用戶級(jí),它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫(kù)的數(shù)
據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個(gè)子集,
也稱為子模式或用戶模式.它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,
它反映了用戶對(duì)數(shù)據(jù)的要求。包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù),用戶可
以通過外模式描述語言來描述、定義對(duì)應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利
用數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)對(duì)這些數(shù)據(jù)記錄進(jìn)行描述。
內(nèi)模式,對(duì)應(yīng)于物理級(jí),它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫(kù)
最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著
實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是
數(shù)據(jù)庫(kù)的存儲(chǔ)觀。
12、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。
A、y_2006
B、TESTH
C、Return
D、SWitch
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第
一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于
編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)
識(shí)符時(shí)不能采用系統(tǒng)的保留字。
13、必須用對(duì)大括號(hào)括起來的程序段是()。
A、switch語句中的case標(biāo)號(hào)語句
B、if語句的分支
C、循環(huán)語句的循環(huán)體
D、函數(shù)的函數(shù)體
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是語句塊和函數(shù)。if語句的分支和循環(huán)語句的循環(huán)體可以
是一條語句也可以使一個(gè)語句塊,所以不是必須用一個(gè)大括號(hào)括起來;switch語句
中的case標(biāo)號(hào)語句可以是一系列語句,也可以包含語句塊,也不是必須用一對(duì)大
括號(hào)括起來:函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來。
14、在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是()。
A、內(nèi)聯(lián)函數(shù)
B、重載函數(shù)
C、模板函數(shù)
D、虛函數(shù)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。C++語言的多態(tài)性有兩種:函數(shù)重載
和虛函數(shù)。虛函數(shù)只有在運(yùn)行時(shí)才能被確定,稱為運(yùn)行時(shí)多態(tài)。編譯時(shí)的多態(tài)是通
過函數(shù)重載和模板實(shí)現(xiàn)的.
15、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。
A、voidn(intx);
voidf2(int*x);
C、voidf3(constint*x);
D、voidf4(int&x);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:傳值方式是將實(shí)參復(fù)制到形參中,因此實(shí)參和形參是兩個(gè)不同的變
量,有各自的存儲(chǔ)空間,可以把函數(shù)的形參看做是函數(shù)的局部變量。其中BC選項(xiàng)
為按低值傳遞D選賢為按引用傳遞。
16、已知主函數(shù)中通過如卜.語句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta|10],
b[10];swap(a,b,10):下列對(duì)函數(shù)模板swap的聲明中,會(huì)導(dǎo)致上述語句序列發(fā)
生編譯錯(cuò)誤的是()。
A、templatevoidswap(Ta|],Tb|],intsize);
templatevoidswap(intsize,Ta[],Tb[]);
C>templatevoidswap(Tla[]?T2b[],intsize);
D、templatevoidswap(Tla||,T2b[],intsize);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:由題目中函數(shù)sW印(a,b,10)調(diào)用語句可知,在對(duì)函數(shù)模板sw叩的
聲明語句中,應(yīng)將第一、二個(gè)參數(shù)設(shè)為數(shù)組變量,第三個(gè)參數(shù)為整型變量。
17、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。
A、析構(gòu)函數(shù)可以重載
B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用
C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次
D、每個(gè)類都有析構(gòu)函數(shù)
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)
調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒
有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)。
18、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是().
A、Fractionopcrator+(Fraction,Fraction);
B、Fractionoperator一(Fraction);
C、Fraction&operator=(Fraction&,Fraction);
D、Fraction&opcrator+=(Fraction&,Fraction);
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,“=”運(yùn)算符只能作為成員
函數(shù)重載。
19、有如下程序:#incLude<iostream>usingnamespacesld;classA{public:
A(){cout<',A,;}^A(){cout<<,C,;)j:classB:publicA{public:BO{cout<
V,G〈}?BO{couKVT;}};intmain0{Bobj;return0;}運(yùn)行這個(gè)程序的輸出結(jié)
果是()。
A、GATC
B、AGTC
C、GACT
D、AGCT
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:派生類B是由基類A公開繼承而來,所以在創(chuàng)建類B的obj對(duì)象
時(shí),首先執(zhí)行基類A的構(gòu)造函數(shù)A(),輸出A,再執(zhí)行派生類B的構(gòu)造函數(shù)B0,
輸出G,當(dāng)程序結(jié)束時(shí),首先執(zhí)行派生類的析構(gòu)函數(shù)?B0,輸出T,再執(zhí)行基類
A的析構(gòu)函數(shù)?A(),輸出C。
20有如下程序:#includeusingnamespacestd;class[nstrument{public:virtual
voidDisplay()=0:);classPiano:publicInstrument!public:voidDisplay(){/*函
數(shù)體程序略*/}};intmain(){Instruments;Instrument*p=0://…;return
0;}下列敘述中正確的是()。
A、語句“Insturment*p=():”編譯時(shí)出錯(cuò)
B、語句“Instruments;”編譯時(shí)出錯(cuò)
C、類Piano中的Display函數(shù)不是虛函數(shù)
D、類Instrument是一個(gè)虛基類
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:由于函數(shù)Display。是一個(gè)純虛函數(shù),所以類Insirumen[是抽象類,而
抽象類是不能定義對(duì)象的,因而選項(xiàng)B為正確選項(xiàng)。
21、有如下程序:#inc1ude<iostrcam>usingnamespacestd;classPair{intm;int
n;public:Pair(inti,intj):m(i),n(j){}booloperator>(Pairp)const;//須在類體外
給出定義):intmainOIPairpl(3,4),p2(4,3),p3(4,5);cout<<(pl>p2)<<(p2>pl)
<<(p2>p3)<<(p3>p2);return0;}運(yùn)算符函數(shù)。pcrator>的功能是比較兩個(gè)
Pair對(duì)象的大小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)土三調(diào)合同范本
- 固體廢物合同范本
- 搬運(yùn)儀器合同范本
- 墊資修建合同范本
- 商場(chǎng)管理合同范本
- 培訓(xùn)基地合同范本
- 墓碑購(gòu)買合同范本
- 就業(yè)電子協(xié)議書
- 換地皮寫合同范本
- 排污合同協(xié)議模板
- 石材行業(yè)合同范本
- 生產(chǎn)性采購(gòu)管理制度(3篇)
- 中醫(yī)藥轉(zhuǎn)化研究中的專利布局策略
- COPD巨噬細(xì)胞精準(zhǔn)調(diào)控策略
- 《涉江采芙蓉》課件33張
- 測(cè)井作業(yè)工程事故應(yīng)急預(yù)案
- “裝配式建筑”施工案例詳解圖文并茂
- 醫(yī)療耗材配送服務(wù)方案
- 基礎(chǔ)部分6se70變頻柜-整流單元
- GB∕T 37092-2018 信息安全技術(shù)密碼模塊安全要求
評(píng)論
0/150
提交評(píng)論