第 1 頁(yè):選擇題 |
第 5 頁(yè):填空題 |
第 6 頁(yè):答案及解析 |
參考答案及分析
一、選擇題
(1)B
解析: 循環(huán)鏈表就是將單向鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使整個(gè)鏈表構(gòu)成一個(gè)環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表。
(2)B
解析: 棧操作原則上"后進(jìn)先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。
(3)C
解析: 在有向圖中,若任意兩個(gè)頂點(diǎn)都連通,則稱(chēng)該圖是強(qiáng)連通圖,這樣的有向圖的形狀是環(huán)狀,因而至少應(yīng)有n條邊。
(4)C
解析: 結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序具有明顯的優(yōu)點(diǎn)。其一,程序易于理解、使用和維護(hù);其二,提交了編程工作的效率,降低了軟件開(kāi)發(fā)成本。其中,人們更重視前者。
(5)C
解析: 模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。
(6)A
解析: 通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱(chēng)為軟件生命周期。它可以分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。
(7)A
解析: 軟件的白盒測(cè)試方法是把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。
(8)A
解析: 在文件系統(tǒng)中,相互獨(dú)立的記錄其內(nèi)部結(jié)構(gòu)的最簡(jiǎn)單形式是等長(zhǎng)同格式記錄的集合,易造成存儲(chǔ)空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描述數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系,這正是通過(guò)采用特定的數(shù)據(jù)模型來(lái)實(shí)現(xiàn)的。
(9)A
解析: 數(shù)據(jù)庫(kù)設(shè)計(jì)包括數(shù)據(jù)庫(kù)概念設(shè)計(jì)和數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)兩個(gè)方面的設(shè)計(jì)內(nèi)容。
(10)C
解析: 實(shí)體是客觀存在且可以相互區(qū)別的事物。實(shí)體可以是具體的對(duì)象,如一個(gè)學(xué)生,也可以是一個(gè)抽象的事件,如一次出門(mén)旅游等。因此,實(shí)體既可以是有生命的事物,也可以是無(wú)生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。
(11)D
解析: C++語(yǔ)言標(biāo)識(shí)符只能由數(shù)字,字母和下劃線組成,并且只能以字母和下劃線為開(kāi)頭。
(12)A
解析: C++中類(lèi)定義的關(guān)鍵字是class。class不能大寫(xiě)。
(13)C
解析: C++語(yǔ)言中逗號(hào)","也是一種運(yùn)算符,稱(chēng)為逗號(hào)運(yùn)算符。其功能是把兩個(gè)表達(dá)式連接起來(lái)組成一個(gè)表達(dá)式,稱(chēng)為逗號(hào)表達(dá)式。其一般形式為:表達(dá)式1, 表達(dá)式2,其求值過(guò)程是分別求兩個(gè)表達(dá)式的值,并以表達(dá)式2的值作為整個(gè)逗號(hào)表達(dá)式的值。逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為:表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式n,它的值為表達(dá)式n的值。
(14)B
解析: 自減運(yùn)算符位于變量之前時(shí),先使變量的值減1,再進(jìn)行運(yùn)算。
(15)A
解析: while是先判斷條件再執(zhí)行語(yǔ)句;do-while則是先執(zhí)行一次語(yǔ)句再判斷條件,從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語(yǔ)句,這正是二者主要區(qū)別。
(16)A
解析: 條件運(yùn)算符要求有三個(gè)操作對(duì)象,它是C++語(yǔ)言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。本題中用了兩次三目運(yùn)算符。
(17)A
解析: a[i][j]元素之前有i行元素(每行有m個(gè)元素),在a[i][j]的前面還有j個(gè)元素,因此a[i][j]之前共有i*m+j個(gè)元素。
(18)C
解析: 對(duì)于字符串指針,其保留的是整個(gè)串的首地址,即為第一個(gè)字符的起始地址,當(dāng)該指針做算術(shù)運(yùn)算時(shí),就是該指針根據(jù)其類(lèi)型向后移動(dòng)相應(yīng)的存儲(chǔ)空間。
(19)D
解析: C++語(yǔ)言中如果基類(lèi)的成員是公有的,它被繼承后在子類(lèi)中該成員可能是公有的,也可能不是,主要看繼承的權(quán)限。
(20)D
解析: 本題應(yīng)該把swap()函數(shù)改成這樣:swap(int *p,int *q){int t; t=*p;*p=*q;*q=t;}執(zhí)行程序時(shí),先將a的地址傳遞給指針變量p,b的地址傳遞給指針變量q,然后將*p(a的值)的值傳遞給t,將*q(b的值)傳遞給*p,將t的值傳遞給*q,從而將a值和b值互換。
(21)D
解析: C++中的友元可以在一個(gè)類(lèi)中的任何位置聲明,不一定必須在公有段,友元沒(méi)有自己的this指針,調(diào)用友元函數(shù)時(shí)必須在它的實(shí)參中給出要訪問(wèn)的對(duì)象,并且一個(gè)類(lèi)的成員函數(shù)是可以作為另一個(gè)類(lèi)的友元函數(shù)的。
(22)D
解析: C++語(yǔ)言中的抽象類(lèi)就是類(lèi)中至少有一個(gè)純虛函數(shù)的類(lèi),抽象類(lèi)不能被實(shí)例化,繼承抽象類(lèi)的類(lèi)必須實(shí)現(xiàn)抽象類(lèi)中的純虛函數(shù)。
(23)A
解析: C++語(yǔ)言中析構(gòu)函數(shù)是在程序退出不用該類(lèi)的對(duì)象時(shí)進(jìn)行調(diào)用。
(24)B
解析: C++語(yǔ)言中用成員函數(shù)重載--x為:x. operator--(),用成員函數(shù)重載x+y為:x. operator+(y)。
(25)D
解析: C++語(yǔ)言中打開(kāi)文件有兩種方式① ifstream fin("test.dat")② ifstream fin;fin.open("test.dat");。
(26)B
解析: C++中純虛函數(shù)的定義與虛函數(shù)的關(guān)鍵字一樣,在函數(shù)末尾要加上"=0"。
(27)A
解析: 首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[0][0]=1,當(dāng)然,如果用排除法的話,就不用考慮后面的循環(huán)了,因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為1的選項(xiàng)只有A)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則cout函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
(28)D
解析: 派生類(lèi)繼承基類(lèi)的方式有3種:public,private和protected,常用的是public.
(29)A
解析: 本題是一道簡(jiǎn)單的成員函數(shù)應(yīng)用題,考生只要按著主函數(shù)中生成的類(lèi)Rectangle的對(duì)象r1進(jìn)行成員函數(shù)的調(diào)用即可得到答案。
(30)B
解析: 在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式就與整數(shù)的存儲(chǔ)形式相類(lèi)似。C++語(yǔ)言使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個(gè)元素。
(31)D
解析: 解答本題時(shí),先判斷if語(yǔ)句,因?yàn)閍=b+c為零,則執(zhí)行else語(yǔ)句。
(32)A
解析: 選項(xiàng)B)中a在運(yùn)算前未賦初值,在C++語(yǔ)言里變量在運(yùn)算前必須賦初值;選項(xiàng)C)中的模運(yùn)算符"%"兩側(cè)均應(yīng)為整型數(shù)據(jù);選項(xiàng)D)應(yīng)改為y=(float)i。
(33)A
解析: 本題中第1個(gè)for循環(huán)執(zhí)行5次后結(jié)束,第2個(gè)for循環(huán)執(zhí)行5次。第2個(gè)for循環(huán)中第1次執(zhí)行了6次,第2次執(zhí)行了5次,第3次執(zhí)行了4次,第4次執(zhí)行了3次,第5次執(zhí)行了2次,共20次。
(34)D
解析: 解答本題關(guān)鍵是要理解if后面的括號(hào)里的是賦值語(yǔ)句而并非關(guān)系判斷,賦完值后x不等于零,C++語(yǔ)言里非零都作真處理,所以輸出結(jié)果為"x=y+z",故答案為選項(xiàng)D),注意"="與"=="的區(qū)別。
(35)A
解析: 本題里有三個(gè)for循環(huán),但要分清楚,第一個(gè)是單獨(dú)的給三個(gè)元素賦值,賦完值后三個(gè)a[0]=0,a[1]=1,a[2]=2;后面的兩個(gè)for是嵌套循環(huán),對(duì)數(shù)組元素的賦值,但由于k=2,初值已定for里的條件是小于k,所以不管怎么處理都影響不到a[2],故答案為2。
二、填空題
(1)邊值分析法
解析: 黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)分類(lèi)法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法4種。
(2)調(diào)試
解析: 軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定;調(diào)試也稱(chēng)排錯(cuò),它是一個(gè)與測(cè)試有聯(lián)系又有區(qū)別的概念。具體來(lái)說(shuō),測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。
(3)完善性
解析: 軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。改正性維護(hù)是指在軟件交付使用后,為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過(guò)程;適應(yīng)性維護(hù)是指為了使軟件適應(yīng)變化,而去修改軟件的過(guò)程;完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性;預(yù)防性維護(hù)是為了提高軟件的可維護(hù)性、可靠性等,為以后的進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。
(4)消息
解析: 在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(lèi)(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。
(5)升序排列和降序排列
解析: ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語(yǔ)句中的ORDER子句中。
(6)double
解析: C++語(yǔ)言中基本的數(shù)據(jù)類(lèi)型關(guān)鍵字,有int, float, double。
(7)0
解析: 在賦值運(yùn)算中,如果表達(dá)式中變量和常量的數(shù)據(jù)類(lèi)型不一致就會(huì)自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。系統(tǒng)會(huì)計(jì)算1.0/c2,由于1.0是實(shí)型,所以均先轉(zhuǎn)化為雙精度型0.500000,再與c1轉(zhuǎn)化后的雙精度數(shù)相乘得0.500000。但其要賦值給整型變量c3,故要進(jìn)行強(qiáng)制轉(zhuǎn)換,得c3的值為0。
(8)707070
解析: 本題考查對(duì)if語(yǔ)句的掌握,當(dāng)輸入70以后,程序中的3個(gè)if語(yǔ)句都成立,所以分別輸出70。
(9)abc
解析: 本題中,給數(shù)組s中的第4個(gè)元素s[3]賦以′\0′,則s數(shù)組中只有前3個(gè)元素有效,輸出結(jié)果為abc。
(10)3,2,2,3
解析: main函數(shù)和fun函數(shù)中的變量x和y都是局部變量,它們各自獨(dú)立,在本題fun函數(shù)中:接入實(shí)參的值傳遞: x=2,y=3,執(zhí)行:x=x+y后,x=5,y=3,執(zhí)行:x=x-y后,x=5,y=3,執(zhí)行:y=x-y后,x=3,y=2。所以,第一次執(zhí)行cout顯示結(jié)果是3和2返回到main函數(shù)中,輸出main函數(shù)中的x和y的值2,3。
(11)初始化
解析: C++語(yǔ)言中常數(shù)據(jù)成員和靜態(tài)數(shù)據(jù)成員都要進(jìn)行初始化,只是初始化的方法不一樣。
(12)構(gòu)造函數(shù)
解析: 構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用,其功能是使用給定的值將對(duì)象初始化。
(13)x+y++`x+(y++)
解析: 因?yàn)閥.operator++(0)是對(duì)成員y重載運(yùn)算符,所以是成員重載,在參數(shù)表中又有一個(gè)參數(shù),所以是重載后綴++,所以是x+(y++)。
(14)iostream.h
解析: iostream.h是與輸入輸出有關(guān)的類(lèi)文件。
(15)類(lèi)
解析: C++語(yǔ)言中的構(gòu)造函數(shù)就是在類(lèi)中定義的和類(lèi)名一樣的函數(shù)。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |