第 1 頁:選擇題 |
第 5 頁:基本操作題 |
第 6 頁:程序改錯題 |
第 7 頁:程序設計題 |
第 8 頁:參考答案 |
參考答案及專家詳解
一、選擇題
1.D。【解析】算法的空間復雜度,是指執行這個算法所需的存儲空間。算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數據所占用的存儲空間、算法執行過程中所需要的額外空間。
2.D。【解析】數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。
3.D。【解析】所謂的交換排序方法是指借助數據元素之間的互相交進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序通過相鄰元素的交換,逐步將線性表變成有序是一種最簡單的交換排序方法。
4.C。【解析】結構化程序設計的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用G0T0語句。其他三項為結構化程序設計的原則。
5.D。【解析】文件系統所管理的數據文件基本上是分散、相互獨立的。相對于數據庫系統,以此為基礎的數據處理存在3個缺點:數據冗余大、數據的不一致性、程序與數據的依賴性強。
6.C。【解析】面向對象的設計方法的基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現實世界中的概念而不強調算法,但是它鼓勵開發者在軟件開發的過程中從應用領域的概念角度去思考。
7.D。【解析】所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且在遍歷左、右樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點。因此,后序遍歷二叉樹的過程也是一個遞歸過程。
8.B。【解析】軟件的過程設計是指系統結構部件轉換成軟件的過程描述。
9.A。【解析】模塊的獨立性是指每個模塊保證完成系統要求的獨立功能,并且與其他模塊的聯系少且接口簡單。衡量軟件的模塊獨立性有內聚性和耦合性兩個定性度量標準。耦合性是模塊間互相連接緊密程度的度量。一般較優秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,以利于提高模塊的獨立性。
10.C。【解析】對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態對外是不可見的,是隱蔽的。
11.C。【解析】數據庫系統由如下5個部分組成:數據庫(DB)、數據庫管理系統(DBMS)、數據庫管理員(人員)、系統平臺之一——硬件平臺(硬件)、系統平臺之二——軟件平臺(軟件)。其中DB(DataBase)即數據庫,是統一管理的相關數據的集合DBMS即數據庫管理系統,是位于用戶與操作系統之間的一層數據管理軟件,為用戶或應用完程序提供訪問DB的方法。由以上可知,選C為正確答案。
12.A。【解析】標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達變量類型的標識符,它不能再用做變量名和函數名。C選項d0是C語言的一個關鍵字。D選項標識符只能以字母或下劃線開始。
13.D。【解析】本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯l時,表達式返回值才是1;“‖”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是l,x 14.C。【解析】第l個printf函數,格式說明的個數是2,而輸出項的個數是3,所以對于多余的輸出項k不予輸出;第2個printf函數,有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數的格式。①“%x”和“%o”分別表示以十六進制和八進制無符合型輸出整型數據(不帶前導ox或o);②printf函數中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數也要相等,如果格式說明的個數少于輸出項的個數,則對于多余的輸出項不予輸出。
15.C。【解析】函數fun(int x,int y)的功能是返回x+Y的值。在主函數中,變量a,b,c的初始值分別為 1,2,3。因此逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調用于函數的表達式為“fun(5,3);”,其返回值等于8。
16.D。【解析】在x=2,y=x+3/2中,3/2=1,2+1=3,因此表達式的值為3,因為X,y為double型變量,故選擇D選項。
17.A。【解析】當X為1時,執行case l,a自加等于l,因為case l后沒有break,接著執行case 2,此時a的值為2,b自加為1,故選擇A選項。
18.D。【解析】本題考查自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“‖”。自增運算符“++”出現在變量之前,表示先使用變量的值加1,再使用變量的值進行運算;出現在變量之后,表示先使用變量的值進行運算,再使用變量的值加l。當邏輯與運算符“&&”兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“‖”只要一個值為1,值就為l。根據運算符的優先級,題中應先計算內層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為l;1與任何數都為進行或(1 1)運算,結果都為1,因此k一3的表達式i++是先運算后自加,因此運算時i為 1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
19.A。【解析】本題考查switch語句。當i=1時,執行case l,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執行case 2,因為沒有遇到break語句,所以依次往下執行,“a=a+2=7,a=a+3=10”;當i=3時,執行case 3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,執行default,a=a+3=l9,結束循環。
20.C。【解析】只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數只有42,故選擇c選鞏。
編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |