第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序修改題 |
第 5 頁:程序設計題 |
第 6 頁:參考答案 |
(1)B 【解析】線性結構應滿足:有且只有一個根結點與每個結點最多有一個前件,也最多有一個后件,所以B正確。所以有一個以上根結點的數據結構一定是非線性結構,所以A錯誤。循環鏈表和雙向鏈表都是線性結構的數據結構。
(2)D 【解析】程序調試的任務是診斷和改正程序中的錯誤。
(3)A 【解析】面向對象基本方法的基本概念有對象、類和實例、消息、繼承與多態性,所以選擇A。
(4)C 【解析】C語言規定,變量命名必須符合標識符的命名規則,C選項中包含了非法字符“-”,所以錯誤。標識符由字母、數字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,而不能是數字。
(5)A 【解析】在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給int型變量a,把6.0賦給int型float型變量b。
(6)B 【解析】switch語句的執行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個case后面的常量表達式的值相等,就執行此case后面的語句,執行后遇break語句就退出switch語句;若圓括號中表達式的值與所有case后面的常量表達式都不等,則執行default后面的語句。然后退出。所以輸入1時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。
(7)C 【解析】要按照每行8個輸出數據的話,橫線處語句的功能應該為:當i是8的倍數時(即i%8==0),輸出一個換行符。因此C選項正確。
(8)C 【解析】字符數組a中包含兩個‘\0’,遇到第一個‘\O’時就表示字符串a結束。字符串處理函數strcat(字符數組a,字符數組b),功能是連接兩個字符數組中的字符串,把字符串b連接到a的后面,結果放在字符數組a中。連接時將字符串a后的‘\0’取消,只在新串最后保留一個‘\0’。本題相當于將“ABCD”和“IJK”連接。因此C選項正確。
(9)A 【解析】該程序考察的是函數的遞歸調用,在調用—個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用,執行結果為1+2+3+…+8+9+10=55。因此A選項正確。
(10)C 【解析】本題考查結構體數組的相關操作,dt為結構體數組,那么指針p指向了結構體數組的一個元素,所以p->x為1,p->y為2,結果為2,3。選項C正確。
(11)D 【解析】算法是指解題方案的準確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設計算法時不僅要考慮對數據對象的運算和操作,還要考慮算法的控制結構。
(12)B 【解析】根據二叉樹的基本性質3:在任意一棵二叉樹中,度為0的葉子結點總是比度為2的結點多一個。所以選擇B。
(13)A 【解析】數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。
(14)C 【解析】算法的特征:①有窮性。一個算法(對任何合法的輸入)在執行有窮步后能夠結束,并且在有限的時間內完成。②確定性。算法中的每一步都有確切的含義。③可行性。算法中的操作能夠用已經實現的基本運算執行有限次來實現。④輸入:一個算法有零個或者多個輸入,零個輸入就是算法本身確定了初始條件。⑤輸出:一個算法有一個或者多個輸出,以反映出數據加工的結果。所以C選項錯誤。
(15)D 【解析】D選項中將字符串常量“aa”賦給字符變量a是錯誤的。
(16)A 【解析】y--表示y使用后再自減1。所以最后一次y的值為0,條件不成立但仍要執行自減操作,y的值為-1,跳出循環。打印v的值-1。
(17)B 【解析】本題重點考察函數返回值的相關知識,函數的值只能通過return語句返回主調函數,在函數中允許有多個return語句,但每次調用只能有一個return語句被執行,因此只能返回一個函數值。不返回函數值的函數,可以明確定義為“空類型”,類型說明符為“void”。因此B選項正確。
(18)C 【解析】主程序讀取整個字符串存于S中,調用fun函數,字符指針c指向數組s。函數fun的功能是把指針c所指向的字符數組中的所有小寫字符轉換為大寫。gets函數可以把空格作為字符串的一部分輸入,以回車作為輸入結束。如果*C為小寫字符,則*C=* c-32(轉大寫)。因此C選項正確。
(19)A 【解析】語句pc=eh;使得指針變量指向字符數組ch的首地址,即指向字符‘u’。則pc+5指向的是字符向后移動5位,指向字符‘z’。所以輸出的spc+5的值即為‘z’。因此A選項正確。
(20)D 【解析】該題目中首先區別++n和n++,第一次調用f函數時,將++n(n自增1后再參與運算)作為參數進行傳遞,此時變量m的值為1,執行n+=m;后,n=1,將1返回主函數,并輸出。第二次調用f函數時,將n++(n參與運算后再自增1)作為參數進行傳遞,此時變量m的值為1,執行語句n+=m;,由于n是靜態存儲變量,因此n=2,將2返回主函數并輸出。因此D選項正確。
(21)C 【解析】本題考查宏定義,宏定義只是做簡單的替換,所以本題中SUB(a+b)*e=(a+b)-(a+b)*e=-20,所以答案為C選項。
(22)D
(23)B 【解析】程序首先給字符數組s[]賦值為“Ol2xy”,for循環語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母計數,在符串中小寫字母為2個,即n=2。因此B選項正確。
(24)D 【解析】本題考查typedef重新聲明一種結構體類型,其中CIN為結構體類型名,而不是結構體變量,所以D選項正確。
(25)D 【解析】邏輯或運算符中只要有一個運算量為真結果就是真,當c>=2&& c<=6條件不成立時c的值肯定不是2、3、4、5、6,所以c!=3,與c!=5均成立。所以D選項的結果一定為真。
(26)D 【解析】數據庫系統的三級模式是概念模式、外模式和內模式,所以選擇D。
(27)A 【解析】C語言中,常量是指在程序運行過程中其值不能被改變的量,變量是指運行過程中其值可以改變的量,二者不能混淆,所以A選項錯誤。
(28)A 【解析】軟件生命周期可以分為軟件定義、軟件開發與軟件運行維護三個階段。主要活動階段是:可行性研究與計劃階段、需求分析、軟件設計、軟件實現、軟件測試、運行和維護,所以選擇A。
(29)A
(30)C 【解析】根據總體結構圖可以看出該樹的深度為3,比如:XY系統--功能2--功能2.1,就是最深的度數的一個表現。
(31)A 【解析】自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉,所以根據T中元組可以判斷R和S做的是自然連接操作。
(32)D 【解析】c語句可以跨行來寫,但是必須以分號結束,所以A選項錯誤。C程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行也可以不放在一行,所以C選項錯誤。
(33)A 【解析】B選項中運算符“%”的前后必須為整數,C選項中不能將變量賦給表達式x+n,D選項中不能將表達式4+1賦給常量5。
(34)C 【解析】本題重點考查的知識點是:sqrt()函數。sqrt()函數的作用是計算平方根,要求輸出的參數X必須大于等于0。題目公式的要求是無論X大于等于0還是小于0,y的值都為X絕對值的開方。選項C中調用了sqrt(x)函數,而沒有判斷x的正負,則y=sqrt(x)會出錯。
(35)C 【解析】本題考查文件的概念,文件是由數據序列組成,可以構成二進制文件或文本文件,所以答案為C選項。
(36)C 【解析】本題的含義是在1-40的整數的范圍中,只有當i的值能被5整除,且i+2的值能被8整除時,打印i的值,滿足這個條件的只有32,選擇C選項。
(37)D 【解析】C語言不允許定義動態數組,定義數組的大小必須為常量表達式。A選項錯誤,C語言中數組沒有此類型的定義方法;B選項錯誤,定義數組應指明數組大小,如果不指明數組大小,需要給定初值的個數;C選項錯誤,N為變量,不能用來定義數組大小。因此D選項正確。
(38)D【解析】首先對二維數組進行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為1、4、…、6、1。通過for語句和if語句,對二維數組各列元素進行由小到大的排序操作,程序最后通過for語句輸出二維數組對角線上的元素。因此D選項正確。
(39)D 【解析】本題考查位運算符,題目中將a向左移兩位,左移兩位表示乘以4,所以答案為8。選項D正確。
(40)D 【解析】本題考查文件操作函數,兩次fwrite后,幣文件中已經寫入1,2,3,0,0,1,2,3,0,0然后將文件fp中的內容重新寫入數組a中,最后輸出a為1,2,3,0,0,1,2,3,0,0,所以選項D正確。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |