第 1 頁:沖刺試題 |
第 3 頁:參考答案 |
一、選擇題
1.C!窘馕觥坑(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報(bào)。
2.C。【解析】軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。軟件測試有三個(gè)重要特征:測試的挑剔性、完全測試的不可能性及測試的經(jīng)濟(jì)性。沒有測試的可靠性這一說法。
3.C!窘馕觥繑(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng)。
4.B!窘馕觥扛鶕(jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進(jìn)行比較,由于90大于50,所以在線性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時(shí)兩者相等,即查找成功。
5.C!窘馕觥寇浖䴗y試是為了盡可能多地發(fā)現(xiàn)程序中的錯誤,尤其是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
6.A!窘馕觥孔鳛橐粋(gè)算法,一般應(yīng)該具有下列四個(gè)特征:①可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;②確定性,算法中的每一個(gè)步驟都必須是有明確定義的;③有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)完成;④擁有足夠的情報(bào)。
7.D!窘馕觥靠蓮(fù)用屬于面向?qū)ο蟪绦蛟O(shè)計(jì)方法,其他選項(xiàng)屬于結(jié)構(gòu)化程序設(shè)計(jì)方法。
8.C。【解析】軟件工程的基本目標(biāo)是:付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移值;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā),及時(shí)交付使用。
9.C!窘馕觥恳愿拍钅J綖榭蛏钏M成的數(shù)據(jù)稱為概念數(shù)據(jù)庫;以外模式為框架所組成的數(shù)據(jù)庫稱為用戶數(shù)據(jù)庫;以內(nèi)模式為框架所組成的數(shù)據(jù)庫稱為物理數(shù)據(jù)庫。這三種數(shù)據(jù)庫只有物理數(shù)據(jù)庫是真實(shí)存在于計(jì)算機(jī)外存中。
10.C!窘馕觥繑(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個(gè)部分組成,可見DB和DBMS都是DBS的組成部分。
11.A!窘馕觥勘绢}考查的是標(biāo)識符。標(biāo)識符由數(shù)字、字母以及下畫線構(gòu)成。其第一個(gè)字符必須是字母或下畫線,中間不能有空格;標(biāo)識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識符中的大小寫字母是不同的;定義標(biāo)識符時(shí)不能采用系統(tǒng)的保留字。
12.A。【解析】類模板就是把畿中的數(shù)據(jù)分離出來,作為一個(gè)類的描述。C++編譯器根據(jù)類模板和特定的數(shù)據(jù)類型來產(chǎn)生一個(gè)類,類模板就是一個(gè)抽象的類。
13.D。【解析】本題考查類繼承。派生類繼承了基類的全部數(shù)據(jù)成員和私有成員,只是基類的私有成員在派生類中是隱藏的,只能在基類內(nèi)部訪問。
14.D!窘馕觥孔址谶M(jìn)行數(shù)學(xué)運(yùn)算時(shí)取其ASCⅡ碼值,其中’b’的ASCⅡ碼值為98,‘d’的ASCⅡ碼值為100,字符’2’的ASCⅡ碼值為50?芍狣選項(xiàng)中表達(dá)式c2-0的值為50。
15.A!窘馕觥緾++的引用是一種賦值、發(fā)送和返回復(fù)雜數(shù)據(jù)結(jié)構(gòu)的方法,建立引用的格式為:類型-引用名=已定義的變量名。所以只有A選項(xiàng)是符合要求的。
16.D!窘馕觥繑(shù)組元素的下標(biāo)是從0到<數(shù)組長度>-1,所以數(shù)組data的首元素是data[0],尾元素是data[9]。其他選項(xiàng)的描述都是正確的。
17.D。【解析】std是對象數(shù)組。里面有30個(gè)對象,每個(gè)對象都有自己的私有數(shù)據(jù)成員,由于成員函數(shù)是公有的,在內(nèi)存中存在一份即可,各個(gè)對象都可以使用。
18.D!窘馕觥勘绢}考查函數(shù)的調(diào)用方式。函數(shù)的形參和實(shí)參具有以下特點(diǎn):①形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí),即刻釋放分配的內(nèi)存單元,因此,形參只有在函數(shù)內(nèi)部有效,函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量;②實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等,無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值,以便把這些值傳送給形參,因此應(yīng)通過預(yù)先用賦值、輸入等辦法使實(shí)參獲得確定值;③實(shí)參和形參在數(shù)量上、類型上、順序上應(yīng)嚴(yán)格一致,否則會發(fā)生“類型不匹配”的錯誤;④函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會變化。
19.B。【解析】非成員函數(shù)的重載運(yùn)算符函數(shù)的格式為operator+(),是運(yùn)算符+重載函數(shù)。
20.D。【解析】本題考查C++語言中操作符重載的概念。運(yùn)算符重載的關(guān)鍵字是operator。運(yùn)算符重載的規(guī)則是重載時(shí)不能改變運(yùn)算符的操作數(shù)個(gè)數(shù),不能改變運(yùn)算符的優(yōu)先級,不能改變運(yùn)算符的結(jié)合性,不能改變對預(yù)定義類型數(shù)據(jù)的操作方式。
21.B。【解析】本題考查關(guān)于C++語言繼承問題中派生類對基類的訪問。C++語言中通常有三種繼承修飾符,即public、protected、private,限制依次嚴(yán)格,另外對類中的數(shù)據(jù)和函數(shù)也由這三種修飾符進(jìn)行限制,有三種成員是不能繼承的:公有繼承基類的私有成員,私有繼承基類的私有成員,保護(hù)繼承基類的私有成員。
22.C!窘馕觥砍绦蛑蠦為A的派生類,由主函數(shù)入手,主函數(shù)中定義了類A的指針P指向類B。根據(jù)基類中的“virtualvoidfuncl()”知道A中的funcl為虛函數(shù),執(zhí)行“P->fund();”語句,通過指針變量調(diào)用此虛函數(shù),此時(shí)調(diào)用的就是指針變量指向的同名函數(shù),即派生類的fund函數(shù),輸出B1。而fun2不是虛函數(shù),所以執(zhí)行“p->func2();”輸出為A2。
23.A。【解析】C++流的輸入運(yùn)算符“>>”和輸出運(yùn)算符“<<”只能作為非成員函數(shù)重載。重載輸入流運(yùn)算符“>>”須使用的原型是istream&operator>>(istream&,<類名>&);。
24.A!窘馕觥勘绢}首先執(zhí)行語句do{k+=5;cout<<’$’;}while(k<19);,循環(huán)執(zhí)行4次;全了4個(gè)“$”,k的值變?yōu)?0;然后執(zhí)行語句while(k-->0)cout<<’*’;,所以會輸出20個(gè)“*”。
25.D。【解析】在C++中規(guī)定如果一個(gè)類被聲明為類模板,那么其中的所有成員函數(shù)就都成為了模板函數(shù)。
26.D!窘馕觥勘绢}中,派生類C具有多重繼承關(guān)系,所以在派生類C的構(gòu)造函數(shù)中應(yīng)該包含基類A和類B的成員初始化列表。
27.D!窘馕觥勘绢}考查循環(huán)的嵌套、for和switch語句的應(yīng)用、C++中各種條件判斷,循環(huán)語句的用法。只要注意在C++語言中,系統(tǒng)在字符指針的最后位置會增加一個(gè)字符串結(jié)束符’\0’,執(zhí)行8次for循環(huán),再根據(jù)switch語句中的條件易知答案。
28.D!窘馕觥勘绢}考查文件對象的創(chuàng)建方法?梢灾苯佣x文件對象,也可以用new來動態(tài)生成。很明顯,選項(xiàng)D中使用new的方式是錯誤的。
29.D!窘馕觥勘绢}考查關(guān)于C++語言類的定義方法。在C++語言中類定義中的構(gòu)造函數(shù)是私有的,但是卻調(diào)用了其中的公有變量,在實(shí)例化時(shí)會斟現(xiàn)錯誤。
30.A!窘馕觥縏estClass為基類,TestClass1是TestClass的派生類;愔械膄unl和fun2被定義為虛函數(shù),C++規(guī)定,當(dāng)一個(gè)成員函數(shù)被聲明為虛函數(shù)后,其派生類中的同名函數(shù)都自動成為虛函數(shù),所以派生類中的funl和fun2也是虛函數(shù)。本題從main主函數(shù)入手,首先定義了TestClass類型的
對象obil和指針P,然后又定義了TestClassl的對象obj2。指針指向?qū)ο髈bj2,然后調(diào)用其成員函數(shù)fun1(),即輸出“funlTestClassl”。
31.A!窘馕觥勘绢}中FestClass為基類,TestClass1為派生類。在主函數(shù)中定義TestClassl對象obj(’x’),“TestClassl(charn):TestClass(n+1),c(n){}”,所以輸出x,然后調(diào)用基類構(gòu)造函數(shù),’x’+1=’y’,所以輸出y,即答案為xy。
32.A!窘馕觥勘绢}考查類的繼承和派生。派生類執(zhí)行構(gòu)造函數(shù)的一般次序?yàn)椋菏紫日{(diào)用基類構(gòu)造函數(shù);然后調(diào)用成員對象的構(gòu)造函數(shù);最后是派生類構(gòu)造函數(shù)中的內(nèi)容。題目中定義派生類對象d時(shí),先調(diào)用基類Base的構(gòu)造函數(shù),輸出BBBf,然后調(diào)用派生類Derived的構(gòu)造函數(shù),輸出DD。
33.A!窘馕觥勘绢}考查C++語言的數(shù)據(jù)類型。第一個(gè)枚舉常量的值為0;允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí)。在前一枚舉常量值的基礎(chǔ)上以此增1。
34.D。【解析】本題考查派生類的定義和使用。當(dāng)對象被刪除時(shí),派生類的析構(gòu)函數(shù)就被執(zhí)行。由于析構(gòu)函數(shù)不能被繼承,因此在執(zhí)行派生類的析構(gòu)函數(shù)時(shí),基類的析構(gòu)函數(shù)也將被調(diào)用。執(zhí)行順序是先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)的順序正好相反。所以當(dāng)main函數(shù)結(jié)束時(shí),派生類DERIVED的對象X將被刪除,那么派生類DERIVED的析構(gòu)函數(shù)先被調(diào)用,輸出DERIVED,然后調(diào)用基類的析構(gòu)函數(shù)輸出BASE。
35.A!窘馕觥勘绢}考查靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所有對象共事的成員,而不是某個(gè)對象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+=2”和“n-=3”后n的值為0。
36.C!窘馕觥考兲摵瘮(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。不定義對象而只作為一種基本類型作為繼承的類,稱為抽象類。凡是包含純虛函數(shù)的類都是抽象類。抽象類的作用是作為一個(gè)類族的共同基類。
37.A!窘馕觥款}中fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用對:fun(3)n=3,S=3-fun(2),第二次調(diào)用時(shí):fun(2)n=2,s=2,返回第一次調(diào)用后,s=3-2=1。
38.B!窘馕觥吭贑++程序中,typename是可以替換為class的,但class不能都替換為typename。
39.C。【解析】Eonc1定義c1對象,調(diào)用Con的無參數(shù)構(gòu)造函數(shù),輸出1,ID值變?yōu)锳,執(zhí)行show(c1)時(shí)會調(diào)用復(fù)制構(gòu)造函數(shù),將c1對象的值復(fù)制給show函數(shù)的形參,此時(shí)輸出3,然后在show()中輸出c1的ID值A(chǔ),Conc2(’B’)定義c2對象,調(diào)用Con(charID)構(gòu)造函數(shù),輸出2,c2的ID值為B,show(c2)執(zhí)行時(shí)先調(diào)用復(fù)制構(gòu)造函數(shù)輸出3,然后輸出B。因此程序輸出結(jié)果為“13A238”。
40.C!窘馕觥炕愔姓f明的虛函數(shù),在派生類中自然就是虛函數(shù),所以類B中funcl()是虛函數(shù);而類A中的func2()沒有被關(guān)鍵字virtual修飾;所以不是虛函數(shù)。
二、程序改錯題
(1)“n=-n;”。
(2)“p=!p;”。
(3)“q=-q;”。
【解析】由題目要求的運(yùn)行結(jié)果可知,第1個(gè)標(biāo)識和第3處的語句是對變量n和q取反,求一個(gè)正數(shù)的相反數(shù)可以通過算數(shù)運(yùn)算符“-”得到,第1處和第3處的語句應(yīng)分別改為“n=-n;”和“q=-q;”,即只需要通過負(fù)號運(yùn)算就可以實(shí)現(xiàn)。從題目要求輸出的結(jié)果來分析,第2處的語句是對邏輯變量P取反,對一個(gè)邏輯變量求反,應(yīng)該用取反運(yùn)算符“!”,第2處的語句應(yīng)改為“p=!P;”。
三、簡單應(yīng)用題
return(n==1)?1:n+sum(n-1);
【解析】本題主要考查三目運(yùn)算符?:的使用和遞歸函數(shù)的編制。程序功能是計(jì)算前n個(gè)自然數(shù)的和,n為參數(shù)。程序的運(yùn)算過程如下,不是一般性,假設(shè)n為3,首先執(zhí)行sum(3),因?yàn)?不等于1,所以return語句返回的值為3+sum(3-1),然后執(zhí)行sum(3-1)即sum(2),2不等于1,所以return語句返回的值為2+sum(2-1),然后執(zhí)行sum(2-1)即sum(1),因?yàn)?等于1,所以return語句返回的值為1,即問號后的值,所以最終結(jié)果為3+2+1=6,而題中n為100,所以結(jié)果為5050。
四、綜合應(yīng)用題
(1)應(yīng)添加“doubleleftPoint,topPoint,rightPoint,hot-tomPoint;”。
(2)應(yīng)添加“CReet(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=O);”。
(3)應(yīng)添加“~CReet(){}”。
(4)應(yīng)添加“CReetrect2(rect1);”。
【解析】本題在第1處完成私有數(shù)據(jù)成員leftPoint、top-Point、rightPoint、bottomPoint的定義,均為double型的變量,故第1處應(yīng)添加“doubleleftPoint,topPoint,rightPoint,bottomPoint;”。構(gòu)造函數(shù)完成成員變量的初始化,類CRect的默認(rèn)構(gòu)造函數(shù)初始化double型私有數(shù)據(jù)成員leftPoint、topPoint、rightPoint、bottomPoint為0。故第2處應(yīng)添加“CRect(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=0);”。析構(gòu)函數(shù)名和類名一致,并在前面加“~”以和構(gòu)造函數(shù)區(qū)別,該析構(gòu)幽數(shù)體為空,故第3處應(yīng)添加“~CRect(){}”,雖然該函數(shù)體為空,但“{}”必須保留。主函數(shù)中類CRect的對象rect2是通過復(fù)制構(gòu)造函數(shù)將rect1的值賦值給它實(shí)現(xiàn)初始化的.而reet1的初始化直接調(diào)用自定義構(gòu)造函數(shù),第4處應(yīng)添加“CReetrect2(rect1);”。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年12月全國計(jì)算機(jī)等級考試必做試題匯總
2018年全國計(jì)算機(jī)等級考試必做試題匯總(各科目)
各地2018年12月全國計(jì)算機(jī)等考準(zhǔn)考證打印時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |