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