




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
家二級(jí)(C++)筆試模擬試卷11(共9
套)
(共405題)
家二級(jí)(C++)筆試模擬試卷第1套
一、填空題(本題共14題,每題1.0分,共14分。)
1、的任務(wù)是診斷和改正程序中的錯(cuò)誤
標(biāo)準(zhǔn)答案:或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段)
知識(shí)點(diǎn)解析:軟件測(cè)試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤,而調(diào)試的目的是確定程序中錯(cuò)
誤的位置和引起錯(cuò)誤的原因,并加以改正。換句話說,調(diào)試的目的就是診斷和改正
程序中的錯(cuò)誤。調(diào)試不是測(cè)試,但是它總是發(fā)生在測(cè)試之后。因此,本題的正確答
案是調(diào)試(階段)或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段)
2、一個(gè)關(guān)系表的行稱為。
標(biāo)準(zhǔn)答案:記錄或元組
知識(shí)點(diǎn)解析:關(guān)系是關(guān)系數(shù)據(jù)模型的核心。關(guān)系可以用一個(gè)表來直觀地表示,表的
每一列表示關(guān)系的一個(gè)屬性,每一行表示一個(gè)元組或記錄。因此,本題的正確答案
是元組或記錄。
3、按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是_____o
標(biāo)準(zhǔn)答案:?;騍tack
知識(shí)點(diǎn)解析:棧和隊(duì)列是兩種特殊的線性表,其特殊性在于對(duì)它們的操作只能在表
的端點(diǎn)進(jìn)行。棧中的數(shù)裾按照后進(jìn)先出的原則進(jìn)行組織,而隊(duì)列中的數(shù)據(jù)按照先進(jìn)
先出的原則進(jìn)行組織。因此,本題的正確答案是棧(stack)。
4、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于。
標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)
知識(shí)點(diǎn)解析:數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和北線性結(jié)構(gòu),其中隊(duì)列是屬于線性結(jié)構(gòu)。隊(duì)
列有兩種存儲(chǔ)結(jié)構(gòu):一種是順序存儲(chǔ)結(jié)構(gòu),稱為順序隊(duì)列;另一種是鏈?zhǔn)酱鎯?chǔ)結(jié)
構(gòu),稱為鏈隊(duì)列。題目中所說的帶鏈的隊(duì)列就是指鏈隊(duì)列。無論隊(duì)列采取哪種存儲(chǔ)
結(jié)構(gòu),其本質(zhì)還是隊(duì)列,還屬于一種線性結(jié)構(gòu)。因此,本題的正確答案是線性結(jié)
構(gòu)。
5、若有定義語句:int*a,b;,則變量b的數(shù)據(jù)類型是o
標(biāo)準(zhǔn)答案:int
知識(shí)點(diǎn)解析:缺數(shù)據(jù)類型。
6、已知數(shù)組a中的元素個(gè)數(shù)為n,下列語句的作用是將下標(biāo)為i的元素移動(dòng)到下標(biāo)
為i-1的單元,其中例如,當(dāng)n=4,a中原有數(shù)據(jù)為1、2、3、4時(shí),則移
動(dòng)后a中元素為2、3、4、4o請(qǐng)將語句補(bǔ)充完整:for(inti=0;i<n-l;
i++)a|i]=a。
標(biāo)準(zhǔn)答案:a[i+l]
知識(shí)點(diǎn)解析:實(shí)現(xiàn)由后面一個(gè)數(shù)組元素將前一個(gè)數(shù)組元素進(jìn)行覆蓋,故應(yīng)該為
a[i]=a[i+l]0
7、已知遞歸函數(shù)f的定義如下:intf(intn){if(nV=l)retum1;〃遞歸結(jié)束:情況
f5=5*f3=5*3*f1elsereturnn*f(n-2);〃遞歸}則函數(shù)調(diào)用語句f(5)的返回值是
標(biāo)準(zhǔn)答案:15
知識(shí)點(diǎn)解析:函數(shù)遞歸調(diào)用,f(5)=5*f(3)=5*(3*f(l))=15°
8、創(chuàng)建對(duì)象數(shù)組時(shí),對(duì)數(shù)組的每一個(gè)元素都將調(diào)用一次構(gòu)造函數(shù),如果沒有顯式
給出數(shù)組元素的初值,則調(diào)用默認(rèn)構(gòu)造函數(shù),下列程序涉及對(duì)象數(shù)組的創(chuàng)建和單個(gè)
對(duì)象的創(chuàng)建,其輸出結(jié)果是o#include<iostream>usingnamespacestd;
classFoo{public:Foo(intx){eout<<,A,;)Foo(){)};intmain(){Foof[3],
g(3);return0;
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:數(shù)組f[3]調(diào)用的是無參構(gòu)造函數(shù),而g(3)調(diào)用的是第一個(gè)有參構(gòu)造函
數(shù),故打印A。
9、已知下列程序的輸出結(jié)果是42,請(qǐng)將下畫線處缺失的部分補(bǔ)充完整。include
<iostream>usingnamespacestd;classFoo{intvalue;public:Foo():value(0){)
voidsetValue(intvalue){=value;}〃給Foo的數(shù)據(jù)成員value賦值void
print())eout<<value;));intmain(){Foof;f.setValue(42);f.print();return
0;}
標(biāo)準(zhǔn)答案:this.value
知識(shí)點(diǎn)解析:為類的數(shù)據(jù)成員賦值,將從形參傳遞來的實(shí)參賦值給類數(shù)據(jù)成員,為
區(qū)分名字可以使用ihis指針
10、有如下程序:#include<iostream>usingnamespaeestd;classONE{public:
virtualvoidf()(cout<<*'1M;));classTWO;publicONE[public;TWO()1cout
<<"2";}{;classTHREE:publicTWO{public:virtualvoidf()}TWO::f();
cout<<"3";)};intmain(){ONEaa,*P;TWObb;THREEcc:P=&cc;p-
>f();return0;)程序的輸出結(jié)果是。
標(biāo)準(zhǔn)答案:2213
知識(shí)點(diǎn)解析:TWObb;調(diào)用TWO的構(gòu)造函數(shù)打印2;THREEcc;調(diào)用繼承類
TWO的構(gòu)造函數(shù)打印2;p->f():調(diào)用類TREE的函數(shù)f(),先顯式調(diào)用TWO類
的函數(shù)f(),TWO中沒有重新定義f()函數(shù),所以調(diào)用TWO的基類ONE的虛函數(shù)
f();打印1,然后再打印3,故答案為2213。
11、有如下程序:#include<iostream>usingnamespacestd:class
PARENT{public:PARENT(){cout<<"PARENT";}};classSON:public
PARENT{public:SON(){coul<<"SON";){;intmain(){SONson;
PARENT*?:P=&son;return0:)程序的輸出結(jié)果是。
標(biāo)準(zhǔn)答案:EAREN1SON
知識(shí)點(diǎn)解析:在有繼承關(guān)系的類對(duì)象構(gòu)造時(shí),先執(zhí)行基類的構(gòu)造函數(shù),然后執(zhí)行派
生類的構(gòu)造函數(shù)。所以先執(zhí)行PARENT的構(gòu)造函數(shù),然后執(zhí)行SON的構(gòu)造函數(shù)。
12、若以非成員函數(shù)形式,為類Bounce重載“!”運(yùn)算符,其操作結(jié)果為一個(gè)bool型
數(shù)據(jù),則該運(yùn)算符重載函數(shù)的原型是o
標(biāo)準(zhǔn)答案:booloperator!(Bounee);
知識(shí)點(diǎn)解析:?jiǎn)文窟\(yùn)算符重載為非成員函數(shù)的一般格式為:返回類型。pcrator操
作符(形參)其中形參類型為類名。
13、下面是復(fù)數(shù)類complex的定義,其中重載的運(yùn)算符的功能是返回一個(gè)新的
復(fù)數(shù)對(duì)象,其實(shí)部等于兩個(gè)操作對(duì)象實(shí)部之和,其虛部等于兩個(gè)操作對(duì)象虛部之
和;請(qǐng)補(bǔ)充完整。classcomplex)doublereal;〃實(shí)部doubleimag;〃虛部public:
complex(doubler,doublei):real(r),imag(i)j)complexoperator+(complexA){return
complex();}};
標(biāo)準(zhǔn)答案:real+a.real?imag+a.imag
知識(shí)點(diǎn)解析:為復(fù)數(shù)類complex以成員函數(shù)重載運(yùn)算符,虛部與虛部相加,實(shí)
部與實(shí)部相加,并返回為complex類。
14、已知一個(gè)函數(shù)模板定義為template<typenameTl.lypenaineT2>TlFUN(T2
n){returnn*5.0;}若要求以int型數(shù)據(jù)7為函數(shù)實(shí)參調(diào)用該模板函數(shù),并返回一個(gè)
double型數(shù)據(jù),則該調(diào)用應(yīng)表示為o
標(biāo)準(zhǔn)答案:FUN<double>(7)
知識(shí)點(diǎn)解析:實(shí)參類型和返回值類型不匹配時(shí),需要強(qiáng)制轉(zhuǎn)換參數(shù)類型,所以在函
數(shù)模板調(diào)用時(shí)要顯式地定義參數(shù)數(shù)據(jù)類型double,將整數(shù)7轉(zhuǎn)換為double型。
二、填空題(含2小題)(本題共3題,每題7.0分,
共3分。)
15、在下面函數(shù)的畫線處填上適當(dāng)?shù)膬?nèi)容,使該函數(shù)能夠利用遞歸方法求解字符串
str的長(zhǎng)度(不得使用系統(tǒng)提供的字符串處理函數(shù))。int
GetLen(char*str){if((6))return(7);elsereturnl+GetLen(str+l);(
知識(shí)點(diǎn)解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),
因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定是一一對(duì)應(yīng)的。選項(xiàng)A中的說法是錯(cuò)誤
的。雖然計(jì)算機(jī)的存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)
需要可以表示成多種存儲(chǔ)結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。一般來
說,在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)
在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間的
前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的。因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)
構(gòu)。選項(xiàng)B中的說法也是錯(cuò)誤的。雖然程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)
構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性
結(jié)構(gòu),實(shí)際上也是利用了程序設(shè)計(jì)語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。
選項(xiàng)C中的說法也是錯(cuò)誤的。
2、在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是
A、不限制got。語句的使用
B、減少或取消注解行
C、程序越短越好
D、程序結(jié)構(gòu)應(yīng)有助于讀者理解
標(biāo)準(zhǔn)答案:D
知火點(diǎn)解析:濫用goi。語句將使程序流程無規(guī)律,可讀性差,囚此A不選;注解
行有利于對(duì)程序的理解,不應(yīng)減少或取消,B也不選;程序的長(zhǎng)短要依照實(shí)際情況
而論,而不是越短越好,C也不選。
3、下列敘述中正確的是()。
A、線性鏈表的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的
B、線性鏈表的頭元素一定存儲(chǔ)在其他元素的前面
C、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存
儲(chǔ)在其他元素的前面
D、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存悌順
序也是任意的
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:在線性鏈表中,各元素在存儲(chǔ)空間中的位置是任意的,各元素的順
序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。
4、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A、軟件測(cè)試
B、概要設(shè)計(jì)
C、軟件維護(hù)
D、詳細(xì)設(shè)計(jì)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)3析:軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階
段。其中軟件定義階段的主要工作有可行性研究與計(jì)劃制訂和需求分析等;軟件開
發(fā)階段的主要工作有概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和測(cè)試等;軟件運(yùn)行維護(hù)階段的主要工作
是軟件的運(yùn)行及后期的維護(hù)等。
A、ABCDEF
B、DBEAFC
C、ABDECF
D、DEBFCA
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:暫無解析
6、在長(zhǎng)度為n的順序表的第i(lgiWn+l)個(gè)位置上插入一個(gè)元素,元素的移動(dòng)次數(shù)
為O
A、n-i11
B、n-i
C、i
D、i-1
標(biāo)準(zhǔn)答案:1
知識(shí)點(diǎn)解析:暫無解析
7、數(shù)據(jù)處理的最小單位是
A、數(shù)據(jù)
B、數(shù)據(jù)元素
C、數(shù)據(jù)項(xiàng)
D、數(shù)據(jù)結(jié)構(gòu)
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)
是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相
互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。
8、用鏈表表示線性表的優(yōu)點(diǎn)是
A、便于隨機(jī)存取
B、花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
C、便于插入和刪除操作
D、數(shù)據(jù)元素的物理順序與邏輯順序相同
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申
請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。
故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。
9、數(shù)據(jù)字典(DD)是定義以下哪種系統(tǒng)描述工具中的數(shù)據(jù)的工具()。
A、數(shù)據(jù)流程圖
B、系統(tǒng)流程圖
C、程序流程圖
D、軟件結(jié)構(gòu)圖
標(biāo)準(zhǔn)答案:1
知識(shí)點(diǎn)解析:本題考查數(shù)據(jù)字典的作用,數(shù)據(jù)字典是對(duì)數(shù)據(jù)流程圖中出現(xiàn)的被命名
的圖形元素的確切解釋。
10、在單鏈表中,增加頭結(jié)點(diǎn)的目的是
A、方便運(yùn)算的實(shí)現(xiàn)
B、使單鏈表至少有一個(gè)結(jié)點(diǎn)
C、標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
D、說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
標(biāo)準(zhǔn)答案:1
知識(shí)點(diǎn)解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))
的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于
運(yùn)算的實(shí)現(xiàn)。
二、選擇題(本題共25題,每題1.0分,共25分。)
11、有以下程序:#include<iostream>#include<math>usingnamespacestd;class
point{private:doublex;doubley;public:point(doublea,doubleb{x=a;y=b;friend
doubledistance(pointa,pointb;};doubledistance(pointa,pointbreturnsqrt((a.x-b.
x)*(a.x-b.x)+(a.x-b.x)*(a.x-b.x));)intmain(){pointpl(1,2);pointp2(5,2);cout<
<distance(pl,p2)<<end1;return0;)程序運(yùn)行后防輸出結(jié)果是
A、1
B、5
C、4
D、6
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)解析:本題考核友元函數(shù)的應(yīng)用。分析程序:類point中定義了兩個(gè)私有成
員x和y,以及一個(gè)友元函數(shù)distance。從而,函數(shù)distance可以訪問類point中的
任何成員o在函數(shù)distance中,返回值為sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-
b.y))o由此可知,函數(shù)distance的功能是計(jì)算a、b兩點(diǎn)之間的距離。在主函數(shù)
main中,先定義兩點(diǎn):pl(l,2)和p2(5,2)。然后調(diào)用函數(shù)distance計(jì)算兩點(diǎn)之旬的
距離為4,所以程序最后輸出為4。
12、關(guān)于const修飾符的說法中,錯(cuò)誤的是
A^const既可以修飾成員函數(shù),也可以修飾數(shù)據(jù)成員,還可以修飾對(duì)象
B、若const修飾了一個(gè)對(duì)象,則該對(duì)象中的所有數(shù)據(jù)成員都無法被更新
C、常對(duì)象無法調(diào)用一般成員函數(shù)
D、常成員函數(shù)只能被常對(duì)象調(diào)用,不能被一般對(duì)象調(diào)用
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:本題考察consi修飾符的含義及其修飾不同對(duì)象的規(guī)則。常成員函數(shù)
既能被常對(duì)象調(diào)用,也能被一般對(duì)象調(diào)用,一旦const修飾了一個(gè)對(duì)象,則對(duì)象的
所有數(shù)據(jù)成員都無法更新。
13、以下選項(xiàng)中合法的實(shí)型常數(shù)是
A、5E2.0
B、E-3
C、.2E0
D、1.3E
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:本題考查實(shí)型常數(shù)的指數(shù)表示法,可以肯定的是指數(shù)不能為小數(shù)即必
須為整數(shù),故排除A。由于符號(hào)E前面必須有數(shù)字,故B也是錯(cuò)誤的。D在指數(shù)
符號(hào)后面沒有數(shù)字,是錯(cuò)誤的。答案為C。
14、為了避免嵌套的if...else語句的二義性,C++規(guī)定與else配對(duì)的是
A、縮排位置相同的if
B、在其之前未配對(duì)的if
C、在其之前未配對(duì)的最近的if
D、同一行上的if
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:C++規(guī)定else總是與之前未配對(duì)的最近的if進(jìn)行配對(duì),這樣可以避免
二義件.也便于編譯器分析c
15、類的析構(gòu)函數(shù)的作用是()。
A、一般成員函數(shù)
B、類的初始化
C、對(duì)象的初始化
D、刪除對(duì)象
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:類的析構(gòu)函數(shù)是在類的對(duì)象被釋放的時(shí)候自動(dòng)調(diào)用,它的作用是刪除
己經(jīng)創(chuàng)建完成的對(duì)象。
16、類的析構(gòu)函數(shù)的作用是。
A、一般成員函數(shù)
B、類的初始化
C、對(duì)象的初始化
D、刪除對(duì)象創(chuàng)建的所有對(duì)象
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:暫無解析
17、執(zhí)行卜歹U程序intfun(intxl,intx2){intx;xl>x2?(x=3):(x=4);return
x+xl;}voidmain(){cout<<fun(7,8);}后輸出結(jié)果是。
A、9
B、10
C、11
D、12
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:暫無解析
18、下列關(guān)于運(yùn)算符重載不正確的是
A、運(yùn)算符重我不能改變運(yùn)算符的操作數(shù)個(gè)數(shù)
B、運(yùn)算符重載不能改變運(yùn)算符的優(yōu)先級(jí)
C、運(yùn)算符重載不能改變運(yùn)算符的結(jié)合性
D、運(yùn)算符重載能改變對(duì)預(yù)定義類型數(shù)據(jù)的操作方式
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:運(yùn)算符重載的規(guī)則是重載時(shí)不能改變運(yùn)算符的操作數(shù)個(gè)數(shù),不能改變
運(yùn)算符的優(yōu)先級(jí),不能改變運(yùn)算符的結(jié)合性,不能改變對(duì)預(yù)定義類型數(shù)據(jù)的操作方
式。注意:運(yùn)算符重載的關(guān)鍵字是operator。
19、在公有派生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,下列敘述不正確的是
A、派生類的對(duì)象可以賦給基類的對(duì)象
B、派生類的對(duì)象可以初始化基類的引用
C、派生類的對(duì)象可以直接訪問基類中的成員
D、派生類的對(duì)象的地址可以賦給指向基類的指針
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:友元函數(shù)的定義既可以在類內(nèi)部進(jìn)行,也可以在類外部進(jìn)行。它提高
了程序的運(yùn)行效率,但破壞了類的封裝性和隱藏性,使得類的非成員函數(shù)可以訪問
類的私有成員。
20若已定義:inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;其中0SiS9,
則對(duì)a數(shù)組元素不正確的引用是
A、a[p—a]
B、*(&a|i])
C、p[i]
D、a[10]
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[p-a]形式,或指針法,
如的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)
是從。開始的。
21、C++語言對(duì)C語言做了很多改進(jìn),C++語言相對(duì)于C語言的最根本的變化是
A、增加了一些新的運(yùn)算符
B、允許函數(shù)重載,并允許設(shè)置缺省參數(shù)
C、規(guī)定函數(shù)說明符必須用原型
D、引進(jìn)了類和對(duì)象的概念
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:C++語言最重要的特點(diǎn)是其為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,但是
C++語言也包含了全部的C語言的特征。
22、不能作為函數(shù)重載的判斷依據(jù)的是
A、const
B、返回類型
C、參數(shù)個(gè)數(shù)
D、參數(shù)類型
標(biāo)準(zhǔn)答案:2
知識(shí)點(diǎn)解析:本題考核函數(shù)重載。所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)
函數(shù)的實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上
不同。即重載函數(shù)不許具有相同的形參列表。函數(shù)的返回類型不能作為函數(shù)重載的
判斷依據(jù)。const是函數(shù)的一部分參與函數(shù)的重載
23、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。
A、連接符
B、下劃線
C、大小寫字母
D、數(shù)字字符
標(biāo)準(zhǔn)答案:1
知識(shí)點(diǎn)解析:本題考核C++的標(biāo)識(shí)符定義。C++規(guī)定標(biāo)識(shí)符由大小寫字母、數(shù)字字
符(0?9)和下劃線組成,并且以字母或下劃線開始,后跟。個(gè)或多個(gè)字母、數(shù)字字
符或下劃線。由此可知A)選項(xiàng)中的連接符不能用于組成標(biāo)識(shí)符。
24、有以下程序:#include<iostrearn>usingnamespacestd;classsample
{private:intx;staticinty;public:sample(intA):staticvoidprint(sample
s);};sample::sample(intA){x=a;y+=x;)
A、x=10,y=20
B、x=20,y=30
C、x=30,y=20
D、x=30,y=30
標(biāo)準(zhǔn)答案:2
知識(shí)點(diǎn)解析:本題考核靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的應(yīng)用。類sample中定義兩
個(gè)私有成員x和y,其中y為靜態(tài)數(shù)據(jù)成員。并定義函數(shù)print。為靜態(tài)成員函數(shù)。
在主函數(shù)中,定義對(duì)象sl(10)時(shí),通過構(gòu)造函數(shù)使對(duì)象si的私有成員x=10,靜態(tài)
數(shù)據(jù)成員y=10。定義s2(20)時(shí),通過構(gòu)造函數(shù)使對(duì)象s2的私有成員x=20,靜態(tài)數(shù)
據(jù)成員y=l0+20=30o程序最后調(diào)用靜態(tài)成員函數(shù)print輸出對(duì)象s2的私有成員x
的值20,對(duì)象si、s2共享的靜態(tài)數(shù)據(jù)成員y的值30。
25、若有如下程序:#include<iostream>usingnamespacesstd;ints=O;class
sample{staticintn;public:sample(inti){n=i;}staticvoidadd(){s+=n;));int
sample::s=O;intmain(){samplea(2),b(5);sample::add();coui<<s<<encll;return
0;)程序運(yùn)行后的輸出結(jié)果是
A、2
B、5
C、7
D、3
標(biāo)準(zhǔn)答案:
知識(shí)之解析2:本題考核靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的應(yīng)用。程序中定義一個(gè)類
sample,它包括一個(gè)靜態(tài)數(shù)據(jù)成員n和一個(gè)靜態(tài)成員函數(shù)add,并在類的構(gòu)造函數(shù)
中給類私有靜態(tài)數(shù)據(jù)成員n賦值。在主函數(shù)main中,定義對(duì)象a(2)時(shí),通過構(gòu)造
函數(shù)使靜態(tài)數(shù)據(jù)成員n的值變?yōu)?,在定義對(duì)象b(5)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)
成員n=5(覆蓋了前面的n=2),再執(zhí)行sample::add()使全局變量s=5o
26若有以下程序:#include<iostream>usingnamespacestd;intmain(){inta[4]
[4|={{1,2,3,-4},{0,?12,?13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=0;for(i=0;i<
4;i++){for(j=O;j<4;j++){if(a[i][j]>=0)continue;s+=a[i][j];)}cout<<s<<
end1;return0;)執(zhí)行后的輸出結(jié)果是()。
A、-138
B、141
C、75
D、-1
標(biāo)準(zhǔn)答案:1
知識(shí)點(diǎn)解析:本題屬于綜合題,考查多個(gè)方面的知識(shí)點(diǎn)。程序首先定義了一個(gè)二維
數(shù)組a,并初始化其值。在內(nèi)層for循環(huán)體中,遇到大于等于0的數(shù),就繼續(xù)執(zhí)行
下次循環(huán),否則就執(zhí)行"s+=a[i][j『,即把其值累加并保存在變量s中。所以本題雙
重循環(huán)的功能是:計(jì)算數(shù)組中所有負(fù)數(shù)的累加和,即s=-138。
27、下列敘述中,正確的是()。
A、while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替
B、do-while語句構(gòu)成的循環(huán)只能用break語句退出
C、用while語句構(gòu)成的循環(huán),只有在while后的表達(dá)式為非0時(shí)才執(zhí)行循環(huán)
D^do-while語句構(gòu)成的循環(huán),只有在while后的表達(dá)式為0時(shí)才結(jié)束循環(huán)
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:本題考核對(duì)do-while語句、while語句基本語法的掌握。選項(xiàng)A中,
while語句構(gòu)成的循環(huán)體可由其他語句構(gòu)成的循環(huán)體代替,所以選項(xiàng)A不正確c選
項(xiàng)B中,do-while語句構(gòu)成的循環(huán),當(dāng)while的條件表達(dá)式的值為。時(shí),也可結(jié)束
循環(huán),所以選項(xiàng)B也不正確。選項(xiàng)C是正確的。選項(xiàng)D可參照選項(xiàng)B,當(dāng)使用
break語句時(shí),也可退出循環(huán)。故選項(xiàng)D也不正確。
28、一個(gè)類的友元函數(shù)或友元類可以通過成員操作符訪問該類的()。
A、私有成員
B、保護(hù)成員
C、公有成員
D、所有成員
標(biāo)準(zhǔn)答案:8
知識(shí)點(diǎn)解析:在C++中,如果想讓類中的成員數(shù)據(jù)可以被其他函數(shù)訪問,可以通
過友元函數(shù)聲明來分享類中的資源。除了友元函數(shù)外,還有友元類。類的友元函數(shù)
對(duì)類的屬性和方法的訪問能力等同于類的成員函數(shù)。
29、在inta=10,*p=&a;語句中,p的值是()。
A、10
B、變量p的地址
C、變量a的地址
D、隨機(jī)數(shù)
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:暫無解析
30、下列是重載乘法運(yùn)算符的函數(shù)原型聲明,其中錯(cuò)誤的是()。
A^MyClassoperator*!double,double);
B、MyClassopcrator*(double,MyClass);
C^MyClassoperator*(MyClass,double);
D、MyClassoperator*(MyClass,MyClass);
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:此題考查的是乘法運(yùn)算符的重載函數(shù)原型聲明。因?yàn)椴僮鞯膶?duì)象是類
對(duì)象,所以重載函數(shù)的參數(shù)至少有一個(gè)是類對(duì)象。故選項(xiàng)A)中兩個(gè)參數(shù)都為
double型是錯(cuò)誤的。
31、下面說法正確的是
A、內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方
B、內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方
C、類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義
D、類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:內(nèi)聯(lián)函數(shù)用inline修飾,用于取代C語言中的宏定義。Inline是個(gè)建
議機(jī)制而不是強(qiáng)制機(jī)制,也就是說,程序員可以指定任意函數(shù)為inline函數(shù),但是
編譯器會(huì)根據(jù)系統(tǒng)情況來決定是否將其inline處理c對(duì)于較大的函數(shù),編譯器往往
會(huì)取消其inline特性。Inline:函數(shù)的特點(diǎn)之一就是執(zhí)行速度快,他實(shí)質(zhì)是在編譯
時(shí)將函數(shù)的目標(biāo)代碼插入到每個(gè)調(diào)用該函數(shù)的地方,從而沒有出棧入棧、保護(hù)現(xiàn)場(chǎng)
等開銷,提高了效率。在類體內(nèi)定義的成員函數(shù),自動(dòng)被編譯器當(dāng)做內(nèi)聯(lián)函數(shù)處
理,在類體外定義的成員函數(shù),如果用inline修飾,編譯器也認(rèn)為是一種內(nèi)聯(lián)建
議。
32、當(dāng)要求兩個(gè)變量不能同名時(shí),它是指在()的情況下。
A、同一文件中
B、同一作用域中
C、同一類的不同成員函數(shù)中
D、不同函數(shù)中
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:在同一作用域中,兩個(gè)變量不能夠重名。
33、下列是模板聲明的開始部分,其中正確的是
A^template<T>
B、template<classT1,T2>
C、template<classTl,classT2>
D、template<classTl;classT2>
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)謁析:本題考核模板的聲明。模板聲明的開始部分為:templateV類型形參
表其中,V類型形參表〉可以包含基本數(shù)據(jù)類型,也可以包含類類型。類型形
參需要加前綴class。如果類型形參多于一個(gè),則每個(gè)類型形參都要使用class。形
參表中的參數(shù)是惟一的,而且至少在函數(shù)定義體中出現(xiàn)廠次。形參表中至少有一個(gè)
形參的類型必須用V類型形參表》中的形參來定義。所以只有C選項(xiàng)的聲明是正
確的。
34、有如下程序:#include<iostream>usingnamespacestd;
intmain(){voidfunction(doubleval);
doubleval;function(val);cout<<val;
return0:)voidfunction(doubleval)
{val=3;)編譯運(yùn)行這個(gè)程序?qū)⒊霈F(xiàn)的情況是
A、編譯出錯(cuò),無法運(yùn)行
B、輸出:3
C、輸出:3.0
D、輸出一個(gè)不確定的數(shù)
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:本題考查的是函數(shù)參數(shù)的傳遞。在C++中,函數(shù)在傳遞參數(shù)時(shí),總
是將實(shí)參值的副本傳遞(拷貝)給被調(diào)用函數(shù)的形參,即傳值調(diào)用。因此,在函數(shù)中
對(duì)形參所作的任何操作都不會(huì)改變函數(shù)外的實(shí)參。故木題function。函數(shù)不會(huì)對(duì)主
函數(shù)中的val變量造成任何改變,val也沒有被初始化,所以輸出的是一個(gè)不確定
的值:故應(yīng)該選擇D。
35、在類聲明中,緊跟在“public:"后聲明的成員的訪問權(quán)限是()。
A、私有
B、公有
C、保護(hù)
D、默認(rèn)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:此題考查的是類的訪問權(quán)限。在C++語言中,類的訪問權(quán)限有公有
(public)、保護(hù)(protect)和私有(private)3種。
三、公共基礎(chǔ)填空題(本題共5題,每題7.0分,共5
分。)
36、問題處理方案的正確而完整的描述稱為o
標(biāo)準(zhǔn)答案:算法
知識(shí)點(diǎn)解析:暫無解析
37、診斷和改正程序中錯(cuò)誤的工作通常稱為。
標(biāo)準(zhǔn)答案:程序調(diào)試
知識(shí)點(diǎn)解析:暫無解析
38、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout
<<"A";));classB:privateA{public:B(){cout<<,B,;}};intmain(){Aa;Bb;return
0;}這個(gè)程序的輸出結(jié)果是o
標(biāo)準(zhǔn)答案:AAB
知識(shí)點(diǎn)解析:暫無解析
39、下面是一個(gè)遞歸函數(shù),其功能是使數(shù)組中的元素反序排列,請(qǐng)將函數(shù)補(bǔ)充完
整。voidreverse(inl*a,intsize){if(size<2)relurn;intk=a[0|;a[0]=a[size-l];
a[size-l]=k;reverse(a+l.);)
標(biāo)準(zhǔn)答案:size-2
知識(shí)點(diǎn)解析:函數(shù)體的基本功能是將大小為si,ze的數(shù)組a的首尾元素進(jìn)行交換。
交換一次后,未交換部分的首元素地址為a+1,未交換的元素個(gè)數(shù)為size-2。
40,C++是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它充分支持面向?qū)ο笏枷胫械娜齻€(gè)主要
特征是性;性和性。
標(biāo)準(zhǔn)答案:封裝、繼承、多態(tài)
知識(shí)點(diǎn)解析:暫無解析
四、填空題(本題共10題,每題1.0分,共10分。)
41、已知遞歸函數(shù)f的定義如下:intf(intn){if(n<=l)return1;〃遞歸結(jié)束情況
elsereturnn*f(n-2);〃遞歸)則函數(shù)調(diào)用語句f(5)的返回值是。
標(biāo)準(zhǔn)答案:15
知識(shí)點(diǎn)解析:此題考查的是遞歸算法。本題中f()函數(shù)在n小于等于1時(shí)返回值為
1,其余情況返回值為n*(n-2),由此分析可以得到
f(5)=5*f(3)=5*3*f(l)=5*3*l=15o
42、在下列的程序的橫線處填上適當(dāng)?shù)恼Z句,使該程序的輸出為12。#inckide<
iostream.h>usingnamespacestd;classBase{public:inta,b;Base(inti){a=
i;));classDerived:publicBase{inta;public:Derived(intx):Base(x),
b(x+1){);voidshow()(
標(biāo)準(zhǔn)答案:eout<<Base::a。
知識(shí)點(diǎn)解析:本題考查的是基類和派生類的構(gòu)造至數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順
序:首先調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說明的順序;然后調(diào)用子
對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f明的順序;最后是派生類構(gòu)造函數(shù)中的
內(nèi)容。本題要求結(jié)果是輸出12,分析題目,首先調(diào)用基類的構(gòu)造函數(shù),然后是調(diào)
用子對(duì)象的構(gòu)造函數(shù),橫線處要求輸出基類成員a的值,填入toutV〈Base::a
即可。
43、下面是一個(gè)棧類的模板,其中push函數(shù)將元素i壓入棧頂,pop函數(shù)彈出棧頂
元素。棧初始為空,top值為0,棧頂元素在stack[lop-l]中,在下面橫線處填上適
當(dāng)語句,完成棧類模板的定義。templateclassTstack{enum{size=l000};T
stackfsize];inttop;public:Tstack():top(0){)voidpush(constT&i){if(top
標(biāo)準(zhǔn)答案:Stack[-top]或slack[top-=l]或stack[top=top-l]
知識(shí)點(diǎn)解析:此題考查的是堆棧數(shù)據(jù)結(jié)構(gòu)。分析題目,首先利用函數(shù)
voidpush(consa&i)將i壓入棧,然后Tpop()將元素彈出,但由于在壓入棧的時(shí)
候,top值已經(jīng)增加1;要彈出元素,須使top先減1,才能把棧頂元素彈出。
44、執(zhí)行下列程序后的瑜出結(jié)果是o#includeusingnamespacestd;int
main(){intx=3;int&y=x;y++;cout<
標(biāo)準(zhǔn)答案:4
知識(shí)點(diǎn)解析:C++程序中的引用實(shí)際上是為變量起個(gè)別名,其后的任何操作都相當(dāng)
于對(duì)原變量的操作。所以最后輸出4。
45、在下面程序的橫線處填上適當(dāng)?shù)恼Z句,使程序執(zhí)行后的輸出結(jié)果為ABCD。
#includeusingnamespacestd;classA{public:A(){cout?tA\)};class
B={public:B(){cout?<B,;)};classC:{public:
C(){cout?tC,;}}:classD:publicB,publicC{public:D(){ctout?tD,;)};
voidmain(){Dobj;}
標(biāo)準(zhǔn)答案:vinualA或vinualpublicA或virtualprivaleA或virtualprotrctedA與
virtualA或virtualpublicA或virtualprivateA或virtualprotectedA
知識(shí)點(diǎn)解析:由于每執(zhí)行一次A類的構(gòu)造函數(shù),都將輸出一個(gè)字符A,輸出結(jié)果
中只有一個(gè)A,且第一個(gè)輸出為A,D繼承B,可知必有B繼承A。由題中要求c
肯定繼承某個(gè)類,所以,這里的C只能是繼承于A,保證輸出中只有一個(gè)A,A必
須為虛基類,所以本題中的空都填vmalA。
46、表達(dá)式x.operator++()還可寫成。
標(biāo)準(zhǔn)答案:++x
知識(shí)點(diǎn)解析:C++語言中用成員函數(shù)重載++x為x.operator++()用及元函數(shù)重載++x
為:operator++(x)(>
47>下面程序的輸出結(jié)果是[]o#include<iostream.h>intadd(inta,intb);void
main(){externintx,y;cout<<add(x,y)<<endl;)intx(20),y(5);intadd(inta,intb)
{ints=a+b;returns;}
標(biāo)準(zhǔn)答案:25
知識(shí)點(diǎn)解析:暫無解析
48、下列程序段的輸出結(jié)果是【】。cout<<fixed<<509.123456789<<
endl;
標(biāo)準(zhǔn)答案:123457
知識(shí)點(diǎn)解析:fixed的意義是在小數(shù)點(diǎn)后保留六位,所以fixed輸出為509.123457。
49、下面程序輸出的結(jié)果是[】。#include<iostream>usingnamespacestd;
classA{public:virtualvoidshow(){cout<<"A!M;}:classB:publicA{public:void
show(){cout<<};classC:publicB{public:voidshow(){cout<<nC!n;|!;
voidshow_info(A&i){i.show();)voidmain(){Aia;Bib;Cic;
show_info(ia);show_inIoiib);shovv_info(ic);)
標(biāo)準(zhǔn)咨案;A!A!A!
知識(shí)點(diǎn)解析:由于基類中沒有聲明虛函數(shù),故調(diào)用的全部是基類的函數(shù)。
50、已知數(shù)組a中有n個(gè)元素,下列語句將數(shù)組a中從下標(biāo)xl開始的k個(gè)元素移
動(dòng)到從下標(biāo)x2開始的k個(gè)元素中,其中OV=xlVx2Vn,x2+k<n,請(qǐng)將下列語句
補(bǔ)充完整。For(inti=x1+k-1;i>=x1;i—)a[|=a|i];
標(biāo)準(zhǔn)答案:X2+k-l
知識(shí)點(diǎn)解析:此題考查的是數(shù)組的操作。a[”表示從下標(biāo)xl開始的第i個(gè)元素,若
為第一次循環(huán),貝Ui為xl+k-1,按照題目將數(shù)組a中從下標(biāo)xl開始的k個(gè)元素移動(dòng)
到從下標(biāo)x2開始的k個(gè)元素中的要求,所以將a[i]賦值給下標(biāo)為X2+k-l的元素。
家二級(jí)(C++)筆試模擬試卷第3套
一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共
10分。)
1、下列敘述中正確的是
A、所有形態(tài)的二叉樹都只能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B、循環(huán)隊(duì)列是隊(duì)列的一種存儲(chǔ)方式
C、棧只能采用順序存儲(chǔ)結(jié)構(gòu)
D、循環(huán)隊(duì)列與循環(huán)鏈表都屬于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:一般來說,二叉樹采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),但由于完全二叉樹的特點(diǎn),采
用順序存儲(chǔ)也能方便地訪問其中的每一個(gè)元素。因此,選項(xiàng)A中的說法是不對(duì)
的。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏
輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列結(jié)構(gòu)中,當(dāng)存儲(chǔ)空間的最后一個(gè)位
理已被使用而再要進(jìn)行人隊(duì)運(yùn)算時(shí),只要存儲(chǔ)空間的第一個(gè)位置空閑,便可將元素
加入到第一個(gè)位置,即將存儲(chǔ)空間的第一個(gè)位置作為隊(duì)尾。因此,循環(huán)隊(duì)列是隊(duì)列
的一種順序存儲(chǔ)方式,選項(xiàng)B中的說法是正確的。棧是特殊的線性表,它既能采
用順序存儲(chǔ)結(jié)構(gòu),又能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。因此,選項(xiàng)C中的說法也是不對(duì)的。
前面說過,循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)方式,不屬于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。因此,選
項(xiàng)D中的說法也是不對(duì)的。
2、下列敘述中正確的是
A、軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置
B、軟件調(diào)試的主要RI的是發(fā)現(xiàn)程序中錯(cuò)誤的類型
C、程序經(jīng)調(diào)試后還應(yīng)進(jìn)行測(cè)試
D、軟件的測(cè)試與調(diào)試工作最好都由程序編制者來完成
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析;軟件測(cè)試的口標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的借
誤,給出程序可靠性的鑒定。測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有
錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷。由于測(cè)試的這一特
征,一般應(yīng)當(dāng)避免由開發(fā)者測(cè)試自己的程序。測(cè)試只能說明程序有錯(cuò),而不能證明
程序無錯(cuò),希望通過有限次的測(cè)試就能發(fā)現(xiàn)程序中的所有錯(cuò)誤是不可能的,即完全
測(cè)試是不可能的。因此,選項(xiàng)A與D中的說法都是錯(cuò)誤的。調(diào)試也稱排錯(cuò)。①測(cè)
試的目的是暴露錯(cuò)誤,而調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。②經(jīng)測(cè)試
發(fā)現(xiàn)錯(cuò)誤后,可以立即進(jìn)行調(diào)試并改正錯(cuò)誤;經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測(cè)
試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過程中引進(jìn)新的錯(cuò)誤。因此,選項(xiàng)B
中的說法也是錯(cuò)誤的,而選項(xiàng)C中的說法是正確的。
3、面向?qū)ο蟮拈_發(fā)方法中,類與對(duì)象的關(guān)系是
A、具體與抽象
B、抽象與具體
C、整體與部分
D、部分與整體
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:現(xiàn)實(shí)世界中的很多事件都具有相似的性質(zhì),把幾個(gè)有相似的屬性的操
作的對(duì)象歸為類,也就是說類是具有共同屬性、共同方法的對(duì)象的集合,是對(duì)對(duì)象
的抽象,它描述了該對(duì)象類型的所有對(duì)象的性質(zhì),而一個(gè)對(duì)象則是其對(duì)應(yīng)類的一個(gè)
具體實(shí)例。所以本題正確答案為B。
4、在深度為6的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
A、64
B、63
C、32
D、31
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:二叉樹有一個(gè)性質(zhì):在二叉樹的第k層上,最多有2k-l(kNl)個(gè)給
點(diǎn)。對(duì)于滿二叉樹來說,最后一層上的葉子結(jié)點(diǎn)數(shù)正好達(dá)到最大值。因此,深度為
6的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)即是第6層上結(jié)點(diǎn)數(shù)的最大值,為2匕匕26/二32
5、下列數(shù)據(jù)結(jié)構(gòu)中按“先進(jìn)先出”原則組織數(shù)據(jù)的是
A、線性表
B、循環(huán)隊(duì)列
C、循環(huán)鏈表
D、雙向鏈表
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:隊(duì)列是按“先進(jìn)先出”原則組織數(shù)據(jù)的,而循環(huán)隊(duì)列只是隊(duì)列的一種存
儲(chǔ)形式。因此,循環(huán)隊(duì)列是按“先進(jìn)先出”原則組織數(shù)據(jù)的。
6、將7個(gè)數(shù)據(jù)進(jìn)行插入排序,在最壞情況下需要比較的次數(shù)是
A、42
B、6
C、7
D、21
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:對(duì)長(zhǎng)度為n的線性表進(jìn)行插入排序,在最壞情況下需要n(n-l)/2次比
較,現(xiàn)線性表的長(zhǎng)度為7,在最壞情況下需要比較的次數(shù)為7(7-1)/2=21。
C
AD
7、設(shè)有如圖所示的二叉樹四則對(duì)該二叉樹前序遍歷的結(jié)
果是
A、FCADBEG
B、ACBDFGE
C、ABDCGEF
D、ACBDFEG
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析?:按照二義棚前序遍歷的方法:在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子
樹這三者中,首先訪問艱結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷
左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。對(duì)本題中
的二叉樹進(jìn)行前序遍歷的結(jié)果應(yīng)是FCADBEGo
8、下列關(guān)于軟件設(shè)計(jì)基本原理的敘述中錯(cuò)誤的是
A、信息隱蔽是指在一個(gè)模塊內(nèi)的信息要使所有的模塊都能訪問得到
B、模塊的獨(dú)立程度是評(píng)價(jià)軟件設(shè)計(jì)好壞的重要標(biāo)準(zhǔn)
C、耦合性用于衡量軟件的模塊獨(dú)立性
D、內(nèi)聚性用于衡量軟件的模塊獨(dú)立性
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:所謂信息隱蔽是指,在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對(duì)于不
需要這些信息的其它模塊來說是不能訪問的。因此,選項(xiàng)A中的說法是不對(duì)的。
系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性_L。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):
一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的
關(guān)系是否緊密,稱為內(nèi)聚。因此,選項(xiàng)B、C、D中的說法都是正確的。
9、數(shù)據(jù)庫概念設(shè)計(jì)中,由分散到集中的設(shè)計(jì)方法是
A、視圖設(shè)計(jì)
B、視圖集成設(shè)計(jì)
C、集中式模式設(shè)計(jì)
D、分散式模式設(shè)計(jì)
標(biāo)準(zhǔn)答案:R
知識(shí)點(diǎn)解析:數(shù)據(jù)庫概念設(shè)計(jì)中,由分散到集中的設(shè)計(jì)方法是視圖集成設(shè)計(jì)。
10、在下列關(guān)系運(yùn)算中,可能改變關(guān)系中屬性個(gè)數(shù)的是
A、并
B、差
C、投影
D、交
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:投影運(yùn)算是在給定關(guān)系的某些域上進(jìn)行的運(yùn)算。通過投影運(yùn)算可以從
一個(gè)關(guān)系中選擇出所需耍的屬性成分,并且按要求排列成一個(gè)新的關(guān)系,而新關(guān)系
的各個(gè)屬性值來自原關(guān)系中相應(yīng)的屬性值。因此,經(jīng)過投影運(yùn)算后,會(huì)取消某些
列,即投影運(yùn)算可能改變關(guān)系中屬性的個(gè)數(shù)。
二、選擇題(本題共25題,每題1.0分,共25分。)
11、假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為
A^a+4
B、a+8
C、a+16
D^a+32
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:注意:VC編譯器分配給整數(shù)的內(nèi)存是4字節(jié)。
12、以下的for循環(huán)for(x=0,y=0;(y!=123)&&(x<4);x++);
A、是無限循環(huán)
B、循環(huán)次數(shù)不定
C、最多執(zhí)行4次
D、最多執(zhí)行3次
標(biāo)準(zhǔn)答案:c
知識(shí)點(diǎn)露析:本題考察for循環(huán)的三個(gè)表達(dá)式的用法及其執(zhí)行順序,本題中for循
環(huán)的第三個(gè)表達(dá)式完成變量自增,以控制for循環(huán)的執(zhí)行次數(shù)。
13、已知inta,b;用語句scanf(,,%d%d",&a,&B);輸入a,b的值時(shí),不能作為輸入數(shù)
據(jù)分隔符的是
A、,
B、空格
C、回車
D、Tab鍵
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++語言規(guī)定在使用scanf輸入時(shí)可以用作數(shù)據(jù)分隔符的有空格,回
車和Tab鍵。用戶如果要從鍵盤輸入空格字符,則需要使用其他的輸入方式。
14、語句cout<<(a=2)&&(b=-2);的輸出結(jié)果是
A、無輸出
B、結(jié)果不確定
C、-1
D、1
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:邏輯表達(dá)式的值輸出結(jié)果是數(shù)字的形式。C++規(guī)定,邏輯假用數(shù)字0
表示,而邏輯真則用非零表示。注意:在C++中,如果邏輯表達(dá)式的值是非零,
則可以認(rèn)為是真。VC編譯器在編譯輸出時(shí)將邏輯真輸出為1。
15、以下選項(xiàng)中與k=n++;完全等價(jià)的表達(dá)式是
A、k=n,n=n+l;
B、n=n+l,k=n;
C、k=++n;
D、k+=n+l;
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題考察混合表達(dá)式的展開。
16、執(zhí)行coutVVsetw(5)VV123V<selfill(*)VV16;的輸出為
A、**12316
B、123**16
C、12316
D、12316**
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:selw()為一次有效的設(shè)置,setfill則一直有效,直到再次設(shè)置為止。
正確答案為A。
17、設(shè)有以下類的定義:classEx{intx;public:voidsetx(intt=0);};若在類外定義
成員函數(shù)setx(),以下定義形式中正確的是
A^voidsetx(int
B、voidEx::sctx(intt){...}
C、Ex::voidsetx(int
D、voidEx::setx(){...}
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:選項(xiàng)A可以排除,原因是類的成員函數(shù)的定義必須用域作用符::進(jìn)行
限定:選項(xiàng)C的限定位置不對(duì),函數(shù)的類型應(yīng)在最前面。根據(jù)上下文可以指導(dǎo),
setx為單參成員函數(shù),在定義時(shí)也必須指定參數(shù),因此選項(xiàng)D也可以排除,正確答
案為B。
18、關(guān)于const修飾符的說法中,錯(cuò)誤的是
A、const既可以修飾成員函數(shù),也可以修飾數(shù)據(jù)成員,還可以修飾對(duì)象
B、若const修飾了一個(gè)對(duì)象,則該對(duì)象中的所有數(shù)據(jù)成員都無法被更新
C、常對(duì)象無法調(diào)用一般成員函數(shù)
D、常成員函數(shù)只能被常對(duì)象調(diào)用,不能被一般對(duì)象調(diào)用
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:本題考察const修飾符的含義及其修飾不同對(duì)象的規(guī)則。常成員函數(shù)
既能被常對(duì)象調(diào)用,也能被一般對(duì)象調(diào)用,一旦const修飾了一個(gè)對(duì)象,則對(duì)象的
所有數(shù)據(jù)成員都無法更新。
19、以下不屬于構(gòu)造函數(shù)特征的是
A、構(gòu)造函數(shù)名與類名相同
B、構(gòu)造函數(shù)可以重載
C、構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)
D、構(gòu)造函數(shù)必須指定函數(shù)類型
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:構(gòu)造函數(shù)和析構(gòu)函數(shù)一樣,是類的特殊的成員函數(shù)。其特點(diǎn)之一是不
指定返回類型,故D項(xiàng)錯(cuò)誤。
20、以下敘述正確的是
A、派生類中不可以定義與基類中同名的成員變量
B、派生類中不可以重載成員函數(shù)
C、派生類中不能調(diào)用基類中的同名函數(shù)
D、以上三項(xiàng)均不正確
標(biāo)準(zhǔn)答案:D
知識(shí)點(diǎn)解析:派生類和基類之間的關(guān)系比較重要,派生類不僅可以定義同名的成員
變量,還可以調(diào)用或重載基類的同名函數(shù),這是類的多態(tài)性的基礎(chǔ)。
21、如果一個(gè)類含有一個(gè)以上的純虛函數(shù),則稱該類為
A、虛基類
B、抽象類
C、派生類
D、以上都不對(duì)
標(biāo)準(zhǔn)答案:B
知識(shí)點(diǎn)解析:純虛函數(shù)一般提供派生類進(jìn)行繼承的參考,是多態(tài)性的重要保證,一
個(gè)具有純虛函數(shù)的類稱為抽象類,抽象類可以具有其他類的特點(diǎn),但它不能定義對(duì)
象,不能聲明為內(nèi)聯(lián)函數(shù)。
22、下列各類函數(shù)中,不是類的成員函數(shù)的是
A、構(gòu)造函數(shù)
B、析構(gòu)函數(shù)
C、友元函數(shù)
D、拷貝構(gòu)造函數(shù)
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:構(gòu)造函數(shù)包括默認(rèn)構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)等,析構(gòu)函數(shù)和構(gòu)造函數(shù)
一樣屬于類的特殊的成員函數(shù)。而友元函數(shù)則是為了增加類的訪問靈活行而允許其
他類的成員函數(shù)或全局函數(shù)訪問類的內(nèi)部變量或成員函數(shù)的一種機(jī)制,其缺點(diǎn)是破
壞了類的封裝性。
23、在多繼承中,公用派生和私有派生對(duì)于基類成員在派生類中的可訪問性與單繼
承規(guī)則
A、完全相同
B、完全不同
C、部分相同,部分不同
D、以上都不對(duì)
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:C++語言中為了簡(jiǎn)化繼承關(guān)系,規(guī)定多重繼承中可訪問性規(guī)則同單繼
承規(guī)則。
24、已知類A有公用數(shù)據(jù)成員a,并重載了二運(yùn)算符,且有Aobj2;constAptr*=new
A;則下列語句錯(cuò)誤的是
A、ptr->a=100;
B、ptr=&obj2;
C^ptr++;
D、obj2=*ptr;
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題考察const修飾符的作用。注意:const位置不同,其修飾的部分
也是不同的。本題中consi修飾的是pir所指的對(duì)象本身,所以,pir是可以重新指
向新的對(duì)象,而ptr->a則無法被更新。
25、已知語句intm=10;則下列引用的表示中正確的是
A、int&x=m;
B、int&y=10;
C、int&z;
D、float&t=&m;
標(biāo)準(zhǔn)答案:A
知識(shí)點(diǎn)解析:本題考察引用的定義既使用.引用是C++中新引入的概念.其使用
方法同變量,而其本質(zhì)同指針,具有指針的靈活性。引用必須用變量進(jìn)行賦值,不
能用常量或常數(shù)。
26、以下有關(guān)類與結(jié)構(gòu)體關(guān)系的敘述不正確的是
A、結(jié)構(gòu)體中只包含數(shù)據(jù);類中封裝了數(shù)據(jù)和操作
B、結(jié)構(gòu)體的成員對(duì)外界通常是開放的;類的成員可以被隱蔽
C^用struct不能聲明一個(gè)類型名:而class可以聲明一個(gè)類名
D、結(jié)構(gòu)體成員默認(rèn)為public;類成員默認(rèn)為private
標(biāo)準(zhǔn)答案:C
知識(shí)點(diǎn)解析:可以說類來源于結(jié)構(gòu)體,兩者有相似之處。結(jié)構(gòu)也可以聲明類型名,
但類的功能更強(qiáng)大一些,不僅增加了操作,還能夠隱藏和包含其成員變量或成員函
數(shù)。
27、以下不能作為輸出流對(duì)象的是
文件
A、
內(nèi)存
B、
鍵盤
c、
顯示
D、
:C
答案
標(biāo)準(zhǔn)
流
輸入
件,而
和文
內(nèi)存
示器,
如顯
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新解讀《GB-T 18916.52-2020取水定額 第52部分:精對(duì)苯二甲酸》
- 三基培訓(xùn)課件小結(jié)
- 2026屆河北省石家莊市晉州一中化學(xué)高一第一學(xué)期期中復(fù)習(xí)檢測(cè)模擬試題含解析
- 2026屆甘孜市重點(diǎn)中學(xué)化學(xué)高一上期中聯(lián)考模擬試題含解析
- 廚師培訓(xùn)課件下載
- 2026屆山東省濟(jì)寧市魚臺(tái)縣第一中學(xué)高三上化學(xué)期中達(dá)標(biāo)測(cè)試試題含解析
- 散裝白酒培訓(xùn)課件
- 培訓(xùn)沒有好的課件
- 新能源物流車推廣應(yīng)用前景分析及2025年運(yùn)營(yíng)成本降低策略報(bào)告
- 2025直播審計(jì)考試題及答案
- 2025年1月浙江高考首考英語應(yīng)用文范文講評(píng)課件
- DB33T 2455-2022 森林康養(yǎng)建設(shè)規(guī)范
- 2024-2030年中國軌道交通輔助電源系統(tǒng)市場(chǎng)競(jìng)爭(zhēng)格局及未來發(fā)展策略分析報(bào)告
- 2024-2030年中國白糖行業(yè)市場(chǎng)運(yùn)行狀況及發(fā)展規(guī)模預(yù)測(cè)報(bào)告
- 部編六年級(jí)語文上冊(cè)課后練習(xí)題答案-
- 見證取樣手冊(cè)(消防工程分部)
- 2024電化學(xué)儲(chǔ)能電站運(yùn)行維護(hù)管理規(guī)范
- (高清版)JTGT 3365-05-2022 公路裝配式混凝土橋梁設(shè)計(jì)規(guī)范
- 商業(yè)銀行聲譽(yù)風(fēng)險(xiǎn)應(yīng)對(duì)及實(shí)踐案例精講課件
- 特種設(shè)備日管控、周排查、月調(diào)度管理制度
- 補(bǔ)鐵劑中鐵元素的檢驗(yàn)-應(yīng)用配合物進(jìn)行物質(zhì)檢驗(yàn)高二化學(xué)魯科版(2019)選擇性必修2
評(píng)論
0/150
提交評(píng)論