一、選擇題(每小題1分,共40分)
(1)下列敘述中正確的是( )。
A.算法就是程序
B.設計算法時只需要考慮數據結構的設計
C.設計算法時只需要考慮結果的可靠性
D.以上三種說法都不對
(2)下列敘述中正確的是( )。
A.有一個以上根結點的數據結構不一定是非線性結構
B.只有一個根結點的數據結構不一定是線性結構
C.循環鏈表是非線性結構
D.雙向鏈表是非線性結構
(3)下列關于二叉樹的敘述中,正確的是( )。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數是度為2的結點數的兩倍
D.度為2的結點數是度為1的結點數的兩倍
(4)軟件生命周期中的活動不包括( )。
A.市場調研
B.需求分析
C.軟件測試
D.軟件維護
(5)某系統總體結構圖如下圖所示:

該系統總體結構圖的深度是( )。
A.7
B.6
C.3
D.2
(6)程序調試的任務是( )。
A.設計測試用例
B.驗證程序的正確性
C.發現程序中的錯誤
D.診斷和改正程序中的錯誤
(7)下列關于數據庫設計的敘述中,正確的是( )。
A.在需求分析階段建立數據字典
B.在概念設計階段建立數據字典
C.在邏輯設計階段建立數據字典
D.在物理設計階段建立數據字典
(8)數據庫系統的三級模式不包括( )。
A.概念模式
B.內模式
C.外模式
D.數據模式
(9)有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是( )。
A.自然連接
B.交
C.投影
D.并
(10)下列選項中屬于面向對象設計方法主要特征的是( )。
A.繼承
B.自頂向下
C.模塊化
D.逐步求精
(11)以下敘述中錯誤的是( )。
A.算法正確的程序可以有零個輸入
B.算法正確的程序最終一定會結束
C.算法正確的程序可以有零個輸出
D.算法正確的程序對于相同的輸人一定有相同的結果
(12)以下敘述中正確的是( )。
A.C語句必須在一行內寫完
B.C程序中的每一行只能寫一條語句
C.C語言程序中的注釋必須與語句寫在同一行
D.簡單C語句必須以分號結束.
(13)以下選項中關于C語言常量的敘述錯誤的是( )。
A.經常被使用的變量可以定義成常量
B.常量分為整型常量、實型常量、字符常量和字符串常量
C.常量可分為數值型常量和非數值型常量
D.所謂常量,是指在程序運行過程中,其值不能被改變的量
(14)以下選項中,不合法的c語言用戶標識符是( )。
A.a_b
B.AaBc
C.a - - b
D._1
(15)若變量均已正確定義并賦值,以下合法的C語言賦值語句是( )。
A.x=y==5;
B.x=n%2.5;
C.x+n=i;
D.x=5=4+1:
(16)設有定義:int a;float b;執行scanf("%2d%f",&a,&B.;語句時,若從鍵盤輸入876 543.0<回車>則a和b的值分別是( )。
A.87和6.0
B.876和543.0
C.87和543.0
D.76和543.0
(17)有以下定義語句,編譯時會出現編譯錯誤的是( )。

(18)當變量c的值不為2、4、6時,值也為”真”的表達式是( )。

(19)有以下計算公式

(20)有以下程序:

程序執行后的輸出結果是( )。
A.y=一1
B.y=0
C.y=1
D.while構成無限循環
一、選擇題
(1)D 【解析】算法是指解題方案的準確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設計算法時不僅要考慮對數據對象的運算和操作,還要考慮算法的控制結構。
(2)B 【解析】線性結構應滿足:有且只有一個根結點與每個結點最多有一個前件,也最多有一個后件,所以B正確。所以有一個以上根結點的數據結構一定是非線性結構,所以A錯誤。循環鏈表和雙向鏈表都是線性結構的數據結構。
(3)B 【解析】根據二叉樹的基本性質3:在任意一棵二叉樹中,度為0的葉子結點總是比度為2的結點多一個。所以選擇B。
(4)A 【解析】軟件生命周期可以分為軟件定義、軟件開發與軟件運行維護三個階段。主要活動階段是:可行性研究與計劃階段、需求分析、軟件設計、軟件實現、軟件測試、運行和維護,所以選擇A。
(5)C 【解析】根據總體結構圖可以看出該樹的深度為3,比如:XY系統--功能2--功能2.1,就是最深的度數的一個表現。
(6)D 【解析】程序調試的任務是診斷和改正程序中的錯誤。
(7)A 【解析】數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。
(8)D 【解析】數據庫系統的三級模式是概念模式、外模式和內模式,所以選擇D。
(9)A 【解析】自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉,所以根據T中元組可以判斷R和S做的是自然連接操作。
(10)A 【解析】面向對象基本方法的基本概念有對象、類和實例、消息、繼承與多態性,所以選擇A。
(11)C 【解析】算法的特征:①有窮性。一個算法(對任何合法的輸入)在執行有窮步后能夠結束,并且在有限的時間內完成。②確定性。算法中的每一步都有確切的含義。③可行性。算法中的操作能夠用已經實現的基本運算執行有限次來實現。④輸入:一個算法有零個或者多個輸入,零個輸入就是算法本身確定了初始條件。⑤輸出:一個算法有一個或者多個輸出,以反映出數據加工的結果。所以C選項錯誤。
(12)D 【解析】c語句可以跨行來寫,但是必須以分號結束,所以A選項錯誤。C程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行
也可以不放在一行,所以C選項錯誤。
(13)A 【解析】C語言中,常量是指在程序運行過程中其值不能被改變的量,變量是指運行過程中其值可以改變的量,二者不能混淆,所以A選項錯誤。
(14)C 【解析】C語言規定,變量命名必須符合標識符的命名規則,C選項中包含了非法字符“-”,所以錯誤。標識符由字母、數字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,而不能是數字。
(15)A 【解析】B選項中運算符“%”的前后必須為整數,C選項中不能將變量賦給表達式x+n,D選項中不能將表達式4+1賦給常量5。
(16)A 【解析】在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給int型變量a,把6.0賦給int型float型變量b。
(17)D 【解析】D選項中將字符串常量“aa”賦給字符變量a是錯誤的。
(18)D 【解析】邏輯或運算符中只要有一個運算量為真結果就是真,當c>=2&& c<=6條件不成立時c的值肯定不是2、3、4、5、6,所以c!=3,與c!=5均成立。所以D選項的結果一定為真。
(19)C 【解析】本題重點考查的知識點是:sqrt()函數。sqrt()函數的作用是計算平方根,要求輸出的參數X必須大于等于0。題目公式的要求是無論X大于等于0還是小于0,y的值都為X絕對值的開方。選項C中調用了sqrt(x)函數,而沒有判斷x的正負,則y=sqrt(x)會出錯。
(20)A 【解析】y--表示y使用后再自減1。所以最后一次y的值為0,條件不成立但仍要執行自減操作,y的值為-1,跳出循環。打印v的值-1。