當前位置:才華齋>計算機>計算機二級>

2015年計算機二級C++模擬試題(二)答案及解析

計算機二級 閱讀(1.77W)

  一、選擇題

2015年計算機二級C++模擬試題(二)答案及解析

(1)B

解析: 迴圈連結串列就是將單向連結串列中最後一個結點的指標指向頭結點,使整個連結串列構成一個環形,這樣的結構使得從表中的任一結點出發都能訪問到整個連結串列。

(2)B

解析: 棧操作原則上"後進先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最後進棧,B、C處於中間,A最早進棧。所以出棧時一定是先出D,再出C,最後出A。

(3)C

解析: 在有向圖中,若任意兩個頂點都連通,則稱該圖是強連通圖,這樣的有向圖的形狀是環狀,因而至少應有n條邊。

(4)C

解析: 結構化程式設計方法設計出的程式具有明顯的優點。其一,程式易於理解、使用和維護;其二,提交了程式設計工作的效率,降低了軟體開發成本。其中,人們更重視前者。

(5)C

解析: 模組的獨立程式是評價設計好壞的重要度量標準。衡量軟體的模組獨立性使用耦合性和內聚性兩個定性的度量標準。

(6)A

解析: 通常,將軟體產品從提出、實現、使用維護到停止使用退役的過程稱為軟體生命週期。它可以分為軟體定義、軟體開發及軟體執行維護3個階段。

(7)A

解析: 軟體的白盒測試方法是把測試物件看做一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試。

(8)A

解析: 在檔案系統中,相互獨立的記錄其內部結構的最簡單形式是等長同格式記錄的集合,易造成儲存空間大量浪費,不方便使用。而在資料庫系統中,資料是結構化的,這種結構化要求在描述資料時不僅描述資料本身,還要描述資料間的關係,這正是通過採用特定的資料模型來實現的。

(9)A

解析: 資料庫設計包括資料庫概念設計和資料庫邏輯設計兩個方面的設計內容。

(10)C

解析: 實體是客觀存在且可以相互區別的事物。實體可以是具體的物件,如一個學生,也可以是一個抽象的事件,如一次出門旅遊等。因此,實體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區別。

(11)D

解析: C++語言識別符號只能由數字,字母和下劃線組成,並且只能以字母和下劃線為開頭。

(12)A

解析: C++中類定義的關鍵字是class。class不能大寫。

(13)C

解析: C++語言中逗號","也是一種運算子,稱為逗號運算子。其功能是把兩個表示式連線起來組成一個表示式,稱為逗號表示式。其一般形式為:表示式1, 表示式2,其求值過程是分別求兩個表示式的值,並以表示式2的值作為整個逗號表示式的值。逗號表示式的一般形式可以擴充套件為:表示式1,表示式2,表示式3,…,表示式n,它的值為表示式n的值。

(14)B

解析: 自減運算子位於變數之前時,先使變數的值減1,再進行運算。

(15)A

解析: while是先判斷條件再執行語句;do-while則是先執行一次語句再判斷條件,從而決定是否繼續再執行迴圈體中的語句,這正是二者主要區別。

(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

解析: 對於字串指標,其保留的是整個串的首地址,即為第一個字元的起始地址,當該指標做算術運算時,就是該指標根據其型別向後移動相應的儲存空間。

(19)D

解析: C++語言中如果基類的成員是公有的,它被繼承後在子類中該成員可能是公有的,也可能不是,主要看繼承的許可權。

(20)D

解析: 本題應該把swap()函式改成這樣:swap(int *p,int *q){int t; t=*p;*p=*q;*q=t;}執行程式時,先將a的地址傳遞給指標變數p,b的地址傳遞給指標變數q,然後將*p(a的值)的'值傳遞給t,將*q(b的值)傳遞給*p,將t的值傳遞給*q,從而將a值和b值互換。

(21)D

解析: C++中的友元可以在一個類中的任何位置宣告,不一定必須在公有段,友元沒有自己的this指標,呼叫友元函式時必須在它的實參中給出要訪問的物件,並且一個類的成員函式是可以作為另一個類的友元函式的。

(22)D

解析: C++語言中的抽象類就是類中至少有一個純虛擬函式的類,抽象類不能被例項化,繼承抽象類的類必須實現抽象類中的純虛擬函式。

(23)A

解析: C++語言中解構函式是在程式退出不用該類的物件時進行呼叫。

(24)B

解析: C++語言中用成員函式過載--x為:x. operator--(),用成員函式過載x+y為:x. operator+(y)。

(25)D

解析: C++語言中開啟檔案有兩種方式① ifstream fin("")② ifstream fin;("");。

(26)B

解析: C++中純虛擬函式的定義與虛擬函式的關鍵字一樣,在函式末尾要加上"=0"。

(27)A

解析: 首先,當i=0時,陣列中的位置是a[0][0]=1,當然,如果用排除法的話,就不用考慮後面的迴圈了,因為在4個選項中,第1個數為1的選項只有A)。本題執行第2次迴圈時,i的值為1,則cout函式中的陣列指向為a[1][1]=5,依次迴圈,可求出答案。

(28)D

解析: 派生類繼承基類的方式有3種:public,private和protected,常用的是public.

(29)A

解析: 本題是一道簡單的成員函式應用題,考生只要按著主函式中生成的類Rectangle的物件r1進行成員函式的呼叫即可得到答案。

(30)B

解析: 在記憶體中,字元資料以ASCII碼儲存,它的儲存形式就與整數的儲存形式相類似。C++語言使字元型資料和整型資料之間可以通用。也可以對字元資料進行算術運算,此時相當於對它們的ASCII碼進行算術運算,在本題中,s++相當於s=s+1,即讓s指向陣列中的下一個元素。

(31)D

解析: 解答本題時,先判斷if語句,因為a=b+c為零,則執行else語句。

(32)A

解析: 選項B)中a在運算前未賦初值,在C++語言裡變數在運算前必須賦初值;選項C)中的模運算子"%"兩側均應為整型資料;選項D)應改為y=(float)i。

(33)A

解析: 本題中第1個for迴圈執行5次後結束,第2個for迴圈執行5次。第2個for迴圈中第1次執行了6次,第2次執行了5次,第3次執行了4次,第4次執行了3次,第5次執行了2次,共20次。

(34)D

解析: 解答本題關鍵是要理解if後面的括號裡的是賦值語句而並非關係判斷,賦完值後x不等於零,C++語言裡非零都作真處理,所以輸出結果為"x=y+z",故答案為選項D),注意"="與"=="的區別。

(35)A

解析: 本題裡有三個for迴圈,但要分清楚,第一個是單獨的給三個元素賦值,賦完值後三個a[0]=0,a[1]=1,a[2]=2;後面的兩個for是巢狀迴圈,對陣列元素的賦值,但由於k=2,初值已定for裡的條件是小於k,所以不管怎麼處理都影響不到a[2],故答案為2。

  二、填空題

(1)邊值分析法

解析: 黑箱測試方法完全不考慮程式的內部結構和內部特徵,而只是根據程式功能匯出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法4種。

(2)除錯

解析: 軟體測試的目標是在精心控制的環境下執行程式,以發現程式中的錯誤,給出程式可靠性的鑑定;除錯也稱排錯,它是一個與測試有聯絡又有區別的概念。具體來說,測試的目的是暴露錯誤,評價程式的可靠性,而除錯的目的是發現錯誤的位置,並改正錯誤。

(3)完善性

解析: 軟體維護活動包括以下幾類:改正性維護、適應性維護、完善性維護和預防性維護。改正性維護是指在軟體交付使用後,為了識別和糾正軟體錯誤、改正軟體效能上的缺陷、排除實施中的誤使用,應當進行的診斷和改正錯誤的過程;適應性維護是指為了使軟體適應變化,而去修改軟體的過程;完善性維護是指為了滿足使用者對軟體提出的新功能與效能要求,需要修改或再開發軟體,以擴充軟體功能、增強軟體效能、改進加工效率、提高軟體的可維護性;預防性維護是為了提高軟體的可維護性、可靠性等,為以後的進一步改進軟體打下良好基礎。

(4)訊息

解析: 在面向物件技術中,主要用到物件(object)、類(class)、方法(method)、訊息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中訊息是用來請求物件執行某一處理或回答某些資訊的要求。

(5)升序排列和降序排列

解析: ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。

(6)double

解析: C++語言中基本的資料型別關鍵字,有int, float, double。

(7)0

解析: 在賦值運算中,如果表示式中變數和常量的資料型別不一致就會自動進行型別轉換。系統會計算1.0/c2,由於1.0是實型,所以均先轉化為雙精度型0.500000,再與c1轉化後的雙精度數相乘得0.500000。但其要賦值給整型變數c3,故要進行強制轉換,得c3的值為0。

(8)707070

解析: 本題考查對if語句的掌握,當輸入70以後,程式中的3個if語句都成立,所以分別輸出70。

(9)abc

解析: 本題中,給陣列s中的第4個元素s[3]賦以′