版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國家二級(jí)C++機(jī)試(選擇題)模擬試卷
第1套
一、選擇題(本題共23題,每題1.0分,共23分。)
1、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入
棧,然后再依次出棧,則元素出棧的順序是()。
A、12345ABCDE
B、EDCBA54321
C、ABCDE12345
D、54321EDCBA
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序
是EDCBA5432R
2、對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。
A、ABCDEF
B、DBEAFC
C、ABDECF
D、DEBFCA
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:所謂后序遍歷是指在訪問根據(jù)結(jié)點(diǎn)、遍歷左子樹與遍歷右予樹這三者
中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn),并且,在遍歷左、右子
樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點(diǎn)。因此,后序遍歷二叉
樹的過程也是一個(gè)遞歸過程。其簡(jiǎn)單描述為:若二叉樹為空,則結(jié)束返回;否則,
先后序遍歷左子樹,然后后序遍歷右子樹,最后訪問根結(jié)點(diǎn)。對(duì)于后序遍歷,第一
個(gè)訪問的結(jié)點(diǎn)一定是最左下的結(jié)點(diǎn),最后一個(gè)訪問的結(jié)點(diǎn)一定是根結(jié)點(diǎn),所以選項(xiàng)
D為正確答案。
3、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。
A、public
static
C>protected
D、private
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private私
旬。
4、若己定義inta[]={0,。2,3,4,5,6,7,8,9),*p=a,i;其中叱達(dá)9,則
對(duì)a數(shù)組元素不正確的引用是()。
A、a|p-a]
B、*(&a[i])
C、pLiJ
D、a[10]
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:數(shù)組有N個(gè)元素,則數(shù)組元素引用為a(0)?a(N.1),共計(jì)N個(gè),沒
有a(10)這個(gè)元素,最后的元素是a(9)。
5、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。
A、順序結(jié)構(gòu)
B、GOTO跳轉(zhuǎn)
C、選擇(分支)結(jié)構(gòu)
D、重復(fù)(循環(huán))結(jié)構(gòu)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序的基本結(jié)構(gòu)有;順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),沒有
GOTO跳轉(zhuǎn)結(jié)構(gòu)。
6、下面的描述中,正確的是()。
A、virtual可以用來聲明虛函數(shù)
B、含有純虛函數(shù)的類是不可以用來創(chuàng)建對(duì)象的,因?yàn)樗翘摶?/p>
C、即使基類的構(gòu)造函數(shù)沒有參數(shù),派生類也必須建立構(gòu)造函數(shù)
D、靜態(tài)數(shù)據(jù)成員可以通過成員初始化列表來初始化
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:在基類中用viilual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛
函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),
它沒有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。
7、假定MyClass為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為()。
A、MyClass(MyClassx);
B、MyClass(MyClass&x);
C^MyClass(&x);
D、MyClass(x);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),所以函數(shù)名字為MyClass,但它只有一
個(gè)參數(shù),這個(gè)參數(shù)是本類的對(duì)象,即x;而且采用對(duì)象的引用的形式,也就是
&xo所以本題答案是B。
8、下列枚舉類型的定義中,包含枚舉值3的是()。
A、enumtest{RED,YELLOW,BLUE,BLACK);
B、enumtest(RED,YELLOW=4,BLUE,BLACK);
C、enumtesl{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í)際上是im類型的一個(gè)子集,其每一個(gè)枚
舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)
0,I,…n-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為n則其未賦常量值的后續(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)。
9、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn){if(n==O)relurn1;else
if(n=l)return2:elsereturnfib(n一l)+fib(n-2):}若執(zhí)行函數(shù)調(diào)用表達(dá)式
fib(2),函數(shù)fib被調(diào)用的次數(shù)是()。
A、1
R、2
C、3
D、4
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:斐波那契數(shù)列是遞歸函數(shù),所以fib(2)=fib(1)+fib(0)
=2+1=3。因而執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2)時(shí),函數(shù)fib被調(diào)用的次是2次。
10、若需要為XV類重載乘法運(yùn)算符,運(yùn)算結(jié)果為XV類型,在將其聲明為類的成
員函數(shù)時(shí),下列原型聲明正確的是()。
A、XVoperator*(XV,XV);
B、XV*(XV);
C、operator*(XV);
D、XVoperator*(XV);
標(biāo)準(zhǔn)答案:D
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問。基類的成員有公有、保護(hù)和
私有三種訪問屬性;類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無論
那種繼承方式,派生類中的成員都不能訪問基類中的私有成員,但可以訪問基類中
的公有成員和保護(hù)成員,
15>有如下類聲明:classBase(protected;intamount;public;Base(intn=0):
amount(n){}intgetAmounl()const{returnamount;)};classDerived:public
Base{protected;intvalue;public;Derived(intm,intn):value(m).Base(n){)Int
gctData()const{returnvaluc+amount;));已知x是一個(gè)Dcnvcd對(duì)象,則下列表達(dá)
式中正確的是()。
A^x.value+x.getAmount。
B、x.gctData()—x.getAmount。
C、x.getData()—x.amount
D^x.vabled一x.aount
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問權(quán)限。派生類中的成員不能訪
問基類中的私有成員,可以訪問基類中的公有成員和保護(hù)成員。派生類從基類公有
繼承時(shí),基類的公有成員和保護(hù)成員在派生類中仍然是公有成員和保護(hù)成員;派生
類從基類私有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中都變成私有成員;派
生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中變成保護(hù)成員,基類的保護(hù)成
員在派生類中仍然是保批成員。
16、有如下程序:#include<iostream>usingnamespacestd;classA{public:
A(){coutVV"A";}-A(){coutVV"~A":)};classB:publicA(A*p;
public:B(){cout<<"B";p=newA();)~B(){coutVV"?B";deletep;}};int
main().{Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。
A、RAA?A?R?A
B、ABA?B?A?A
C、BAA~B~A?A
D、ABA~A~B?A
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函
數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的
順序(自左向右).>執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類
中聲明的順序.>執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象。bj是
會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成
員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在
B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)
果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)
自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main。函數(shù)返回
時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用一B(),接著再調(diào)用一A()因?yàn)樵?B()函數(shù)中釋
放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是?B?A?A。所以這個(gè)程
序輸出結(jié)果為ABA?B?A?A
17、下列運(yùn)算符中,不能被重載的是()。
A、&&
B、!=
C、.
D、++
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。在C++中,只有.、.*、一>小、
::、?:這五個(gè)運(yùn)算符不能重載。
18、有如下類定義classMyClasspublic:Private:intdata;);若要為
MyClass類重載流輸入運(yùn)算符>>,使得程序中可以“cin>>obj形式輸入
MyClass類的對(duì)象obj,則橫線處的聲明語句應(yīng)為()。
A、friendistream&operator>>(istream&is,MyClass&a);
B、friendistream&operator>>(istream&is,MyClassa);
C、istream&operator>>(istream&is,MyClass&a);
D、istream&operator>>(istream&is,MyClassa);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++的輸入運(yùn)算符>>作為非類成員函數(shù)重載。在一個(gè)類中,可將輸
入運(yùn)弓符>>聲明為友元函數(shù),在類MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)
A)所示。
19^在語句cin>>data;中,cin是()。
A、C++的關(guān)鍵字
B、類名
C、對(duì)象名
D、函數(shù)名
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)解析:此題考查的是預(yù)定義流對(duì)象。C++有4個(gè)預(yù)定義的流對(duì)象:cin—標(biāo)準(zhǔn)
輸入:cout—標(biāo)準(zhǔn)輸出:cerr—標(biāo)準(zhǔn)出錯(cuò)信息輸出:clog一帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸
出。
20、下面是類shape的定義:classShape{public:VirtualvoidDraw()=0;};下
列關(guān)于Shape類的描述中,正確的是()。
A、類Shape是虛基類
類Shape是抽象類
C、類Shape中的Draw函數(shù)聲明有誤
D、語句"Shapes;”能夠建立Shape的一個(gè)對(duì)象s
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:因?yàn)轭怱hape中包含純虛函數(shù)Draw(),所以類Shape是抽象類。
21、若磁盤上已存在某個(gè)文本文件,其全路徑文件名為d:\ncre\test.ixt,下列語句
中不能打開該文件的是()。
A^ifstreamflle("d:\ncre\test.txt");
B>ifstreamfile("d:\\ncre\\tesl.txt");
C、ifstreamfile;file.open("d:\\ncre\\test.txt'*);ifstream("d:WncreWtest.txt");
D^ifstream*pFile=new
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是轉(zhuǎn)義字符。在字符常量或字符串中,以開頭的一系
列字符被看做是一個(gè)轉(zhuǎn)義字符。要表示字符,必須使用轉(zhuǎn)義字符
22、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。
A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為淮
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ù)可以省略。
23、在下列枚舉符號(hào)中,用來表示“相對(duì)于當(dāng)前位置”文件定位方式的是()。
A、ios_base::cur
B、ios_base::beg
C、ios_base::out
D、ios_base::end
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為
ios_base::seekdir中的一組枚舉符號(hào):iosbase::beg相當(dāng)于文件首:ios
base::cur相當(dāng)于當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位力之前);iosbase::end相對(duì)于文
件尾。
國家二級(jí)C++機(jī)試(選擇題)模擬試卷
第2套
一、選擇題(本題共22題,每題1.0分,共22分。)
1、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A、數(shù)據(jù)字典
B、詳細(xì)設(shè)計(jì)說明書
C、數(shù)據(jù)流圖說明書
D、軟件需求規(guī)格說明書
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需求規(guī)格說明書,可以為用戶、分析
人員和設(shè)計(jì)人員之間的交流提供方便。
2、有如下程序:#include<ioslream>usingnamespacestd;voidfunction2(intn);
voidfunctionl(intn){if(n<=O)return;function2(n-2);)voidfunction2(intn){if(n
<=O)return;tunctionl(n—1);)intmain(){fimctionl(5);return0:)下列關(guān)于程序
運(yùn)行情況的描述手,正確的是()。__
A、functionl運(yùn)行1次,function2運(yùn)行2次
B、functionl運(yùn)行2次,function2運(yùn)行1次
C、functionl運(yùn)行2次,function2運(yùn)行3次
D^functionl運(yùn)行2次,function2運(yùn)行2次
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在主函數(shù)中執(zhí)行主nctionl(5)時(shí),會(huì)調(diào)用解nction2(3),function2(3)X
會(huì)調(diào)用functionl(2),function]。)又會(huì)調(diào)用function2(0),到此相互調(diào)用結(jié)束。所以
func【ionl()和function2()各執(zhí)行了2次。
3、有一如下程序:#includeusingnamespacestd;classA{public:virtualvoid
fiincl(){cout?,,Ar,;}voidfunc2(){cout?,,A2,,;)};classB:publicA{public:
voidfuncl(){cout?vBr,;)voidfunc2(){cout?^^B2^^;));intmain(){A*P=ncw
B:P—>funcl();P—〉func2();deletep;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果
是()。
A、B182
B、A1A2
「、R1A2
D、A1B2
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:本題考查虛函數(shù)。虛函數(shù)指在基類中聲明為virtual并在一個(gè)或多個(gè)
派生類中被重新定義的成員函數(shù)。題中定義了一個(gè)派生類對(duì)象B,并使用類A的
時(shí)象指針指向B,由于基類A中的fund為虛函數(shù),所以會(huì)執(zhí)行派生類的fund,輸
出B1,而基類中的func2不是虛函數(shù),所以p->func2()會(huì)執(zhí)行基類的func2,輸出
A2o故答案為C。
4、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A^自頂向下
B、逐步求精
C、模塊化
D、可復(fù)用
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,
模塊化,限制使用got。語句。自頂向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)
節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(fù)雜問題應(yīng)設(shè)計(jì)一些子目
標(biāo)過渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)一步分
解成具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊??蓮?fù)用性是指軟件元素不加修改
成稍加修改便可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工
程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方
法。
5、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(l:m),初始狀態(tài)為front二rear=m。經(jīng)過一系列正
常的操作后,front=l,rear=mo為了在該隊(duì)列中尋找值最大的元素,在最壞情況
下需要的比較次數(shù)為
A、m
B、m-1
C、m-2
D、1
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:經(jīng)過一系列正常的操作后,fronts,rear=m,那么最壞情況下需要的
比較次數(shù)為rear-front-1=m-1-1=m-2。
6、下列關(guān)于類定義的說法中,正確的是()。
A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
B、類成員的缺省訪問權(quán)限是保護(hù)的
C、數(shù)據(jù)成員必須被聲明為私有的
D、成員函數(shù)只能在類體外進(jìn)行定義
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是類的定義。類中缺省的訪問權(quán)限是私有的,所以選項(xiàng)B
錯(cuò)誤:類的數(shù)據(jù)成員和成員函數(shù)的訪問捽制權(quán)限均可被聲明為公有、私有和保護(hù)中
的一種,所以選項(xiàng)c錯(cuò)誤:成員函數(shù)的實(shí)現(xiàn)可以在類體內(nèi)定義,也可以在類體外定
義,所以選項(xiàng)D錯(cuò)誤。
7、下面敘述錯(cuò)誤的是
A、對(duì)基類成員的訪問能力在private派生類中和public派生類中是相同的
B、基類的private成員在public派生類中不可訪問
C、基類中的public成員隨protected派生類中是protected的
D^基類中的public成員在protected派生類中仍然是public的
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員在保護(hù)派生類中都成了保護(hù)成員,其私有
成員仍為基類私有。
8、以下程序的執(zhí)行結(jié)果是()。#include<iostream.h>#include<iomanip.h>void
fun(intn){if(n!=O){fun(n-l);for(inti=l:i<=n;i++)cout<<setw(3)<<i;cout
<<endl;))voidmain(){fun(3);
A、001012
B、112123
C、122333
D、123
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:首先由程序中的主函數(shù)main入手,調(diào)用fun函數(shù),參數(shù)為3。fun(n)
函數(shù)在其內(nèi)部,當(dāng)n不等于0時(shí),遞歸調(diào)用fun(n?l)。當(dāng)參數(shù)為3時(shí),fun(3)調(diào)用
fun(2)…,然后利用for循環(huán)輸出i值,當(dāng)n=l時(shí),只輸出I,輸出回車后,就跳入
fun(2),輸出1,2,最后輸出是1,2,3o
T
rnrzi
FJLIJ
LZJLIJ0J
PJ
LZJLIJLLJ
則由關(guān)系R得到關(guān)系T的操作是()。
A、選擇
B、投影
C、交
D、并
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:由關(guān)系R和T所包含的元素可知,關(guān)系R經(jīng)過選擇操作就可以得到
關(guān)系To
10、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。
A、y_2006
B、_TEST_H
CNReturn
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)的保留字。
11、有如下程序:intx=3;do{x―=2;cout<<x,)while(!(------x));執(zhí)行這個(gè)程序
的輸出結(jié)果是()。
A、1
B、30
C、1—2
D、死循環(huán)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是do—while循環(huán)語句。do—while循環(huán)首先執(zhí)行do語句
中的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語句“x-=2",while語句
中,,—x唧x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行:執(zhí)行“x-2”和“——x”取反后,
循環(huán)結(jié)束程序退出。
12、如果不使用多態(tài)機(jī)制,那么通過基類的指針雖然可以指向派生類對(duì)象,但是只
能訪問從基類繼承的成員。有如下程序,沒有使用多態(tài)機(jī)制。includeusing
namespacestd:classBase{inta,b:public:Base(intX,intY){a=x:b=y:)void
show(){cout<
A、10,20
B、30,40
C、20,30
D、50,50
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是多態(tài)性。在C++中,一個(gè)基類指針可以用于指向它的
派生類對(duì)象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的
府象類的那個(gè)重定義版本。在實(shí)函數(shù)的情況下。通過基類指針?biāo){(diào)用的只能是基類
的那個(gè)函數(shù)版本,無法調(diào)用到派生類中重定義函數(shù)。此題中,通過指針pb所調(diào)用
的是基類的版本,即輸出a和b的值10,20。
13、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是()。
A、Fractionoperator+(Fraction,Fraction);
B>Fractionoperator一(Fraction);
C、Fraction&operator=(Fraction&,Fraction);
D、Fraction&operator+=(Fraction&,Fraction);
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)。析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,運(yùn)算符只能作為成員
函數(shù)重載。
14、有如下程序:#includeusingnamespacestd;classPoint]intx,y;public:
Point(intxl=0,intyl=0):x(xl),y(yl){}intget(){returnx+y;}};class
Circle{Pointcenter;intradius;public:Circle(intex,intcy,intr):center(cx,
cy),radius(r){)intget(){returncenter.get()+radius;}};intmain(){Circlec(3.
4,5);couK
A、5
B、7
C、9
D、12
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:根據(jù)類Point和類Circle的定義可知,類Circle的實(shí)例c(3,4,5)的成員
函數(shù)c.get()返回值為3+4+5=12。
15、下列各組類型聲明符中,含義相同的一組是(),
A、unsignedlongint和long
B>signedshortint和short
C、unsignedshort和short
D、shortint和int
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是基本類型和派生型。C++語言中,基本類型的字長(zhǎng)及其
取值范圍可以放大和縮小,改變后的類型就叫做基本類型和派生類型。本題A選
項(xiàng)中,unsignedlongint的省略形式為unsignedlong;選項(xiàng)B中,signedshortint的
省略形式是short;選項(xiàng)C中,unsignedshort的省略形式是unsignedshort;選項(xiàng)D
中,shortint的省略形式是shorto
16、有如下程序:#include<iostrcarn>usingnamespacestd;classtest{private:
inta;public:,testO{cout+,,constructor"+endl;)test(inta){cout+a+endl;}
test(consttest&test){a=test.a:cout+"copyconstmctor"+endl;}
test(){Cout+"destructor"+endl;}};intmain()(testA(3);return0;}運(yùn)行時(shí)輸出
的結(jié)果是()。
A、3
B、constructordestmetor
C、copyconstructordestiuctor
D、3destructor
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。一個(gè)類可以有多個(gè)構(gòu)造函數(shù),但
只能有一個(gè)析構(gòu)函數(shù)。每一個(gè)對(duì)象在被創(chuàng)建時(shí),都會(huì)隱含調(diào)用眾多構(gòu)造函數(shù)中的一
個(gè),而在銷毀時(shí)又會(huì)隱含調(diào)用唯一的析構(gòu)函數(shù)。此題中,主函數(shù)創(chuàng)建對(duì)象A是會(huì)
隱含調(diào)用lesl(inla)這個(gè)構(gòu)造函數(shù),輸出3:接著主函數(shù)結(jié)束,對(duì)象A銷毀又隱含調(diào)
用?test。析構(gòu)函數(shù)輸出destructoro
17>有如下說明inta[10]={l,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+8
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是指針的運(yùn)用。選項(xiàng)A中,*p返回的是數(shù)組元素a[0]的
值,所以最后結(jié)果是1+9=10;選項(xiàng)B是指針p后移8個(gè)單位位置處的值,即a[8]
其值為9;選項(xiàng)C中表達(dá)式的值和選項(xiàng)A相同;選項(xiàng)D的值是一個(gè)地址值,該值
無法確定。
18、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。
A、內(nèi)聯(lián)函數(shù)
B、重載函數(shù)
C、遞歸函數(shù)
D、函數(shù)模板
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中盼預(yù)處理宏函數(shù)。兩者的
區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)
的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧
操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。
19、若MyClass為一個(gè)類,執(zhí)行“MyClassa[4],*p[5];”語句時(shí)會(huì)自動(dòng)調(diào)用該類構(gòu)
造函數(shù)的次數(shù)是()。
A、2
B、5
C、4
D、9
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:語句MyClassa[4],*p⑸不僅定義了4個(gè)MyClass對(duì)象,分別為
a[0],a[l],a[2],a[3],而且定義了5個(gè)指向MyQass對(duì)象的指針變量,分別為
*p[0],*p[l],*p[2],*p[3],*p[4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。
20、已知類Myclass的定義如下classMyClass{public:void
functionl(MyClass&c){tout<
A、function1
B、function?
C、functions
D、function4
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非
靜態(tài)成員,即coutv
21、卜列有關(guān)C十十流的敘述中,錯(cuò)誤的是()。
A、C++操作符setw設(shè)置的輸出寬度永久有效
B、C++操作符endl可以實(shí)現(xiàn)輸出的回車換行
C、處理文件I/O時(shí),要包含頭文件fstream
D、進(jìn)行輸入操作時(shí),eof()函數(shù)用于檢測(cè)是否到達(dá)文件尾
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是C++流。C++操作符seiwO的作用是設(shè)置輸入輸出寬
度,且只對(duì)當(dāng)前一次有效,并非永久有效,故選項(xiàng)A敘述錯(cuò)誤。
22、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#includeusingnamespace
std;classPoint{public:Point(intval){x=val;)Point&operator++(){x++;
return*this;)Pointopcrator++(int){Pointold=*this;++(*this);returnold:}Int
GetX()const{returnx;}private:intx;};intmain(){Pointa(10);
cout?(++a).GetX();cout<
A、運(yùn)行時(shí)輸出1011
B、運(yùn)行時(shí)輸出1111
C、運(yùn)行時(shí)輸出1112
D、編譯有錯(cuò)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是重載增1運(yùn)算符此題中,Point&operator++Ofi?
的是前綴形式,而Poinlopcrator++(int)重載的是后綴形式。所以主函數(shù)中第1條輸
出語句輸出11,此時(shí)a.x的值為11;第2條輸出語句,首先創(chuàng)建了一個(gè)Point對(duì)
象。Id保存自身,然后通過語句++(*this);調(diào)用前綴++的重載函數(shù),因?yàn)榉祷刂凳?/p>
改變前保存的old對(duì)象,故仍輸出11。
家二級(jí)C++機(jī)試(選擇題)模擬試卷
第3套
一、選擇題(本題共27題,每題1.0分,共27分。)
1、下列敘述中正確的是()。
A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C、循環(huán)鏈表是非線性結(jié)構(gòu)
D、雙向鏈表是非線性結(jié)構(gòu)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)溝中,樹這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)
構(gòu)。
2、棧的初始狀態(tài)為空?,F(xiàn)將元素1,2,3,A,B,C依次入棧,再依次出棧,則
元素出棧的順序是
A、1,2,3,A,B,C
B、C,B,A,1,2,3
C、C,B,A,3,2,1
D、1,2,3,C,B,A
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序
是CBA321。
3、已知枚舉類型定義語句為:enumToken(NAME,NUMBER,PLUS=5,
MINUS,PRINT=10);則下列敘述中錯(cuò)誤的是(),
A、枚舉常量NAME的值為1
B、枚舉常量NUMBER的值為1
C、枚舉常量MINUS的值為6
D、枚舉常量PRINT的值為10
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是C++語言的數(shù)據(jù)類型,第一個(gè)枚舉常量的值為0:允
許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí),在前一枚舉
常量值的基礎(chǔ)上以此增lo
4、下列程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;template
<typenameT>Tfun(Ta,Tb){return(a<=b)?a:b:}intmain(){cout<<fun(3,6)
VV','VVfun(3.14F,6.28F)<<endl;return0;}
A、0,3.14
B、3,3.14
C>3,3
D、3.14,3.14
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此函數(shù)模板的功能是輸出a、b兩數(shù)中較小的那個(gè)數(shù)。(3,6)輸出3,
(3.14F,6.28F)輸出3.14。
5、下列有關(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ù)重載的概念。在C++語言中,允許定義一系列函
數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返
回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C)錯(cuò)誤。
6、下列描述中錯(cuò)誤的是()。
A、在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C、數(shù)據(jù)庫設(shè)計(jì)是指在己有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D、數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:在數(shù)據(jù)庫系統(tǒng)中,物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、
存取方式等)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不
影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。
7、有如下程序:#include#includeusingnamespacestd:classMyString{public:
charstr|80];MyString(constchar*s){strcpy(str,s);}
MyString&operator+=(MyStringa){strcat(str,a.str);return*this;));
ostream&operator?(osiream&s,constMyString&z){returns<
A、abc
B、cde
C^abcde
D、abccde
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在類Mystring中,定義了帶參數(shù)的構(gòu)造函數(shù)Mystrjng(constchads),
其作用是把s指向的字符串拷貝到字符組str中。在類中還對(duì)運(yùn)算十=進(jìn)行重裁定
義,其作用是把字符串str和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=v歸,
結(jié)果為abccdeo
8、下列符號(hào)中不屬于C++關(guān)鍵字的是()。
A、friend
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)鍵字;continue是終
止本次循環(huán)直接開始下一次循環(huán)所用到的關(guān)鍵字:byte是字節(jié)的意思,它不是C++
語言中的關(guān)鍵字。
9、有如下類聲明:classBase{protected;intmount;public:Base(intn=0):
amount(n){)intgctAmount()const{returnamount;)};classDerived:public
Base{protected;intvalue;public;Derived(intm,intn):value(m).Base(n)()Int
getData()const{returnvalue+amount;}):已知x是一個(gè)Derived對(duì)象,則下歹J表
達(dá)式中正確的是()。
A、x.value+x.getAmount()
B、x.getData()—x.getAmount。
C^x.gctData()—x.amount
D、x.value+x.amount
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問權(quán)限。派生類中的成員不能訪
問基類中的私有成員,可以訪問基類中的公有成員和保護(hù)成員。派生類從基類公有
繼承時(shí),基類的公有成員和保護(hù)成員在派生類中仍然是公有成員和保護(hù)成員:派生
類從基類私有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中都變成私有成員:派
生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中變成保護(hù)成員,基類的保護(hù)成
員在派生類中仍然是保尹成員。
10、下列關(guān)于C++函數(shù)的敘述中,正確的是()。
A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)
B、每個(gè)函數(shù)都必須返回一個(gè)值
C、函數(shù)在被調(diào)用之前必須先聲明
D、函數(shù)不能自己調(diào)用自己
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送
給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用
自己。
11、在下面的類定義中,錯(cuò)誤的語句是()。classSample{public:
Sample(intval);||①?Sample。;||@private:inta=2.5:||③Sample。;II④}:
A、①②③④
B、?
C、③
D、①②③
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)謁析:③是錯(cuò)誤的,因?yàn)樵陬愺w內(nèi),不允許對(duì)所定義的數(shù)據(jù)成員進(jìn)行初始
化;其他語句構(gòu)造和析溝函數(shù)的定義都是正確的。
12、為了取代C中帶參數(shù)的宏,在C++中使用()。
A、重載函數(shù)
B、內(nèi)聯(lián)函數(shù)
C、遞歸函數(shù)
D、友元函數(shù)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)。C++語言引入內(nèi)聯(lián)函數(shù)的原因是用它來取代
C語言的預(yù)處理宏函數(shù)。
13、規(guī)范化主要為克服數(shù)據(jù)庫邏輯結(jié)構(gòu)中的插入異常,刪除異常以及
A、數(shù)據(jù)丟失的問題
B、冗余度大的問題
C、數(shù)據(jù)不一致的問題
D、結(jié)構(gòu)不合理的問題
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不
合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。
14、若MyClass為一個(gè)類,執(zhí)行“MyClassa[4],徇[5];”語句時(shí)會(huì)自動(dòng)調(diào)用該類構(gòu)
造函數(shù)的次數(shù)是()。
A、2
B、5
C、4
D、9
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:語句MyClassa[4],*p⑸不僅定義了4個(gè)MyClass對(duì)象,分別為
a[0],a[l],a[2],a[3],而且定義了5個(gè)指向MyClass對(duì)象的指針變量,分別為
*p[0],*p[l],*p[2],*p[3],*p[4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。
15、下列運(yùn)算符函數(shù)中,肯定不屬于類Value的成員函數(shù)的是()。
A^Valueoperator+(Value);
B、Valueopcrator-(Value,Value);
C、Valueoperator*(int);
D、Valueoperator/(Value);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:運(yùn)算符作為非成員函數(shù)時(shí),由于沒有隱含ihis指針,因此所有的操作
數(shù)必須出現(xiàn)在參數(shù)表中。對(duì)于第二個(gè)選項(xiàng),出現(xiàn)了兩個(gè)操作數(shù),必然是非成員函
數(shù),但是對(duì)于其他三個(gè)選項(xiàng),有可能都是要求兩個(gè)操作數(shù)的成員函數(shù)。
16、通過派生類的對(duì)象可直接訪問其()。
A、公有繼承基類的公有成員
B、公有繼承基類的私有成員
C、私有繼承基類的公有成員
D、私有繼承基類的私有成員
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:基類的私有成員在派生類中都是不能訪問的,所以選項(xiàng)B、D是錯(cuò)誤
的,基類的公有成員通這私有繼承后,在派生類中變?yōu)榱怂接谐蓡T,只能在派生類
中進(jìn)行訪問,而通過派生類的對(duì)象不能訪問,所以選項(xiàng)C也是錯(cuò)誤的?;惖墓?/p>
有成員通過公有繼承后,在派生類中是公有成員,所以可以通過派生對(duì)象來訪問。
17^有如下程序:#inc1ude<iostream>usingnamespacestd;classMusic{public:
voidsetTitle(char*slr){strcpy(title,str);}protected:chartype|10];private:char
title[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,Jazz);
//①slrcpy(title,str);//②}};下列敘述中正確的是()。
A、程序編譯正確
B、程序編譯時(shí)語句①出錯(cuò)
C、程序編譯時(shí)語句②出錯(cuò)
D、程序編譯時(shí)語句①云口②都出錯(cuò)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:派生類Jazz不能訪問基類Music中的私有成員titlco
18、已知基類Employee只有一個(gè)構(gòu)造函數(shù),其定義如下:Employee::
Employee(intn):id(n){jManager是Employee的派生類,則下列對(duì)Manager的構(gòu)造
函數(shù)的定義中,正確的是()。
A、Manager::Manager(inln):id(n){}
B、Manager::Manager(intn){id=n;}
C、Manager::Managcr(intn):Employee(n){)
D、Manager::Manager(intn){Employee(n);}
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生
類的構(gòu)造函數(shù)名后面顯示的調(diào)用基類的構(gòu)造函數(shù)。
19^有如下類定義classMyClasspublic:Private:inidata:);若要為MyClass
類重載流輸入運(yùn)算符>>,使得程序中可以“cin?obj;”形式輸入MyClass類的對(duì)象
obj,則橫線處的聲明語句應(yīng)為()。
A、friendistream&operator?(istream&is,MyClass&a);
B、friendistrcam&opcrator?(istrcam&is,MyClassa);
C、istream&operator?(istream&is,MyClass&a);
D^istream&operator?(istream&is,MyClassa);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++的輸入運(yùn)算符>>作為非類成員函數(shù)重載。在一個(gè)類中,可將輸入
運(yùn)算符>>聲明為友元函數(shù),在類MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)A所
示。
20、有如下4個(gè)語句:①
A、①和③
B、①和④
C、②和③
D、②和④
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)。析:此題考查C++流的使用。selfino作用是設(shè)置填充字符:left是使輸出
數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊:right是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。
21、有如下語句序列:ifstreaminfile(nDATA.DAT");
iffinfile.good())cout?,'A";else{cout?"B";ofstreamoutfile("DATA.DAT");
if(outfile.fail())cout?"C";elsecout?"Dn;}若執(zhí)行這個(gè)語句序列顯示的是
BD,則說明文件DATA.DAT()0
A、以讀方式打開成功
B、以讀方式打開失敗,但以寫方式打開成功
C、以讀方式打開失敗,以寫方式打開也失敗
D、以讀方式打開成功,以寫方式打開也成功
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:由這個(gè)語句序列顯示的結(jié)果是BD,說明執(zhí)行了和
cout?”D”語句。
國家二級(jí)C++機(jī)試(選擇題)模擬試卷
第4套
一、選擇題(本題共23題,每題1.0分,共23分。)
1、有如下程序:#include<iostream>usingnamespacestd;intmain(){int*p:
*p=9;cout<<"Thevalueatp:"<<*p;rcturnO:}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況
是()。
A、編譯時(shí)出現(xiàn)語法錯(cuò)誤,不能生成可執(zhí)行文件
B、運(yùn)行時(shí)一定輸出:Thevalueatp:9
C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9
D、運(yùn)行時(shí)有可能出錯(cuò)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:題目程序中“int,*p;”是定義了一個(gè)指針變量p,“*p=9;”是將p當(dāng)
前指向的指針賦為9。指針p在執(zhí)行這個(gè)賦值操作前并沒有初始化這個(gè)變量p,所
以會(huì)有p未初始化的警告錯(cuò)誤。
2、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是()。
A、epp
B、exe
C、obj
D、lik
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:在VC6.0集成開發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一
個(gè).epp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。
3、在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針fronl=6,尾指針rear=9,則循環(huán)隊(duì)
列中的元素個(gè)數(shù)為
A、2
B、3
C、4
D、5
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中,rear表示尾指針,front表示頭指針,當(dāng)有元素入隊(duì)時(shí),
rear=rear+1,而元素出隊(duì)的時(shí)候,front=front+1,當(dāng)rear值大于front值時(shí),隊(duì)列中
的元素個(gè)數(shù)為rear-front?當(dāng)rear的值小于front時(shí),列隊(duì)中的元素個(gè)數(shù)為rear-
front+m(m表示隊(duì)列的容量)。
4、在軟件開發(fā)中,需求分析階段可以使用的工具是()。
A、N—S圖
B、DFD圖
C、PAD圖
D、程序流程圖
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典
DD,判定樹與判定表,所以選擇B。
5、有如下程序:#include<iostream>usingnamespacestd;classsample
{private:intx,y;public:sample(inti,intj){x=i:y=j;)voiddisp(){cout<
<"dispr,<<endl;)voiddispoconst{cout<<"disp2,,<<endl;});intmain()
{constsamplea(l,2);a.disp():returnO:)該程序運(yùn)行后的輸出結(jié)果是()▽
ANdispl
B、disp2
C^displdisp2
D、程序編譯時(shí)出錯(cuò)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:因?yàn)閷?duì)象a被定義為常對(duì)象,所以a.disp()語句調(diào)用的是類的常成員
函數(shù)voiddisp()const?輸出的結(jié)果是disp2<>
6、下列程序的輸出結(jié)果為2,橫線處應(yīng)添加語句()。#include<iostream>using
namespacestd;classTestClassl{public:voidfun(){cout<<1:}};class
TestClass2:publicTestClassl{public:voidfun(){cout<<2;}};intmain()
{TestClassl*p=newTestClass2;p->fun();deletep;return0:}
A^public
B、private
C、virtual
D、protected
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義TestClassl類的指針對(duì)象p指向派生類
TestClass2o因?yàn)榛惡团缮愔卸加衒un函數(shù),題目要求輸出為2,就是基類對(duì)象
訪問派生類中fun函數(shù)。通過虛函數(shù)與指向基類對(duì)象的指針變量的配合使用,就能
方便調(diào)用同名函數(shù)。所以這里將基類中的fun函數(shù)聲明為virtual。并且當(dāng)一個(gè)成員
函數(shù)被聲明為虛函數(shù)后,其派生類中的同名函數(shù)自動(dòng)成為虛函數(shù)。
7、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是()。
A、源程序要文檔化
B、數(shù)據(jù)說明的次序要規(guī)范化
C、避免濫用goto語句
D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
標(biāo)準(zhǔn)答案:D
知識(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)單和清晰,程序必須是可以理解的。可
以認(rèn)為,著名的“清晰第一、效率第二''的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。良
好的程序設(shè)計(jì)風(fēng)格主要應(yīng)注重和考慮下列幾個(gè)因素:①源程序文檔化,包括下列
三個(gè)方面:A符號(hào)的命名應(yīng)具有一定的含義;B正確的注釋能夠幫助讀者理解程
序;C視覺組織,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?/p>
②數(shù)據(jù)說明的方法,包括下列三個(gè)方面:A數(shù)據(jù)說明的次序規(guī)范化;B說明語句中
變量安排有序化;C使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。③語句的結(jié)構(gòu)應(yīng)該簡(jiǎn)單直
接,不應(yīng)該為提高效率而把語句復(fù)雜化。④輸入和輸出方式和風(fēng)格應(yīng)盡可能方便
用戶的使用。
8、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A、自頂向下
B、逐步求精
C、模塊化
D、可復(fù)用
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析?:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自項(xiàng)向下,逐步求精,
模塊化,限制使用got。語句。自頂向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)
節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(fù)雜問題應(yīng)設(shè)計(jì)一些子目
標(biāo)過渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)?步分
解成具體的小目標(biāo),把號(hào)個(gè)小目標(biāo)稱為一個(gè)模塊???復(fù)用性是指軟件元素不加修改
成稍加修改便可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工
程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要力法,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方
法。
9、軟件生命周期可分為定義階段、開發(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ā)階段。
10、有如下程序:#includeusingnamespacestd;classBook{public:
Book(char*t=uv){strcpy(title,t);)private:chartitle[40];}:classNovel:public
Book|public:Novel(char*t-o,):Book(t){}char*Category()const{returni4^
學(xué)”;));inlmain(){Book*pb;pb二newNovel。;cout<Category();deletepb;
return0;}若程序運(yùn)行時(shí)輸出結(jié)果是“文學(xué)”,則橫線處缺失的語句是()。
A、char*Category();
B、char*Caiegory()const;
C^virtualchar*Category()const:
D、virtualchar*Catcgory()const=0;
標(biāo)準(zhǔn)答案:D'
知識(shí)點(diǎn)解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”
為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類是不能被實(shí)例化的,但是可以定
義指向抽象類數(shù)據(jù)的指針變量,當(dāng)派生類成為具體類后,就可以用這種指針指向派
生類的對(duì)象,然后通過該指針調(diào)用虛函數(shù),實(shí)現(xiàn)多態(tài)性的操作。所以本題答案為
Do
11、下列關(guān)于this指針的敘述中,正確的是()。
A、this指針是一個(gè)隱含指針,它隱含于類的成員函數(shù)中
B、只有在使用this時(shí),系統(tǒng)才會(huì)將對(duì)象的地址賦值給this
C、類的友元函數(shù)也有this指針
D、this指針表示了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:this指針是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象的地址:它隱含
于每個(gè)類的非靜態(tài)成員函數(shù)中;this指針只能在類的成員函數(shù)中使用,它指向該成
員函數(shù)被調(diào)用的對(duì)象;靜態(tài)成員函數(shù)沒有this指針,因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函
數(shù)實(shí)例,使用ihis指針無意義。
12、數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。
A、數(shù)據(jù)的方法
B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
C、數(shù)據(jù)的對(duì)象
D、數(shù)據(jù)的邏輯存儲(chǔ)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門學(xué)
科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。
13、下面不屬于軟件設(shè)計(jì)階段任務(wù)的是()。
A、軟件總體設(shè)計(jì)
B、算法設(shè)計(jì)
C、制定軟件確認(rèn)測(cè)試計(jì)劃
D、數(shù)據(jù)庫設(shè)計(jì)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:軟件設(shè)計(jì)階段總體分為兩部分:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),此階段的主要
任務(wù)就是將需求規(guī)格說明文檔轉(zhuǎn)換為軟件設(shè)計(jì)文檔,將需求階段提出的問題,
解釋,形成詳細(xì)設(shè)計(jì)文檔,并根據(jù)功能要求,定制相應(yīng)數(shù)據(jù)結(jié)構(gòu)、各種流程圖等,
為下一步編碼做準(zhǔn)備。
14、有如下程序:#include<iostream.h>voidmain(){charstr[2][5]={H1234".
"5678"),*p⑵;inti,j,s=0;for(i=0;i<2;i++)p[i]=str[i];for(i=0;i<2;
i++)for(j=0;p[i][j]>>\j+=2)s=10*s+p[i][j]-,0,;cout<<s;}該程序的輸出
結(jié)果是()。
A、1357
B、2468
C、3556
D、23678
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:程序中的“for(i=0;i<2;i++)p[i]=str[i]:”語句將str中的值賦值給指
針數(shù)組p。在接下來的二重for循環(huán)中,跳取“i+=2”,p指針指向的值即力“,"3",
“5”,“7”。在分別對(duì)字符到整型的轉(zhuǎn)換,即減去字符,(T,然后依次轉(zhuǎn)換為千位,百
位,.十
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)后胸部訓(xùn)練計(jì)劃方案
- 2026年會(huì)澤縣第二人民醫(yī)院后勤工作人員招聘?jìng)淇碱}庫及答案詳解一套
- 2026年中信國安實(shí)業(yè)集團(tuán)有限公司招聘?jìng)淇碱}庫及一套完整答案詳解
- 2026年中國電力工程顧問集團(tuán)西南電力設(shè)計(jì)院有限公司招聘?jìng)淇碱}庫及完整答案詳解1套
- 2026年廣西賀州紫云景區(qū)旅游開發(fā)有限公司招聘?jìng)淇碱}庫帶答案詳解
- 2026年成都市花園國際小學(xué)招聘儲(chǔ)備教師備考題庫及一套答案詳解
- 2026年九江市第五人民醫(yī)院自主招聘衛(wèi)生專業(yè)技術(shù)人員7人的備考題庫及答案詳解一套
- 2026年人民交通出版社股份有限公司校園招聘13人備考題庫及參考答案詳解1套
- 2026年安吉縣衛(wèi)生健康系統(tǒng)事業(yè)單位公開招聘醫(yī)療衛(wèi)生專業(yè)人員41人備考題庫(第一號(hào))及答案詳解一套
- 2026年上海好德便利有限公司招聘?jìng)淇碱}庫及完整答案詳解一套
- GB/T 46793.1-2025突發(fā)事件應(yīng)急預(yù)案編制導(dǎo)則第1部分:通則
- 2016-2023年北京財(cái)貿(mào)職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 《思想道德與法治》
- 項(xiàng)目劃分表(土建)
- 靜配中心細(xì)胞毒性藥物的配置方法
- 腫瘤學(xué)課件:女性生殖系統(tǒng)腫瘤(中文版)
- 焊縫的圖示法
- 化工廠新員工安全培訓(xùn)教材DOC
- 2020年云南省中考英語試卷真題及答案詳解(含作文范文)
- GB/T 2951.11-2008電纜和光纜絕緣和護(hù)套材料通用試驗(yàn)方法第11部分:通用試驗(yàn)方法-厚度和外形尺寸測(cè)量-機(jī)械性能試驗(yàn)
- GB/T 12642-2013工業(yè)機(jī)器人性能規(guī)范及其試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論