第 1 頁:試題 |
第 2 頁:參考答案 |
1.A。【解析】從軟件工程角度看,軟件設計分為概要設計和詳細設計。概要設計就是結構設計,其主要目標就是給出軟件的模塊結構;詳細設計的首要任務就是設計模塊的程序流程、算法和數據結構,次要任務就是設計數據庫。
2.D。【解析】數據的存儲結構是指數據結構(數據的邏輯結構)在計算機中的表示,又稱物理結構。數據的存儲結構有順序存儲結構和鏈式存儲結構兩種。不同存儲結構的數據處理效率不同。根據以上分析可知,D選項為正確答案。
3.B。【解析】滿二叉樹指除最后一層外,每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上只缺少右邊的若干葉子結點的二叉樹。因此選項A敘述正確,而選項B敘述錯誤。由定義可知,滿二叉樹肯定是完全二叉樹,而完全二叉樹一般不是滿二叉樹。
4.B。【解析】根據棧先進后出的特點可知el肯定是最后出棧的,因此正確答案為選項B。
5.A。【解析】軟件調試方法有:強行排錯法、回溯法、原因排除法。
6.A。【解析】在E—R圖中,矩形表示實體;菱形表示聯系名;橢圓形表示實體的屬性。
7.C。【解析】關系模型較格式化模型(網狀模型和層次模型)有以下幾個優點:數據結構比較簡單、具有很高的數據獨立性、可以直接處理多對多的聯系,以及有堅實的理論基礎。
8.C。【解析】對線性表進行順序查找,最壞情況下,如果從表頭進行查找,要查找到表尾才能得出結果,因此需要比較n次。
9.A。【解析】數據流圖簡稱DFD,它以圖形的方式描繪數據在系統中流動和處理的過程,由于它只反映系統必須完成的邏輯功能,所以它是一種功能模型。數據流圖有4種基本圖形符號:①箭頭,表示數據流;②圓或橢圓,表示加工;③雙杠,表示存儲文件(數據源);④方框,表示數據的源點或終點。
10.A。【解析】從數據庫的概念中可以看到,所謂數據庫是指長期存儲在計算機內的、有組織的、可共享的數據集合。因此進行數據庫設計的根本目標還是為了解決數據共享問題。
11.C。【解析】本題考查實型常數的指數表示法,可以肯定的是指數不能為小數即必須為整數。由于符號E前面必須有數字。D在指數符號后面沒有數字,是錯誤的。
12.A。【解析】C++語言標識符只能由數字、字母和下畫線組成,并且只能以字母和下畫線為開頭。
13.C。【解析】內聯函數不是定義在另一個函數體內部的函數,而是將inline放在函數定義中函數類型之前;函數體的最后一條語句可以是任意的語句;編譯器不會根據函數返回值的類型來區分重載形式,選項D錯誤。標準C++要求在調用一個函數之前,必須先聲明其原型。
14.B。【解析】d0…while語句的一般格式為“d0循環體語句while(表達式);”,先執行循環體語句一次,再判斷表達式的值,若為真則繼續執行循環,否則終止循環。本題中,先執行x=x-2,即為1。判斷表達式的值,!(--x)為真,x=0,繼續循環。再次執行循環體語句后,x=-2,此時表達式的值為0,結束循環。
15.C。【解析】本題考核選擇語句與循環語句的嵌套。由程序可知,當x=16時,滿足if條件表達式,進入if分支,執行“x++;break;”,所以最后程序輸出x的值為17。
16.B。【解析】p表示的是變量a的地址,定義后*P表示的是變量a的值。
17.B。【解析】拷貝構造函數是一個特殊的構造函數,它用一個已知的對象初始化一個正在創建的同類對象,它不能指定函數返回類型;只有一個參數,是同類的某個對象名的引用。每一個類中都必須有一個拷貝構造函數,如果類中未聲明,編譯器會自動生成一個公有的拷貝構造函數。
18.D。【解析】本題考查數學表達式的掌握,首先應轉換為弧度,然后作為cos函數的參數求絕對值,最后是開方函數。考生需要掌握的是常用的數學函數。
19.D。【解析】如果函數實參是數組名,形參也應為數組名,函數swap中形參進行了交換。實際上也是實參進行了交換。而且數組名代表數組首元素的地址,并不是代表數組的全部元素。所以,swap(b,2)是數組b第一個元素與第二個元素進行交換,即b[0]與b[1],根據題干,知道答案為2,1。
20.B。【解析】本題考查函數中變量的作用范圍,在主函數中給變量x,y,z賦值,然后將其作為實參傳遞給了函數fun,雖然在函數fun中改變了這3個變量的值,但只是同名的局部變量,不影響函數中變量的值,所以在調用函數fun結束后,主函數3個變量的值未改變。
21.A。【解析】“constint*P;”是只能改變指針地址,“int*constP;”是只能改變*P的內容,“constint*constP;”是指針的地址和*P的內容都不能改變,“int*P;”是兩者都能改變。
22.B。【解析】本題考查運算符的重載。假定已經作為某個類的成員函數重載了二元運算符+,且c1、c2都是該類的對象,則“c1.operator+(c2)”,與“c1+c2”含義相同。如果+作為該類的非成員函數重載,則“operator+(c1,c2)”與“c1+c2”含義相同。同理,運算符“/”作為友元函數重載,則“(--x)/y”與表達式“operator/((--x),y)”相同。前綴運算符“--”作為友元函數重載,則“--X與operator--(x)”相同,所以組合起來是“0perator/(operator--(x),y);”,即B選項。
23.B。【解析】由程序中的主函數main入手,分別調用fun1,fun2,fun3函數,得出輸出結果。其中,3個函數都是實現的兩個形參的交換功能,只是值傳遞的方式不同,有的是引用,有的是傳值。第一個函數中參數采用的是值傳遞的方式,形參的變化不影響實參。所以d調用funl后,實參a和b并沒有交換,仍然是AB。第二個調用中,實參a采用的是地址,即傳遞的是地址,所以形參a的改變會影響實參a的值,即BB。同理,調用fun3后為BA。
24.C。【解析】類A,類B,中都有showa函數,類C繼承后再次重寫showa函數就解決了繼承的二義性,這時C.showa函數顯示的就是類C中的showa的值。
25.B。【解析】本題考查邏輯表達式的結合特性,即左結合性。對于表達式a>b>e,首先判斷a>b為真,結果為1,然后判斷1>e,為假,故轉去判斷c-1>=d是否成立,成立,結果為1,再判斷l=1,結果為真,因此,執行d+1,答案為B。
26.B。【解析】由主函數入手,定義了類TestClass的對象s1(2,3),當類對象進入其作用域時調用構造函數,構造函數應該是調用具有參數的“TestClass(inta,intb){x=a;Y=b;}”,然后調用成員函數disp(),則輸出為“cout<<"x="<
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: