版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國家二級(jí)C++機(jī)試(選擇題)模擬試卷
第1套
一、選擇題(本題共21題,每題1.0分,共21分。)
1、程序調(diào)試的任務(wù)是
A、設(shè)計(jì)測(cè)試用例
B、驗(yàn)證程序的正確性
C、發(fā)現(xiàn)程序中的錯(cuò)誤
D、診斷和改正程序中的錯(cuò)誤
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟
件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的
調(diào)試工具去執(zhí)行并找出錯(cuò)誤的具體位置v軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要
在開發(fā)階段。
2、有如下程序:usingnamespacestd;classCar{public:Car(inti):weight(i){)
friendintTotal(constCar&c,constBoat&b);||(T)private:classBoat{public:
Boat(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);private:int
weight;intTotal(constCar&c,constBoat&b){||@returnc.weight+b.weight;)
intmain(){Carc(10);cout?"Thetotalweightis"<
A、程序編譯正確.
B、程序編譯時(shí)語句①出錯(cuò)
C、程序編譯時(shí)語句②出錯(cuò)
D、程序編譯時(shí)語句⑨出錯(cuò)
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:程序中定義了類Car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函
數(shù)和友元函數(shù)friend。程序在WC6.0中編譯通過。
3、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無關(guān)的是()。
A、重載函數(shù)
B、虛函數(shù)
C、指針
D、引用
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)
性。編譯時(shí)的多態(tài)性是通過函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)
體現(xiàn)的。
4、針對(duì)數(shù)組定義intdala。。];,下列表述中錯(cuò)誤的是O。
A、用*(1混@可訪問到數(shù)組的首元素
B、用data[9]可訪問到數(shù)組的末元素
C、用dala|10]訪問數(shù)組元素會(huì)超出數(shù)組邊界
D、data共有10個(gè)元素,其首元素是data[l]
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考奄的是數(shù)組和指針的概念。題目中data"0]共有10個(gè)元素,
分別是data[O]、data[l]>data⑵、data[3]...data[9],首元素足data[O],所以選項(xiàng)D)
錯(cuò)誤:其他選項(xiàng)均正確。
5、關(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ù)的重載形式。
6、下列符號(hào)中可以用作C++標(biāo)識(shí)符的是()。
A^_radius
B、foo-bar
C、else
D、3room
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是C++語言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符有字母、數(shù)字和下
劃線構(gòu)成,其第一個(gè)字母必須是字母或下劃線:定義標(biāo)識(shí)符時(shí),不要采用系統(tǒng)的保
留字。
7、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。
A^b
B、B
C、_
D、2
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開頭的,由字母、數(shù)字、下劃線
組成的字符串。
8、有如下程序:#inc1tide<iostream>#inc1ude<cslring>usingnamespacestd;
classXCD{char*a;intb;public:XCD(char*aa,intbb){a=new
char[strlen(aa)+I];strcpy(a,aa),b=bb;|char*Gcta(){returna;)intGetb(){return
b;));intmain(){char*pl=',abcd",*p2=,,weirong";intdl=6,d2=8;XCD
x(pl,dl),y(p2,d2);cout<<strlen(x.Geta())+y.Getb()<<endl;return0;}運(yùn)行時(shí)
的輸出結(jié)果是()。
A、12
B、16
C、14
D、11
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:由類XCD的定義可知,成員函數(shù)Gela()返回的是字符串的長(zhǎng)度,
Gelb()返回的是參數(shù)b的值。在主函數(shù)中slrlen(x.Gela。)的值等于4,y.Gelb()的
值等于8,所以輸出兩者的和為12。
9、若有如下類聲明classMyclass{public:MyclassQ{cout<<l;)};執(zhí)行卜列語
句Myclassa,b[2],*p[2]:以后,程序的輸出結(jié)果是()。
A、11
B、111
C、1111
D、11111
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是對(duì)象的構(gòu)造。本題共聲明了一個(gè)MyClass對(duì)象a,一個(gè)
包含2個(gè)MyQass對(duì)象的數(shù)組b和…個(gè)包含2個(gè)MyClass對(duì)象指針的數(shù)組p,所以
一共創(chuàng)建了3個(gè)MyClass類的對(duì)象,即調(diào)用了3次構(gòu)造函數(shù)。
10、建立一個(gè)類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用()。
A、析構(gòu)函數(shù)
B、構(gòu)造函數(shù)
C、靜態(tài)函數(shù)
D、友元函數(shù)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:建立一個(gè)類的對(duì)象時(shí),編譯程序需要為對(duì)象分配存儲(chǔ)空間,進(jìn)行必要
的初始化。在C++中,這項(xiàng)工作是由構(gòu)造函數(shù)來完成。
11、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。
A、a[2]=''WIN''
B、strcpy(a[2],''WIN')
C、a[2][3]=,W,
D、a[0][l]=a[0][l]
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不
能用等號(hào)進(jìn)行賦值操作。
12、下列有關(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ù)函數(shù)體的最后一條語句必須是return語句
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的概念。在調(diào)用時(shí),內(nèi)聯(lián)函數(shù)會(huì)像宏函數(shù)一樣
的展開,將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換所以它沒有一般函數(shù)的參數(shù)壓棧和和退
棧操作,所以選項(xiàng)A錯(cuò)誤;即使沒有使用inline說明,編譯器也會(huì)將在類的說明部
分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更
高的執(zhí)行效率,所以選預(yù)D錯(cuò)誤。
13、有如下程序:#include<iostream>usingnamespacestd;classBase{public:
voidfun(){cout<<"Base::fun"<<endl;});classDerived:publicBase
{public:voidfun(){cout<<"Derived::fun"<<endl;}};int
main(){Derivedd:d.fun();return0;)已知其執(zhí)行后的輸出結(jié)果為:Base::
funDerived::fun則程序中下劃線處應(yīng)填入的語句是()。
A、Base.fun();
Base::fun();
C、Base->fun();
D、fun();
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是繼承的使用。分析題目可知,橫線處應(yīng)填入對(duì)基類成員
函數(shù)fun()的調(diào)用語句,此處只能使用作用域運(yùn)算符“::”才能調(diào)用到基類的同名
函數(shù).故選項(xiàng)RiF確.
14、有如下程序#includeusingnamespacestd;classBase{protected:
Base(){cout?'A';}Base(charc){cout<
A、B
B、BA
C、AB
D、BB
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)3析:此題考查的是派生類對(duì)象的構(gòu)造。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)
行順序是:執(zhí)行基類的溝造函數(shù),調(diào)用順序按照各個(gè)基類被被繼承時(shí)聲明的順序;
執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序;執(zhí)行派
生類的構(gòu)造函數(shù)。此題中,在建立派生類Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類Base
的構(gòu)造,調(diào)用的是默認(rèn)溝造函數(shù),輸出字符,A,;然后調(diào)用自身的構(gòu)造函數(shù),輸出
4B\故程序的輸出結(jié)果是:ABo
15、有如下程序:#include<iostream>usingnamespacestd;classBasel{public:
Basel(intd){cout<<d;}~Basel(){}}:classBase2{public:Base2(intd){cout<
<d;}~Base2(){}};classDerived:publicBaseLBase2[public:Derived(int
a,intb,intc,intd);Basel(b),Base2(a),bl(d),b2(c){}Private:intbl;int
b2;}:intmain(){Derivedd(l,2,3,4);return0;}運(yùn)行時(shí)的輸出結(jié)果是0。
A、1234
B、2134
C、12
D、21
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:程序在創(chuàng)建派生類對(duì)象d時(shí),分別調(diào)用基類Basel和Basel的構(gòu)迨函
數(shù)。
16、為類Malrix重載下列運(yùn)算符時(shí),只能作為Mairix類成員函數(shù)重載的運(yùn)算符是
()。
A、+
B、=
C、<<
D、十十
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在C++中,=、口、()、一>以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員
函數(shù)重載。
17、下列關(guān)于函數(shù)模板的描述中,正確的是()。
A、函數(shù)模板是一個(gè)實(shí)例函數(shù)
B、使用函數(shù)模板定義的函數(shù)沒有返回類型
C、函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同
D、通過使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,
只是所針對(duì)的數(shù)據(jù)類型不同。數(shù)據(jù)類型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種
參數(shù)化類型的函數(shù)。
18、有如下程序:#include<iostrearn>usingnamespacestd;intmain()
{cout.cout.width(6);cout.cout<<123<<endl;return
0;}執(zhí)行后的輸出結(jié)果是()。
A、###123
B、123###
C、***123
D、123***
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是I/O格式化輸出。函數(shù)widlh(inln)設(shè)盤輸入輸出寬
度,當(dāng)實(shí)際數(shù)據(jù)寬度小于制定的寬度時(shí),多余的位置用填充字符填滿;當(dāng)實(shí)際數(shù)據(jù)
寬度大于設(shè)置的寬度時(shí),仍按實(shí)際寬度輸出;函數(shù)fill(charc)用來設(shè)置填充字符。
19、下列關(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ù)可以省略。
20、已知主函數(shù)中通過如下語句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta[IO],
b[10];swap(a,b,10):下列對(duì)函數(shù)模板sw叩的聲明中,會(huì)導(dǎo)致上述語句序列發(fā)
生編譯錯(cuò)誤的是()。
A、templatevoidswap(Ta[],Tb[],intsize);
B、templatevoidswap(intsize,Ta[],Tb[]);
C、templatevoidswap(TIa|bT2b|],intsize);
D、templatevoidswap(Tla[],T2b[]?intsize);
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:由題目中函數(shù)sw叩(a,b,10)調(diào)用語句可知,在對(duì)函數(shù)模板swap的
聲明語句中,應(yīng)將第一、一二個(gè)參數(shù)設(shè)為數(shù)組變量,第三個(gè)參數(shù)為整型變量。
21、如需要向一個(gè)二進(jìn)制文件尾部添加數(shù)據(jù),則該文件的打開方式為()。
A、ios_base::app
B、ios_base::binaryIlos_base::out
C>ios_base::out
D、ios_base::binaryIios_base::app
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:ios_base::binary模式是作為二進(jìn)制文件打開,ios_base::app模
式是作為添加數(shù)據(jù)而打開(總是在尾部寫)。
家二級(jí)C++機(jī)試(選擇題)模擬試卷
第2套
一、選擇題(本題共34題,每題1.0分,共34分。)
1、下列字符串中,不瓦以用作C++標(biāo)識(shí)符的是()。
A、y_2006
B、TEST_H
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)的保留字。
2、下列描述中正確的是()。
A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)
B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效
率
D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)
的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種
存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。
3、下列關(guān)于棧的描述中錯(cuò)誤的是()。
A、棧是先進(jìn)后出的線性表
B、棧只能順序存儲(chǔ)
C、棧具有記憶作用
D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:棧是限定壟一端進(jìn)行插入與刪除的線性表。棧頂(top):插入數(shù)據(jù)
(即入棧)的一端:棧底(bottom):不能入棧也不能出棧的…端。棧存儲(chǔ)數(shù)據(jù)的
原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。
4、下列敘述中正確的是()。
A、棧是一種先進(jìn)先出的線性表
B、隊(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、下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是()。
A、函數(shù)的遞歸調(diào)用
B、數(shù)組元素的引用
C、多重循環(huán)的執(zhí)行
D、先到先服務(wù)的作業(yè)調(diào)度
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:隊(duì)列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪
除。
#include<iostream>
usingnamespacestd;
intmainO{
9hera;
cin?a;
if(a-#,)cout?”《endl;
elsecout?H###w?endl;
return0;
6、有如下程序}輸入字符+時(shí),程序的運(yùn)行
結(jié)果是()。
、***
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í)行與其匹配的eke后面的分支。本題
執(zhí)行時(shí)雖然輸入變量a的值為,十,,但是在執(zhí)行if后拈號(hào)內(nèi)表達(dá)式(a=,2)的時(shí),由
于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號(hào)右邊的值其ASCII碼的
值非零,執(zhí)行if后面的輸出語句“***''后回車。
只
回由回X囪
7、對(duì)下列二叉樹團(tuán)囪進(jìn)行前序遍歷的結(jié)果是
A、DYBEAFCZX
B、YDEBFZXCA
C、ABDYECFXZ
D、ABCDEFXYZ
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)露析?:二叉樹前序遍歷的簡(jiǎn)單描述:若二叉樹為空,則結(jié)束返回;否則:
①防問根結(jié)點(diǎn):②前序遍歷左子樹;③前序遍歷石子樹。可見,前序遍歷二叉樹
的過程是一個(gè)遞歸的過程。根據(jù)題目中給出的二叉樹的結(jié)構(gòu)可知前序遍歷的結(jié)果是
ABDYECFXZo
8、若有以下程序:#includc<iostrcam>usingnamespacestd;classTestClass
{public:voidwho(){tout<<"TestClass11<<endl;}};classTestClass1:public
TestClass{public:voidwho(){cout<<"TestClass1"<<endl:));intmain()
{lestClass*p;lestClasslobjl;p=&obj1;p->who();rcturnO:}則該程序運(yùn)行
后的輸出結(jié)果是()。
A^TestClass1
B、TestClass
C、0
D、無輸出
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:程序中的TestClasl為TestClass的派生類,主函數(shù)main中定義
TestClass對(duì)象*p,TestClass1對(duì)象objl,然后p引用objl,執(zhí)行p->who()則是調(diào)
用基類中的who函數(shù),輸出TesiClass。
9、下列選項(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í)慣和邏
輯思路C程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的C可
以認(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)盡可能方便
用戶的使用。
10、下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計(jì)方法主要特征的是()。
A、繼承
B、自項(xiàng)向下
C、模塊化
D、逐步求精
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法的主要特征有封裝性、繼承性和多態(tài)性。而結(jié)構(gòu)化
程序設(shè)計(jì)方法的主要原則有自頂向下,逐步求精,模塊化,限制使用got。語句。
11、軟件是指()。
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)的文檔。
12、軟件按功能可以分為:應(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)目管理的工具軟件。
13、軟件按功能可以分為:應(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)目管理的工具軟件。
14、軟件生命周期是指()。
A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C、軟件的開發(fā)過程
D、軟件的運(yùn)行維護(hù)過程
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)誦析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、
退役的過程。
15、有如下類定義:classlest{public:l'est(){a=O;C=0;}II(J)intf(int
a)const{this.>a:a;)||@staticintg(){returna;)||(3)voidh(intb){Test::
b=b;};||?private:inta;staticintb;constintc;);intTest::b=0:在標(biāo)
注號(hào)碼的行中,能被正確編譯的是()。
A、①
B、②
C、③
D、@
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:此題考查的是類的定義。一個(gè)類的長(zhǎng)數(shù)據(jù)成員的初始化只能在成員初
始化列表中進(jìn)行,故選項(xiàng)A錯(cuò)誤;常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,故選項(xiàng)
B錯(cuò)誤;靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中說
明的非靜態(tài)成員,故選頊C錯(cuò)誤。
16、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)got。語句使用描述正確的是
A、禁止使用goto語句
B、使用goto語句程序效率高
C、應(yīng)避免濫用goto語句
D、goto語句確實(shí)一無是處
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:濫用got。語句確實(shí)有害,應(yīng)盡量避免:完全避免使用got。語句并非
是明智的方法,有些地方使用got。語句會(huì)使程序流程更清楚、效率更高:爭(zhēng)論的
焦點(diǎn)不應(yīng)該放在是否取消goto語句,而應(yīng)該放在用在什么程序結(jié)構(gòu)上。
17、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。
A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無參數(shù),重載的是一元運(yùn)算符
B、一元運(yùn)算符只能作為成員函數(shù)重載
C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)
D、C++中可以重載所有的運(yùn)算符
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:運(yùn)算符重載為成員函數(shù)時(shí),會(huì)省略一個(gè)參數(shù),如果無參數(shù),表明是一
元運(yùn)算符。一元運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。二
元運(yùn)算符如果作為非成員函數(shù),則參數(shù)表中必須有兩個(gè)參數(shù)。C++有5個(gè)運(yùn)算符不
能重載,它們是:(成員訪問運(yùn)算符)、*(成員指針訪問運(yùn)算符)、::(域運(yùn)算符)、
sizeof(長(zhǎng)度運(yùn)算符)和?:(條件運(yùn)算符)。故本題答案為A。
18、軟件生命周期是指()。
A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C、軟件的開發(fā)過程
D、軟件的運(yùn)行維護(hù)過程
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱
為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用
為止的整個(gè)時(shí)期都屬于軟件生命周期。
的操作是()。
A、自然連接
B、交
C、投影
D、并
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析?:選擇是單目運(yùn)算,其運(yùn)算對(duì)象是一個(gè)表。該運(yùn)算按給定的條件,從表
中選出滿足條件的行形成一個(gè)新表作為運(yùn)算結(jié)果。投影也是單目運(yùn)算,該運(yùn)算從表
中選出指定的屬性值組成一個(gè)新表。自然連接是一種特殊的等價(jià)連接,它將表中有
相同名稱的列自動(dòng)進(jìn)行史錄匹配。自然連接不必指定任何同等連接條件。
20、下列關(guān)于虛基類的貓述中,錯(cuò)誤的是()。
A、使用虛基類可以消除由多繼承產(chǎn)生的二義性
B、構(gòu)造派生類對(duì)象時(shí),虛基類的構(gòu)造函數(shù)只被調(diào)用一次
C、聲明"classB:virtualpublicA”說明類B為虛基類
D、建立派生類對(duì)象時(shí),首先調(diào)用虛基類的構(gòu)造函數(shù)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:虛基類是為了消除由多重繼承產(chǎn)生的一義性而提出的。虛基類的說明
格式是:Class〈類名〉:vir【ual<繼承方式><基類名>,其中關(guān)鍵字virtual與繼承方
式的位置無關(guān),但必須位于基類名之前,且virtual只對(duì)緊隨其后基類名起作用。
對(duì)于本題來說,聲明“classB:virtualpublicA”說明類A為虛基類。
21、已知枚舉類型聲明語句為:enumCOLOR{WHITE,YELLOW,GREEN=5,
RED,BLACK=10):則下列說法中錯(cuò)誤的是()。
A、枚舉常量YELLOW的值為1
B、枚舉常量RED的值為6
C、枚舉常量BLACK的值為10
D、枚舉常量WHITE的值為1
標(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é)
束。
22、有如下程序:#includeusingnamespacestd;classA{public:virtualvoid
fo{cout?l:)voidgo{cout?2;}};classB:publicA{public:virtualvoid
f0{cout?3;)voidgO{cout?4;)};voidshow(A&a){a.fO;a.gO;)int
main(){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ù)virlualvoidf()和實(shí)函數(shù)
voidgO進(jìn)行了重新定義,在主函數(shù)中通過語句show(b);調(diào)用派生類中的虛函數(shù)
virtualvoidf(){cout?3;)輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){cout?2;)輸出2。
所以選項(xiàng)D為正確答案。
23、由關(guān)系R1和R2得到關(guān)系R3的操作是
R2R3
ra
HABcEM
2rdPIA1XM1
J。1YMI
LULdL£JIcJ0yNJ
B、并
C、笛卡爾積
D、交
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:等值連接是關(guān)系運(yùn)算.連接運(yùn)算的一種常用的連接方式。是條件連接
(或稱0連接)在連接運(yùn)算符為“=”號(hào)時(shí),即8=0時(shí)的一個(gè)特例。
24、下列敘述中,錯(cuò)誤的是()。
A、false是一個(gè)邏輯型常量
B、b是一個(gè)字符型常量
C、365是一個(gè)int常量
D、3.1415926是一個(gè)double常量
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中問有一個(gè)或若干個(gè)
字符。或者以開頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。
25、下列關(guān)于模板的敘述中,正確的是()。
A、如果一個(gè)類中存在純虛函數(shù),這個(gè)類就是類模板
B、函數(shù)模板不能有形式參數(shù)表
C、類模板是一種參數(shù)化類型的類,是類的生成器
D、類模板中不能包含構(gòu)造函數(shù)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:對(duì)于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),是一種參數(shù)化類型的函
數(shù)。對(duì)于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類
的生成器。
26、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。
A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)
B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)
C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)
D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是復(fù)制構(gòu)造函數(shù)的概念。用一個(gè)已知的對(duì)象初始化一個(gè)正
在創(chuàng)建的同類對(duì)象時(shí),就會(huì)發(fā)生復(fù)制構(gòu)造函數(shù)。因此,選項(xiàng)A、C、D均會(huì)調(diào)用復(fù)
制構(gòu)造函數(shù).而只有選項(xiàng)B沒有創(chuàng)建的動(dòng)作.不調(diào)用復(fù):制構(gòu)造函數(shù).
27、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。
A、iostream
fstream
C、strstream
D、iomanip
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:要使用文件流對(duì)象進(jìn)行針對(duì)磁盤文件的I/O操作,必須包含
fstrem.頭文件。
28>有如下類定義:classXX[intxx;public:XX():xx(0)(cout?'A";}
XX(intn):xx(n){coul<<'B';});classYY:publicXX{intyy;public:
YY():yy(0){coul<
A、YYyl(0,0);
B、YYy2(l);
C>YYy3(0);
D、YYy4;
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:考查的是類的繼承。選項(xiàng)A的執(zhí)行結(jié)果為B0,建立YY的對(duì)象yl,
首先調(diào)用其構(gòu)造函數(shù),YY繼承于XX所以先調(diào)用的為XX的構(gòu)造函數(shù),根據(jù)輸入
的參數(shù)可知輸出B,然后執(zhí)行YY的構(gòu)造函數(shù)輸出0;同理,選項(xiàng)B的執(zhí)行結(jié)果為
B1,選項(xiàng)C的執(zhí)行結(jié)果為B0。
29、有如卜程序:#inc1ude<lostream>usingnamespacestd;classA{public:A(int
i){x=i;)voiddispa(){cout<<x<<,/;}private:intx;);classB:publicA
{public:B(inti):A(i+10){x=i;)voiddispb(){dispa();cout<<x<<endl;}privateint
x;);intmain(){Bb(2);b.dispb();return0;}運(yùn)行時(shí)輸出的結(jié)果是()。
A、10,2
B、12,10
C、12,2
D、2,2
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造。主函數(shù)中,首先聲明B類的對(duì)象b,執(zhí)
行進(jìn)入B的構(gòu)造函數(shù)B(in【i)再接著執(zhí)行A的構(gòu)造函數(shù)A(in【i),形參i為12,x被
賦值12;通過對(duì)象b調(diào)用其成員函數(shù)dispb(),輸出結(jié)果12;接著執(zhí)行函數(shù)dispbO的第
2條語句輸出2,然后主函數(shù)結(jié)束。
30、有如下類定義:classSample{public;Sampleiintx):ref(x){)//①
private:Sample():ref(O){}//②staticintval=5;//(3)constintref;//
④};上述程序段中,錯(cuò)誤的語句是()。
A、①
R、②
C、@
D、?
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。
31、下列運(yùn)算符不能重載為友元函數(shù)的是()。
A、=()[]->
B、+-++--
C、><>=<=
D^+=-=*=/=
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語言規(guī)定,=、口、()、->以
及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重
我為非成員函數(shù)。
32、有如下類定義classMyClasspublic:Private:intdata;};若要為
MyQass類重載流輸入運(yùn)算符>>,使得程序中可以“cin>>objr形式輸入
MyClass類的對(duì)象obj,則橫線處的聲明語句應(yīng)為()。
A、friendistream&operator>>(istream&is*MyClass&a);
B、friendistream&operator>>(istream&is,MyClassa);
C、istrcam&operator>>(istrcam&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)所示。
33、關(guān)于關(guān)鍵字class和typcriame,下列表述中正確的是()。
A、程序中的typename都可以替換為class
B、程序中的class都可以替換為typename
C、在模板形參表中只能用typename來聲明參數(shù)的類型
D、在模板形參表中只能用class或lypename來聲明參數(shù)的類型
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用
來定義類以外還能用來聲明模板的虛擬類型參數(shù)。在用作聲明虛擬類型參數(shù)時(shí)
typename與class可以互換,但不能使用typename來定義類;在模板形參表中除了
可以用typename和class聲明虛擬類型參數(shù)外,還可以使用普通類型聲明常規(guī)函
數(shù),故選項(xiàng)C錯(cuò)誤。
34、運(yùn)算符重載時(shí)不需要保持的性質(zhì)是()。
A、操作數(shù)個(gè)數(shù)
B、操作數(shù)類型
C、優(yōu)先級(jí)
D、結(jié)合性
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:運(yùn)算符重載應(yīng)該體現(xiàn)為原有運(yùn)算符的功能在新的數(shù)據(jù)類型上的延伸。
重載的運(yùn)算符保持原有運(yùn)算符的操作個(gè)數(shù)、優(yōu)先級(jí)和結(jié)合性三個(gè)最基本的特征。
國家二級(jí)C++機(jī)試(選擇題)模擬試卷
第3套
一、選擇題(本題共33題,每題1.0分,共33分。)
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ù)的。所以出棧順序
是EDCBA54321。
2、對(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è)位
置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear
指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指制from指向隊(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ì)尾指針。
3、下列運(yùn)算符不能重載為友元函數(shù)的是()。
A、=()[]->
B、+-++--
C、><>=<=
D、+=-=*=/=
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語言規(guī)定,=、口、()、->以
及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重
載為非成員函數(shù)。
4、定義無符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。
A、-369
B、369
C、0.369
D、整數(shù)集合{1,2,3,4,5)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:UInt表示的是無符號(hào)整數(shù)類,所以它的每個(gè)實(shí)例都是一個(gè)無符號(hào)整
數(shù),所以排除選項(xiàng)A)和選項(xiàng)C),選項(xiàng)D)是整數(shù)集合,所以也排除。
5、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有
若干個(gè)鍵,它們稱為該表的()。
A、連接碼
B、關(guān)系碼
C、外碼
D、候選碼
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表
中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選
取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。
6、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。
A、public
B、static
C、protected
D、private
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private私
有)。
7、有如下程序:#include#includeusingnamespacestd;classXCD{chara;ini
*
b;public:XCD(charaa,intbb){a=newchar[strlen(aa)+1];strcpy(a,aa):b=
bb;}charGeta(){returna;)intGetb(){returnb;});intmain(){charpT'abcd",
*p2="weirongH;intdl=6,d2=8;XCDx(pl,dl),y(p2,d2);cout<
A、12
B、16
C、14
D、11
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:由類XCD的定義可知,成員函數(shù)Gela()返回的是字符串的長(zhǎng)度,
Getb()返回的是參數(shù)b的值。在主函數(shù)中stHen(x.Geta())的值等于4,y.Getb()的
值等于8,所以輸出兩者的和為12。
8、已知函數(shù)print。沒有返回值,如果在類中將之聲明為常成員函數(shù),正確的是
()。
A、voidprint()const;
B、constvoidprint();
C^voidconstprint();
D、voidprint(const);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:consi成員函數(shù)表示該成員函數(shù)只能讀類數(shù)據(jù)成員,而不能修改類成
員數(shù)據(jù)。定義const成員函數(shù)時(shí),把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之
問。
9、數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。
A、數(shù)據(jù)定義語言
B、數(shù)據(jù)管理語言
C、數(shù)據(jù)操縱語言
D、數(shù)據(jù)控制語言
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(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ù)等功能。
10、下列程序用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#inckide<
conio.h>#includc<iostrcam.h>intfun(int*p>intn,int*j){inti;*j=0;
for(i=0;i<n;i++)if(p|*j]<p[i])*j=i;returnp[*j];)voidmain(){inta[10]={1?
3,9,O,8,7,6,5,4,2};intj;fun(a,10,&j);cout<<j<<\<<
ag}
A、2,9
B、3
C、9
D、3,9
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,調(diào)用fun函數(shù)。其中第一個(gè)實(shí)參為數(shù)
組a的名字,數(shù)組名作為實(shí)參,傳遞的是數(shù)組的起始地址。所以在fun函數(shù)中指針
p指向了數(shù)組的第一個(gè)元素a[0]”另外實(shí)參整型j隹遞的是引用,也就是j的地
址。在fun函數(shù)中在for循環(huán)中,依次將當(dāng)前元莪p[i]與j指針值為標(biāo)識(shí)的p[*j]進(jìn)
行比較,取較大的。最后循環(huán)后的結(jié)果就是p[叩存放數(shù)組中的最大值,并且指針j
為該值的標(biāo)識(shí)位。可以看出數(shù)組的最大值是9標(biāo)識(shí)位為2。
11、有如卜程序:#include<iostream>usingnamespacestd;classTestClassl
{public:TestClass1{cout<<"TestClass1";)?TeslClassl(){coutVV"~
TestClassl";}}:classTestClass2:publicTestClassl{TestClassl*p;public;
TestClass2(){cout<<"TestClass2n;p=newTestClass1();}~TestClass2(){cout<<
"~TestClass2";deletep;)};intmain(){TestClass2obj;returnO:}執(zhí)行這個(gè)程
序的輸出結(jié)果是()。
A、TestClass2TestClasslTestClass1?TestClass1?TeslClass2?TestClass1
B、TestClassiTestClass2TestClass1?TestClass2~TestClass1^TestClass1
C>TestClass2TcstClass1TestClass1~TestClass2TestClass1?TestClass1
D、TestClass1TestClasslTestClas1~TestClass1?TestClass2?TeslClass1
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:派生類中閡造函數(shù)的執(zhí)行順序是:先調(diào)用基類構(gòu)造函數(shù),對(duì)基類數(shù)據(jù)
成員初始化,然后調(diào)用子對(duì)象構(gòu)造函數(shù),對(duì)子對(duì)象數(shù)據(jù)成員初始化;最后執(zhí)行派生
類構(gòu)造函數(shù)本身,對(duì)派生類數(shù)據(jù)成員初始化。由主函數(shù)main入手,首先定義了一
個(gè)TestClass2對(duì)象objo其中TestClass2公共繼承TestClassl,對(duì)象obj可以訪問
TestClassl中的公有成員函數(shù)。TestClass2中定義了一個(gè)TestClassl的指針p,給p
分配新空間,即指向類TestClassl,輸出“TestClassl“。在TestClass2的構(gòu)造函數(shù)中
首先輸出“TestClassT',并在TestClassl構(gòu)造函數(shù)中輸出“TestClassl”。TestClass2析
構(gòu)函數(shù)中輸出“?TcstClassT',刪除指針p,輸出“?TestClassl”。析構(gòu)TestClassl
輸出“?TestClassl”。
12、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系
R和S得到關(guān)系T的操作是()。
A、自然連接
B、交
C、除
D、并
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R、S經(jīng)過除運(yùn)算
后得到的。
13、有如下程序:#includeusingnamespacestd:classVAC{public:int
f()const{return3;)intf(){return5;}};intmain(){VACvl;constVACv2;
cout<
A、53
B、35
C、55
D、33
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題考查常對(duì)象及常成員函數(shù)及構(gòu)造函數(shù),常對(duì)象只能調(diào)用常成員函
數(shù),所以本題中,對(duì)象VI為普通對(duì)象,執(zhí)行vl.f()后,會(huì)執(zhí)行默認(rèn)構(gòu)造函數(shù),輸
出5,對(duì)象v2為常對(duì)象,執(zhí)行v2.f()后,會(huì)執(zhí)行常構(gòu)造函數(shù),輸出3。
14、下面不屬于結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是
A、程序結(jié)構(gòu)良好
B、程序的易讀性
C、不濫用Got。語句
D、程序的執(zhí)行效率
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)(structuredprogramming)是進(jìn)行以模塊功能和處理過
程設(shè)計(jì)為主的詳細(xì)設(shè)計(jì)的基本原則。結(jié)構(gòu)化程序設(shè)計(jì)是過程式程序設(shè)計(jì)的一個(gè)子
集,它對(duì)寫入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。
15、下列敘述中,錯(cuò)誤的是()。
A、false是一個(gè)邏輯型常量
B、b是一個(gè)字符型常量
C、365是一個(gè)血常量
D、3.1415926是一個(gè)double常量
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)
字符。或者以開頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。
16、假定MyQass為一個(gè)類,則該類的拷貝初始化構(gòu)造函數(shù)的聲明語句為()。
A^MyClass&(MyClassx):
B、MyClass(MyClassx)
C^MyClass(MyClass&x):
D、MyCIass(MyClass*x)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對(duì)象初始化一
個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名::類名(const類名&引用對(duì)象
名)。
17、公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有
多名職員。則實(shí)體部門和職員間的聯(lián)系是
A、1:1聯(lián)系
B、m:I聯(lián)系
C、1:m聯(lián)系
D、m:n聯(lián)系
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:一個(gè)部門可以有多名員工,所以實(shí)體部門和職員間的聯(lián)系是1:m聯(lián)
系。
18、有如下程序:#includeusingnamespacestd;classA{public:
A(){cout?nA":}~A(){cout<<"—A";});classB:publicA{A*p;public:
B(){cout?"B";P=ncwA();}—B(){cout?"?B";deletep;));intmain(){B
obj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。
A、BAA?A~B?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ì)象Obj是會(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é)果是
輸出:ABAo派生類對(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。
19、在對(duì)函數(shù)進(jìn)行原型聲明時(shí),下列語法成分中,不需要的是()。
A、函數(shù)返回類型
B、函數(shù)參數(shù)列表
C、函數(shù)名
D、函數(shù)體
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)》析:在C++中函數(shù)在使用之前要預(yù)先聲明,這種聲明在標(biāo)準(zhǔn)C++中稱為
函數(shù)原型。函數(shù)給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須指明參數(shù)個(gè)數(shù)和類
型。
20、下面是重載為非成員函數(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ù)重載。
21、為類Malrix重載下列運(yùn)算符時(shí),只能作為Malrix類成員函數(shù)重載的運(yùn)算符是
()。
A、+
B、=
C、?
D、++
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在C++中,=、口、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函
數(shù)重機(jī)
22、若要重載+、=、<<、=和|]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。
A^+和=
B、=和<<
C、二和《
D、=和口
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:=、[|、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而
且不能是針地枚舉類型操作數(shù)的重載。
23、關(guān)鍵字unsigned不能修飾的類型是()。
A、char
B、int
C、float
D、longint
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:實(shí)型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned
只對(duì)整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個(gè)signedint
是-32768?32767,而unsignedint是0?65535)。unsigned對(duì)浮點(diǎn)數(shù)是無意義的。
24、有如下程序:#include<iostream>usingnamespacestd;classXA{inta;
public:staticintb:XA(intaa):a(aa){b++;)^XA(){)intget(){returna;));int
XA::b=0;intmain(){XAdl(2),d2(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.get()的返回值等于
2,XA.b的值等于1,執(zhí)行XA類的實(shí)例變量d2(3)時(shí),成員函數(shù)dl.ge【()的返回
值等于3,XA.b的值等于2,所以輸出結(jié)果為2+3+2=7。
25、若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è)指向MyOass對(duì)象的指針變量,分別為
*P⑼,,"⑵,*p[3],*p|4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。
ss
;cla
estd
espac
gnam
usin
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年江西省宜春市單招職業(yè)適應(yīng)性測(cè)試題庫及參考答案詳解1套
- 2026年商丘學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫及答案詳解一套
- 2026年重慶移通學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫及參考答案詳解
- 2026年六盤水幼兒師范高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫含答案詳解
- 2026年甘肅財(cái)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫帶答案詳解
- 2026年山東文化產(chǎn)業(yè)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫附答案詳解
- 2026年廈門華廈學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及參考答案詳解一套
- 2026年蘭州航空職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫參考答案詳解
- 2026年黑龍江省黑河市單招職業(yè)適應(yīng)性測(cè)試題庫及完整答案詳解1套
- 2026年陜西旅游烹飪職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫及答案詳解1套
- 2025年(第一季度)電網(wǎng)工程設(shè)備材料信息參考價(jià)(加密)
- 追款律師委托合同協(xié)議
- 二年級(jí)上學(xué)期期末語文試題(含答案)
- 油茶皂素化學(xué)修飾與溶血性關(guān)系研究
- 2025年中華人民共和國監(jiān)察法知識(shí)競(jìng)賽題庫及答案(共四套)
- 互聯(lián)網(wǎng)企業(yè)財(cái)務(wù)管理特點(diǎn)及挑戰(zhàn)
- 骨質(zhì)疏松病人的護(hù)理課件
- 《水利水電工程隧洞超前地質(zhì)預(yù)報(bào)規(guī)程》
- 五金品質(zhì)培訓(xùn)
- 創(chuàng)新創(chuàng)業(yè)心理學(xué)知到智慧樹章節(jié)測(cè)試課后答案2024年秋東北農(nóng)業(yè)大學(xué)
- 附睪囊腫的臨床特征
評(píng)論
0/150
提交評(píng)論