版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6第三套
1、在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠。
A、對(duì)象的繼承
B、對(duì)象的多態(tài)
C、對(duì)象的封裝
D、對(duì)象的分類
信息隱蔽是指采用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),使模塊接口盡量簡(jiǎn)單。
故此題答案為C。
2、以下表達(dá)中正確的選項(xiàng)是。
A、為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B、表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成假設(shè)干數(shù)據(jù)項(xiàng)
C、一個(gè)關(guān)系的屬性名表稱為關(guān)系模式
D、一個(gè)關(guān)系可以包括多個(gè)二維表
為了建立一個(gè)關(guān)系,首先要指定關(guān)系的屬性,所以選項(xiàng)A是錯(cuò)誤的。表示關(guān)系的二維表中各元組的每一個(gè)分量必須是不可
分的根本數(shù)據(jù)項(xiàng),所以選項(xiàng)B是錯(cuò)誤的。在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系,所以選項(xiàng)
D是錯(cuò)誤的。一個(gè)關(guān)系的屬性名表稱為該關(guān)系的關(guān)系模式,其記法為:〈關(guān)系名〉(〈屬性名1〉,〈屬性名2〉,…,<屬性名n>)。
故此題答案為C。
3、以下表達(dá)中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是。
A、程序的效率第一,清晰第二
B、程序的可讀性好
C、程序中要有必要的注釋
D、輸入數(shù)據(jù)前要有提示信息
要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮下述一些因素:符號(hào)名的命名應(yīng)具有一定的實(shí)際含義,以便于對(duì)程序功
能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應(yīng)優(yōu)先考慮清晰性,除非對(duì)效率有特殊要求,程序編寫要做到
清晰第一,效率第二。
故此題答案為A。
4、一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),那么該二叉樹中的總結(jié)點(diǎn)數(shù)為。
A、219
B、221
C、229
D、231
二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。此題中度為2的結(jié)點(diǎn)數(shù)
為70-1=69,該二叉樹中的總結(jié)點(diǎn)數(shù)為70+80+69=219。
故此題答案為A。
5、冒泡排序在最壞情況下的比擬次數(shù)是。
A、n(n+l)/2
B、nlogzn
C、n(n-l)/2
D、n/2
冒泡排序法是一種最簡(jiǎn)單的交換類排序方法,它是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。
假設(shè)線性表的長(zhǎng)度為n,那么在最壞的情況下,冒泡排序需要經(jīng)過(guò)n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需
要的比擬次數(shù)為n(n-l)/2。
故此題答案為C。
6、軟件調(diào)試的目的是。
A、發(fā)現(xiàn)錯(cuò)誤
B、改正錯(cuò)誤
C、改善軟件的性能
D、驗(yàn)證軟件的正確性
軟件調(diào)試的目的是診斷和改正程序中的錯(cuò)誤,改正以后還需要再測(cè)試。
故此題答案為B.
7、以下表達(dá)中正確的選項(xiàng)是。
A、數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題
C、數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)
D、以上三種說(shuō)法都不對(duì)
為了解決多用戶、多應(yīng)用共享數(shù)據(jù)的需求,使數(shù)據(jù)為盡可能多的應(yīng)用效勞,數(shù)據(jù)管理的最新技術(shù)—數(shù)據(jù)庫(kù)技術(shù)應(yīng)運(yùn)而生。
數(shù)據(jù)庫(kù)系統(tǒng)由如下幾局部組成:數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員、系統(tǒng)平臺(tái)(硬件平臺(tái)和軟件平臺(tái)),所以選項(xiàng)
A、C是錯(cuò)誤的。
故此題答案為B。
8、以下表達(dá)中正確的選項(xiàng)是。
A、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是---對(duì)應(yīng)的
B、由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)
C、程序設(shè)計(jì)語(yǔ)言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)
D、以上三種說(shuō)法都不對(duì)
數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存
儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。因此,在進(jìn)行
數(shù)據(jù)處理時(shí),選擇適宜的存儲(chǔ)結(jié)構(gòu)是很重要的,所以選項(xiàng)A是錯(cuò)誤的。
根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)和非線性結(jié)構(gòu),所以
選項(xiàng)B是錯(cuò)誤的。
數(shù)組既可以處理線性結(jié)構(gòu)也可以處理非線性結(jié)構(gòu),所以選項(xiàng)C是錯(cuò)誤的。
故此題答案為D.
9、軟件是指。
A、程序
B、程序和文檔
C、算法加數(shù)據(jù)結(jié)構(gòu)
D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合
計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一局部,是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。
故此題答案為D.
10、以下表達(dá)中正確的選項(xiàng)是。
A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)
B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D、以上三種說(shuō)法都不對(duì)
所謂提高程序執(zhí)行的效率,主要包括兩個(gè)方面:一是提高數(shù)據(jù)處理的速度,二是盡量節(jié)省在數(shù)據(jù)處理過(guò)程中所占用的計(jì)
算機(jī)存儲(chǔ)空間。
故此題答案為A。
11、如果派生類以protected方式繼承基類,那么原基類的protected成員和public成員在派生類中的訪問(wèn)屬性分別是
A、public和public
B、public和protected
C、protected和public
D、protected和protected
此題考查的是派生類。
派生類中的成員不能訪問(wèn)基類中的私有成員,可以訪問(wèn)基類中的公有成員和保護(hù)成員。此時(shí)派生類對(duì)基類中各成員的訪
問(wèn)能力與繼承方式無(wú)關(guān),但繼承方式將影響基類成員在派生類中的訪問(wèn)控制屬性。
故此題答案為D。
12、以下關(guān)于類模板的模板參數(shù)的表達(dá)中,錯(cuò)誤的選項(xiàng)是。
A、模板參數(shù)可以作為數(shù)據(jù)成員的類型
B、模板參數(shù)可以作為成員函數(shù)的返回類型
C、模板參數(shù)可以作為成員函數(shù)的參數(shù)類型
D、模板參數(shù)不能作為成員函數(shù)的局部變量的類型
此題考查模板的作用。
模板的作用:模板它提供的是一個(gè)框架,待你提供真正的參數(shù)后,它便有了一個(gè)實(shí)例。類模板定義不同類型的成員:成
員函數(shù)、靜態(tài)數(shù)據(jù)成員和嵌套的類型。模板參數(shù)也可以作為成員函數(shù)的局部變量的類型。
故此題答案為D。
13、語(yǔ)句int*p=&k;定義了指針p,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是o
A、int*p;p=&k;
B、int*p;p=k;
C、int*p;*p=&k;
D、int*p;*p=k;
此題考查的是指針。
一個(gè)指針是一個(gè)特定類型數(shù)據(jù)的存儲(chǔ)地址,比方一個(gè)變量的地址。在使用任何指針變量之前必須先給它賦一個(gè)所指合法
具體對(duì)象的地址值。
語(yǔ)句int*p=&k;定義了一個(gè)指向變量k地址的int類型的指針p,此定義方法是在定義過(guò)程中同時(shí)賦初始值。選項(xiàng)A中int
*p;p=&k;是先定義了一個(gè)指針p,然后將變量k的地址賦給指針p,與題目中的語(yǔ)句int*p=&k;等效。
故此題答案為A。
14、有如下程序:
ttinclude<iostream>
usingnamespacestd;
classMyClass{
public:
MyClass(intx):val(x){}
voidPrint0const{cout?z,const:val=z'?val?,\t);}
voidprint(){cout?z,val=z,?val<<,\t);}
private:
intval;
);
intmain(){
constMyClassobjl(10);
MyClassobj2(20);
objl.Print();
obj2.Print();
return0;
)
程序的輸出結(jié)果是。
A、val=10const:val=20
B、const:val=10const:val=20
C、const:val=10val=20
D、val=10val=20
此題考查的是構(gòu)造函數(shù)調(diào)用順序。
constMyClassobjl(10);首先定義了MyClass的const對(duì)象objl,并初始構(gòu)造函數(shù)參數(shù)為x=10。構(gòu)造函數(shù)通過(guò):val(x)
將x的值給val。
MyClassobj2(20);定義MyClass的對(duì)象obj2,并初始構(gòu)造函數(shù)參數(shù)為x=20。構(gòu)造函數(shù)通過(guò):val(x)將x的值給val。
objl.Print();調(diào)用Objl對(duì)象中的Print()函數(shù),輸出objl對(duì)象成員變量val的當(dāng)前值,即輸出const:val=10。
obj2.Print0;調(diào)用Obj2對(duì)象中的Print()函數(shù),輸出obj2對(duì)象成員變量val的當(dāng)前值,即輸出const:val=20。
故此題答案為B。
15、有如下程序:
ttinclude<iostream>
usingnamespacestd;
classBase(
public:
voidoutput(){cout?l;}
virtualvoidPrint(){cout?,B5;}
);
classDerived:publicBase(
public:
voidoutput0{cout?2;}
voidPrint(){cout?,D5;}
);
intmain(){
Base*ptr=newDerived;
ptr->output();
ptr->Print();
deleteptr;
return0;
)
程序的輸出結(jié)果是。
A、IB
B、ID
C、2B
D、2D
此題考查的是虛函數(shù)。
virtualvoidPrint(){cout*'B';}表示這方法是虛函數(shù),虛函數(shù)的意思是如果子類有繼承這虛函數(shù),那么子類的
對(duì)象在執(zhí)行此方法時(shí)調(diào)用子類的此方法。否那么會(huì)調(diào)用基類的此方法。
在此程序中Derived是子類,Base是基類,Base*ptr=newDerived;創(chuàng)立一個(gè)子類的對(duì)象給基類的指針對(duì)象。
ptr->output();因?yàn)橹羔榩tr是基類的對(duì)象。所以在執(zhí)行output()方法時(shí)會(huì)調(diào)用基類的output()方法,也就是Base類
的output。方法。不會(huì)調(diào)用Derived類的output()方法,因?yàn)閛utput()不是虛函數(shù)。輸出1。
ptr->Print();因?yàn)镻rint();在基類Base中申明是虛函數(shù),所以在子類中如果有繼承此方法就會(huì)調(diào)用子類的這方法。
所以這個(gè)調(diào)用的是Derived類的Print();方法。輸出D。
故此題答案為B。
16、必須用一對(duì)大括號(hào)括起來(lái)的程序段是o
A、switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句
B、if語(yǔ)句的分支
C、循環(huán)語(yǔ)句的循環(huán)體
D、函數(shù)的函數(shù)體
此題考查的是函數(shù)的函數(shù)體。
由一對(duì)花括號(hào)括起來(lái)的〈函數(shù)體>是語(yǔ)句的序列,它定義了函數(shù)應(yīng)執(zhí)行的具體操作。
if語(yǔ)句的分支和循環(huán)語(yǔ)句的循環(huán)體通常使用花括號(hào)。括起來(lái);switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句后加的是冒號(hào)":"。
故此題答案為D.
17、以下關(guān)于運(yùn)算符重載的描述中,正確的選項(xiàng)是。
A、運(yùn)算符重載為成員函數(shù)時(shí),假設(shè)參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符
B、一元運(yùn)算符只能作為成員函數(shù)重載
C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)
D、C++中可以重載所有的運(yùn)算符
此題主要考查了運(yùn)算符重載。
一元運(yùn)算符還可以作為全局函數(shù)重載,所以選項(xiàng)B錯(cuò)誤。
二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有兩個(gè)參數(shù),所以選項(xiàng)C錯(cuò)誤。
有些運(yùn)算符不能被重載,如域運(yùn)算符(::),條件運(yùn)算符(?:)等,具體哪些運(yùn)算符不能被重載與編譯器有關(guān),所以選
項(xiàng)D錯(cuò)誤。
故此題答案為A。
18、C++中的模板包括。
A、對(duì)象模板和函數(shù)模板
B、對(duì)象模板和類模板
C、函數(shù)模板和類模板
D、變量模板和對(duì)象模板
此題考查的是C++中的模板,包括函數(shù)模板和類模板。
函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼形式相同,只是所針對(duì)的數(shù)據(jù)類型不同。
類模板就是一系列相關(guān)類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對(duì)的
類型。
故此題答案為C。
19、如果利用C++流進(jìn)行輸入輸出,下面的表達(dá)中正確的選項(xiàng)是。
A、只能借助于流對(duì)象進(jìn)行輸入輸出
B、只能進(jìn)行格式化輸入輸出
C、只能借助于cin和cout進(jìn)行輸入輸出
D、只能使用運(yùn)算符>〉和〈〈進(jìn)行輸入輸出
此題考查的是C++流的概念。
就像C語(yǔ)言一樣,C++語(yǔ)言中也沒(méi)有輸入/輸出語(yǔ)句。在C++中,將數(shù)據(jù)從一個(gè)對(duì)象到另一個(gè)對(duì)象的流動(dòng)抽象為"流",數(shù)據(jù)
的輸入與輸出就是通過(guò)輸入/輸出流來(lái)實(shí)現(xiàn)的。C++流可以借助于cin、cout、cerr、clog進(jìn)行輸入輸出;使用運(yùn)算符“>>”、
和get。、getline0>put(),write。函數(shù)也可以進(jìn)行輸入輸出。
故此題答案為A。
20、在函數(shù)中,可以用auto、extern,register和static這四個(gè)關(guān)鍵字中的―?個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類型,如果不說(shuō)明
存儲(chǔ)類型,那么默認(rèn)的存儲(chǔ)類型是。
A、auto
B、extern
C、register
D、static
此題考查的是C++的變量類型。C++中的變量類型分為如下幾種:
auto一函數(shù)內(nèi)部的局部變量。(auto可以省略不寫)一個(gè)局部變量如果沒(méi)有用于存儲(chǔ)類別定義符說(shuō)明時(shí),那么自動(dòng)
被說(shuō)明為auto。
static一靜態(tài)存儲(chǔ)分配,又分為內(nèi)部和外部靜態(tài)。
extern一全部變量〔用于外部變量說(shuō)明)。
register—變量存儲(chǔ)在硬件存放器中。
故此題答案為A。
21、以下符號(hào)中不屬于C++關(guān)鍵字的是o
A、friend
B、namespace
C、continue
D、byte
此題考查的是C++關(guān)鍵字。
關(guān)鍵字也稱保存字,它是由C++語(yǔ)言本身預(yù)先定義好的一類單詞。
詳細(xì)請(qǐng)見C++關(guān)鍵字表。
故此題答案為D。
22、有如下頭文件:
intfl();
staticintf2();
classMA{
public:
intf3();
staticintf4();
};
在所描述的函數(shù)中,具有隱含的this指針的是O
A、fl
B、f2
C、f3
D、f4
此題考查的是this指針。
this指針式一個(gè)隱含的指針,它隱含于每個(gè)類的非靜態(tài)成員函數(shù)中,它明確地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的
對(duì)象。當(dāng)對(duì)一個(gè)對(duì)象調(diào)用成員函數(shù)時(shí),編譯程序先將對(duì)象的地址賦值給this指針,然后調(diào)用成員函數(shù),每次成員函數(shù)存
取數(shù)據(jù)成員時(shí),那么隱含使用this指針。
this指針是指向?qū)ο蟊旧淼闹羔?,它只存在于類的非靜態(tài)成員中。fl,f2不是成員函數(shù),不存在隱含指針;f4為靜態(tài)成
員函數(shù),也不含有this指針;含有this指針的函數(shù)在調(diào)用時(shí)按thiscall調(diào)用約定調(diào)用。
故此題答案為C。
23、以下各組類型聲明符中,含義相同的一組是。
A、unsignedlongint和long
B、signedshortint和short
C、unsignedshort和short
D、shortint和int
此題考查的是符號(hào)常量聲明。
整型常量除包括根本整型(int)外,還包括短整型(shortint)、長(zhǎng)整型(longint)、無(wú)符號(hào)型(unsigned)o假
設(shè)整型常量為無(wú)符號(hào)型那么在表示時(shí)需要在前面加上unsigned,假設(shè)沒(méi)加unsigned那么默認(rèn)表示為有符號(hào)型(signed),
因此選項(xiàng)A、C錯(cuò)誤;
選項(xiàng)D中int表示整型,shortint表示短整型,含義不同,所以錯(cuò)誤;
選項(xiàng)B表示有符號(hào)的短整型,有符號(hào)(signed)可以隱藏,同時(shí)shortint可以表示為short,因此選項(xiàng)B正確。
故此題答案為B。
24、有以下程序:
ttinclude<iostream>
usingnamespacestd;
classB{
public:
virtualvoidshow(){cout〈〈〃B〃;}
};
classD:publicB{
public:
voidshow(){cout?z/D,z;}
};
voidfunl(B*ptr){ptr->show();}
voidfun2(B&ref){ref.show();}
voidfun3(Bb){b.show();}
intmain(){
Bb,*p=newD;
Dd;
funl(p);
fun2(b);
fun3(d);
return0;
)
程序運(yùn)行的輸出結(jié)果是。
A、BBB
B、BBD
C、DBB
D、DBD
此題考查的是虛函數(shù)的用法,及虛函數(shù)被繼承后的相互調(diào)用關(guān)系。
首先通過(guò)B類生成b對(duì)象,通過(guò)B類生成*p對(duì)象指針并申請(qǐng)D類內(nèi)存結(jié)構(gòu)賦給*p。然后通過(guò)D類生成d。
調(diào)用funl函數(shù),參數(shù)地址傳遞p指針地址。因?yàn)锽.showO是虛函數(shù),所以調(diào)用D.showO;輸出D。
調(diào)用fun2函數(shù),參數(shù)引用傳遞對(duì)象b,所以調(diào)用B.showO;輸出B。
調(diào)用fun3函數(shù),參數(shù)對(duì)象d;參數(shù)b二d地址。所以調(diào)用B.showO;輸出B。
所以輸出結(jié)果DBB。
故此題答案為C。
25、假設(shè)有如下類定義:
classB{
voidfunl(){}
protected:
doublevar1;
public:
voidfun2(){}
);
classD:publicB{
protected:
voidfun3(){}
};
obj是類D的對(duì)象,以下語(yǔ)句中不違反類成員訪問(wèn)控制權(quán)限的是o
A、obj.funl();
B、obj.varl;
C、obj.fun2();
D、obj.fun3()
此題考查的是類成員的訪問(wèn)控制。
類中提供了3中訪問(wèn)控制權(quán)限:公有(public)>私有(private)和保護(hù)(protected)0
B類中成員定義訪問(wèn)權(quán)限為:funl()為私有,varl為保護(hù),fun2為公共類D公共繼承B類結(jié)構(gòu),繼承結(jié)構(gòu)不改變成員權(quán)限。
因?yàn)閷?duì)象外部調(diào)用成員,只能訪問(wèn)〔公共)Public權(quán)限成員,僅fun2()為Public權(quán)限。
故此題答案為C。
26、有如下程序:
ttinclude<iostream>
usingnamespacestd;
classPart(
public:
Part(intx=0):val(x){cout?val;}
^Part(){cout?val;}
private:
intval;
);
classWhole(
public:
Whole(intx,inty,intz=0):p2(x),pl(y),val(z){cout?val;}
“Whole(){cout?val;}
private:
Partpl,p2;
intval;
);
intmain(){
Wholeobj(1,2,3);
return0;
}
程序的輸出結(jié)果是O
A、123321
B、213312
C、213
D、123123
此題考查的是類以及類的構(gòu)造函數(shù)。
classWhole{
public:
Whole(intx,inty,intz=0):p2(x),pl(y),val(z){cout?val;}
^WholeO{cout<<val;}
private:
Partpl,p2;〃定義時(shí)間的順序跟那個(gè)
intval;
};
在定義類Whole的私有成員時(shí),Partpl,p2;定義對(duì)象pl在p2前。所以在執(zhí)行Whole(intx,inty,int
z=0):p2(x),pl(y),val(z){cout?val;},創(chuàng)立對(duì)象時(shí)先執(zhí)行pl(y)構(gòu)造方法,再執(zhí)行p2(x)構(gòu)造方法。
Wholeobj(1,2,3);創(chuàng)立Whole類對(duì)象obj這時(shí)調(diào)用Whole類的構(gòu)造方法Whole(intx,inty,int
z=0):p2(x),pl(y),val(z){cout?val;},得到x=l,y=2,z=3,在執(zhí)行:p2(x),pl(y),val(z)方法,因?yàn)閷?duì)象pl在p2定義
前,所以先構(gòu)造對(duì)象pl也就執(zhí)行pl(2),調(diào)用Part類的Part(intx=0):val(x){cout〈〈val;}方法,輸出2,接著構(gòu)造p2對(duì)
象,執(zhí)行p2(l)輸出1。
再執(zhí)行val(z)給val賦值為3再執(zhí)行方法體的語(yǔ)句cout<〈val;輸出3。
現(xiàn)在所有對(duì)象構(gòu)造完了,開始析構(gòu)對(duì)象了。因?yàn)槲鰳?gòu)與構(gòu)造相反,所以先析構(gòu)z再p2再pl,輸出為312??傮w輸出就是213312。
故此題答案為B。
27、有如下程序:
ttinclude<iostream>
usingnamespacestd;
classMyClass{
public:
MyClass(){++count;}
~MyClass(){--count;}
staticintgetCount0{returncount;}
private:
staticintcount;
);
intMyClass::count=0;
intmain(){
MyClassobj;
cout?obj.getCount();
MyClass*ptr=newMyClass;
cout?MyClass::getCount();
deleteptr;
cout?MyClass::getCount();
return0;
)
程序的運(yùn)行結(jié)果是。
A、121
B、232
C、221
D、122
此題考查的是類的構(gòu)造函數(shù)。
intMyClass::count=0;的意思是初始化靜態(tài)變量coimt=0;
MyClassobj;是指創(chuàng)立類MyClass對(duì)象obj,這時(shí)會(huì)執(zhí)行類MyClass的構(gòu)造方法MyClass(){++count;},得到count=l,
cout?obj.getCount();輸出1。
MyClass*ptr=newMyClass;創(chuàng)立類MyClass指針對(duì)象*ptr,這時(shí)會(huì)執(zhí)行類MyClass的構(gòu)造方法MyClass(){++count;}
得到coimt=2,cout<<MyClass::getCount();輸出2。
deleteptr;刪除指針對(duì)象,這時(shí)會(huì)調(diào)用析構(gòu)方法~乂丫口4$5(){-count;},得到count=l,cout<XMyClass::getCount();
輸出1。
故此題答案為A。
28、有以下程序:
ttinclude<iostream>
usingnamespacestd;
classBase(
public:
Base(intx=0){cout?x;}
);
classDerived:publicBase(
public:
Derived(intx=0){cout?x;}
private:
Baseval;
};
intmain(){
Derivedd(l);
return0;
)
程序的輸出結(jié)果是O
A、0
B、1
C、01
D、001
此題考查的是類的相關(guān)知識(shí)。
“Baseval;〃因?yàn)轭怐erived有個(gè)Base類的對(duì)象val為私有變量。所以在給這類創(chuàng)立對(duì)象時(shí)會(huì)創(chuàng)立Baseval;對(duì)象。
在Derivedd(l);創(chuàng)立對(duì)象d時(shí)先創(chuàng)立Base的對(duì)象val,執(zhí)行Base類的Base(intx=0){cout〈〈x;}方法,輸出0;
接著創(chuàng)立類Derived對(duì)象d執(zhí)行類Derived的帶一個(gè)參數(shù)的構(gòu)造方法Derived(intx=0){cout?x;},在執(zhí)行前因?yàn)轭?/p>
Derived是公共繼承類Base所以先執(zhí)行基類的構(gòu)造方法Base(intx=0){cout?x;}輸出0(這個(gè)方法是給參數(shù)賦默認(rèn)值的;
intx=0意思是如果沒(méi)有傳參數(shù)過(guò)來(lái)就以0表示這個(gè)參數(shù)的值);
執(zhí)行完基類的構(gòu)造方法后執(zhí)行自己的構(gòu)造方法。因?yàn)閭鞯膮?shù)為1所以輸出1。
故此題答案為D。
29、對(duì)于一個(gè)類定義,以下表達(dá)中錯(cuò)誤的選項(xiàng)是o
A、如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)
B、如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器將一定生成一個(gè)缺省的構(gòu)造函數(shù)
C、如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)
D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)
此題考查的是類的定義。
類是一種用戶自定義的類型,聲明一個(gè)類對(duì)象時(shí),編譯程序需要為對(duì)象分配存儲(chǔ)空間,進(jìn)行必要的初始化。在C++中這項(xiàng)
工作是由構(gòu)造函數(shù)來(lái)完成的。構(gòu)造函數(shù)的作用是在對(duì)象被創(chuàng)立時(shí)利用特定的值構(gòu)造對(duì)象,將對(duì)象初始化為一種特定的狀
態(tài),使該對(duì)象具有區(qū)別于其他對(duì)象特征。構(gòu)造函數(shù)在對(duì)象被創(chuàng)立的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。
故此題答案為B。
30、關(guān)于函數(shù)重載,以下表達(dá)中錯(cuò)誤的選項(xiàng)是。
A、重載函數(shù)的函數(shù)名必須相同
B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同
C、重載函數(shù)的返回值類型必須相同
D、重載函數(shù)的函數(shù)體可以有所不同
此題考查的是函數(shù)的重載。
函數(shù)重載允許用同一個(gè)函數(shù)名定義多個(gè)函數(shù)。被重載的函數(shù)必須要有不同的形參列表。不可以根據(jù)函數(shù)返回值類型來(lái)重
載函數(shù)。函數(shù)重載是用同一個(gè)函數(shù)名在不同的參數(shù)上做不同的事情。對(duì)于僅僅是函數(shù)的返回值不同,其它參數(shù)全部相同,
不是重載。如果出現(xiàn)這種況,會(huì)在編譯產(chǎn)生錯(cuò)誤。
故此題答案為C。
31、一程序運(yùn)行后執(zhí)行的第一個(gè)輸出操作是
cout?setw(10)?setfill(J*')?1234;
那么此操作的輸出結(jié)果是。
A、1234
B、******1234
C、**********1234
D、1234******
〃setw(10)〃表示要輸出10個(gè)寬度。
z/setfillC*')〃表示沒(méi)有到達(dá)寬度要求的用*替換。
〃1234〃表示操作的數(shù)據(jù),因此前應(yīng)該有6個(gè)*。
故此題答案為B。
32、如下函數(shù)的作用是以雙倍行距輸出文件:
voiddouble_space(ifstream&f,ofstream&t){
charc;
while(){
if(c==,\n')t.put(c);
)
)
畫線缺失的局部是O
A、f.get(c)與t.put(c)
B、f.put(c)與t.get(c)
C、t.get(c)與f.put(c)
D、t.put(c)與f.get(c)
此題考查的是文件流的輸入輸出。
文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入輸出對(duì)象。
ifstream是文件輸入流類,只能用于輸入,它沒(méi)有提供任何用于輸出的操作。
ofstream是文件輸出流類,只能用于輸出,它沒(méi)有提供任何用于輸入的操作。
fstream是文件輸入輸出流類。
f.get(c)為獲得一個(gè)字符;
t.put(c)為輸出一個(gè)字符,因?yàn)閕f(c='\n')t.put(c);此句,當(dāng)c為間格字符(行距字符)時(shí),再多輸出一次t.put(c)o
故此題答案為A。
33、派生類的成員函數(shù)不能訪問(wèn)基類的。
A、公有成員和保護(hù)成員
B、公有成員
C、私有成員
D、保護(hù)成員
此題考查的是繼承的類型。
類的繼承方式有公有繼承、保護(hù)繼承和私有繼承三種方式。對(duì)于公有繼承基類中的成員訪問(wèn)屬性不變,對(duì)于保護(hù)和私有
繼承基類中的成員轉(zhuǎn)換為相應(yīng)的訪問(wèn)類型。但是如果基類成員的訪問(wèn)屬性為private的,那么不能被繼承。
故此題答案為C。
34、以下運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是。
A、intoperator-(FunNumber);
B、FunNumberoperator-0;
C、FunNumberoperator-(int);
D、intoperator-(FunNumber,FunNumber);
此題考查的是類的成員函數(shù)。
選項(xiàng)A是重載了負(fù)號(hào)或減法運(yùn)算符,由于減法運(yùn)算符它具有兩個(gè)操作數(shù),而題面原型中只有一個(gè),如果重載的是減號(hào)運(yùn)算
符,那么必為成員函數(shù)。
選項(xiàng)B中由于沒(méi)參數(shù),無(wú)論是負(fù)號(hào)或減法運(yùn)算符至少具有一個(gè)參數(shù),所以它必為成員函數(shù),同時(shí)也必定是重載了負(fù)號(hào)運(yùn)算
符。
選項(xiàng)C是必定以成函數(shù)的方式重載,因?yàn)镃++規(guī)定不能對(duì)內(nèi)置類的運(yùn)算符進(jìn)行重載,所以它不可能是友元函數(shù)(因?yàn)椴僮?/p>
數(shù)為內(nèi)置的int型),所以必為成員函數(shù)重載,且必定是重載了減法運(yùn)算符。
選項(xiàng)D有兩個(gè)參數(shù),無(wú)論是負(fù)號(hào)或減法運(yùn)算符,其操作數(shù)不超2個(gè),所以必定為友元函數(shù)重載,且重載了減法運(yùn)算符。
故此題答案為D.
35、以下是重載乘法運(yùn)算符的函數(shù)原型聲明,其中錯(cuò)誤的選項(xiàng)是。
MyClassoperator*(double,double);
MyClassoperator*(double,MyClass);
MyClassoperator*(MyClass,double);
MyClassoperator*(MyClass,MyClass);
此題考查的是運(yùn)算符的重載。
重載的運(yùn)算符應(yīng)保持其原有的根本語(yǔ)義。重載的運(yùn)算符應(yīng)盡可能保持其原有的特性。運(yùn)算符的重載應(yīng)當(dāng)配套。
至少要有一個(gè)形式參數(shù)是類的類型。所以選項(xiàng)A錯(cuò)。
故此題答案為A。
36、在兩種根本測(cè)試方法中,測(cè)試的原那么之一是保證所測(cè)模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。
標(biāo)準(zhǔn)答案為:白盒或白箱
白盒測(cè)試的根本原那么是:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)
行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件下至少執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
37、線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的存
儲(chǔ)結(jié)構(gòu)。
標(biāo)準(zhǔn)答案為:順序
在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。
38、對(duì)以下二叉樹進(jìn)行中序遍歷的結(jié)果為。
標(biāo)準(zhǔn)答案為:ACBDFEHGP或A、C、B、D、F、E、H、G、P或A,C,B,D,F,E,H,G,P或A,C,B,D,F,E,H,G,P
二叉樹的中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后
遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。遍歷的各種形式~牢記~
39、在E-R圖中,矩形表示。
標(biāo)準(zhǔn)答案為:實(shí)體集
在E-R圖中,矩形表示實(shí)體集。
40、軟件需求規(guī)格說(shuō)明書應(yīng)具有完整性、無(wú)歧義性、正確性、可驗(yàn)證性、可修改性等特性,其中最重要的是。
標(biāo)準(zhǔn)答案為:無(wú)歧義性
無(wú)歧義性是指對(duì)每一個(gè)需求只有一種解釋,其陳述具有惟一性。作為設(shè)計(jì)的根底和驗(yàn)收的依據(jù),軟件需求規(guī)格說(shuō)明
書應(yīng)該是精確而無(wú)二義的,需求說(shuō)明書越精確,那么以后出現(xiàn)的錯(cuò)誤、混淆、反復(fù)的可能性越小。
41、有函數(shù)f的定義如下:
intf0(
staticints=0;
s+=2;
returns;
)
那么在某程序中第2次執(zhí)行函數(shù)調(diào)用語(yǔ)句f();時(shí),函數(shù)f的返回值是。
標(biāo)準(zhǔn)答案為:4
此題考查的是static的用法。
static在程序運(yùn)行的過(guò)程中只初始化一次。
第一次運(yùn)行時(shí),s=2
第二次運(yùn)行時(shí),s=2+2=4
所以答案為4。
42、請(qǐng)將以下棧類Stack補(bǔ)充完整。
classStack{
private:
intpList[100];//int數(shù)組,用于存放棧的元素
inttop;〃棧頂元素〔數(shù)組下標(biāo))
public:
Stack():top(0){}
voidPush(constint&item);//新元素item壓入棧
intPop(void);//新棧頂元素彈出棧
);
voidStack::Push(constint&item){
if(top=99)//如果棧滿,程序終止}
exit(1);
top++;//棧頂指針增1
)
intStack::Pop(){
if(top<0)//如果棧空,程序終止
exit(1);
returnpList[top-];
)
標(biāo)準(zhǔn)答案為:pList[top]=item
此題考查堆棧的操作。
由于在本算法中,要彈出棧頂元素,要先將新元素item壓入棧,然后取出stack[top]中的元素。
如果棧滿,if(top=99),程序終止,棧頂指針增晨
如果棧空,程序終止。
按照堆棧先進(jìn)后的原那么,向堆棧壓入的數(shù)據(jù)總是在最上面的,top為最大記數(shù),所以pList堆棧的第top數(shù)組位
置將被賦值成壓入數(shù)據(jù)。所以答案為pList[top]二item。
43、類sample是一個(gè)抽象類,其成員函數(shù)display是無(wú)形參、無(wú)返回類型的純虛函數(shù),請(qǐng)完成其聲明:
classsample{
public:
sample(){};
);
標(biāo)準(zhǔn)答案為:virtualvoiddisplay()=0;
此題考查的是純虛函數(shù)。
這是一個(gè)純虛函數(shù)定義。它的定義格式是:virtual函數(shù)返回類型函數(shù)名(參數(shù)列表)=0,根據(jù)題目的意思,返回類
型為空,那么用void表示函數(shù)名為display參數(shù)列表為空,那么用()表示結(jié)合起來(lái),就是virtualvoiddisplay0=0;
〔其中0表示無(wú)函數(shù)體)。
44、如下程序的輸出結(jié)果是23,請(qǐng)將畫線缺失的局部補(bǔ)充完整。
#include<iostream>
usingnamespacestd;
classMyClass{
public:
voidPrint0const{cout<<23;}
};
intmain(){
MyClass*p=newMyClass();
.Print();
return0;
)
標(biāo)準(zhǔn)答案為:(*p)
此題考查的是指針。
MyClass*p二newMyClass0;是創(chuàng)立一個(gè)類MyClass的指針對(duì)象。要執(zhí)行創(chuàng)立的對(duì)象,那么(*p).Print();即為執(zhí)行
此對(duì)象的方法。
45、有如下程序:
ttinclude<iostream>
usingnamespacestd;
classA{
public:
A(){cout〈〈〃A〃;)
?A(){cout〈〈〃A〃;}
);
classB{
Aa;
public:
B(){cout<<〃B〃;}
~B(){cout?"B〃;}
);
intmain(){
Bb;
return0;
)
程序的輸出結(jié)果是。
標(biāo)準(zhǔn)答案為:ABBA
此題考查的是類的構(gòu)造。
main(){Bb;
創(chuàng)立類B一個(gè)對(duì)象b,這時(shí)轉(zhuǎn)到類B里去執(zhí)行類B的構(gòu)造方法B(),因?yàn)樵陬怋里有個(gè)全局的類A的對(duì)象a,所以在
執(zhí)行構(gòu)造方法B()之前會(huì)先創(chuàng)立類A的對(duì)象a,就去執(zhí)行類A的構(gòu)造方法A(),輸出字符A,再返回到類B執(zhí)行它的構(gòu)造
方法B()輸出字符B,現(xiàn)在所有的構(gòu)造方法執(zhí)行完了,就執(zhí)行析構(gòu)方法了,因?yàn)槲鰳?gòu)方法與構(gòu)造方法的執(zhí)行順序相反,所
以先執(zhí)行第()方法輸出字符B,再執(zhí)行~A()輸出字符A。所以輸出結(jié)果ABBA。
46、請(qǐng)將如下程序補(bǔ)充完整,使得輸出結(jié)果為:bbaa
#include<iostream>
usingnamespacestd;
classA{
public:
{cout〈<〃aa〃;)
);
classB:publicA{
public:
~B(){cout<<”bb〃;}
);
intmain(){
B*p=newB;
deletep;
return0;
)
標(biāo)準(zhǔn)答案為:~A()
此題考查的是一個(gè)帶有指針的類的構(gòu)造方法。
B*p=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧城市場(chǎng)協(xié)作伙伴關(guān)系戰(zhàn)略協(xié)議3篇
- 二零二五年度苗木種植與生態(tài)旅游融合發(fā)展合同4篇
- 22 文言文二則《書戴嵩畫?!罚ㄕf(shuō)課稿)- 2024-2025學(xué)年部編版語(yǔ)文六年級(jí)上冊(cè)
- 2025年周效磺胺項(xiàng)目可行性研究報(bào)告
- 2025年中國(guó)高端運(yùn)動(dòng)鞋行業(yè)市場(chǎng)前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 12 家庭的記憶 第一課時(shí) 說(shuō)課稿-2023-2024學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 60米短跑 說(shuō)課稿-2023-2024學(xué)年高三上學(xué)期體育與健康人教版必修第一冊(cè)
- 6 綜合與實(shí)踐(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)北師大版(2024)001
- 二零二五年度智慧城市建設(shè)綜合解決方案履約保函擔(dān)保合同4篇
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第6章 實(shí)數(shù)6.2 實(shí)數(shù)第2課時(shí) 實(shí)數(shù)的運(yùn)算與大小比較說(shuō)課稿 (新版)滬科版
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測(cè)定
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 2024年中考語(yǔ)文名句名篇默寫分類匯編(解析版全國(guó))
- 新煤礦防治水細(xì)則解讀
- 故障診斷技術(shù)的國(guó)內(nèi)外發(fā)展現(xiàn)狀
- 醫(yī)院領(lǐng)導(dǎo)班子集體議事決策制度
- 解讀2024年《學(xué)紀(jì)、知紀(jì)、明紀(jì)、守紀(jì)》全文課件
- 農(nóng)機(jī)維修市場(chǎng)前景分析
- 大學(xué)生《思想道德與法治》考試復(fù)習(xí)題及答案
- 職業(yè)技術(shù)學(xué)院汽車專業(yè)人才需求調(diào)研報(bào)告
評(píng)論
0/150
提交評(píng)論