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