




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、全國計算機等級考試二級C語言真題題庫2 2014年3月(總分43, 做題時間120分鐘)一、選擇題(每小題1分,共40分)1. 下列敘述中正確的是( )。A 每一個節點有兩個指針域的鏈表一定是非線性結構B 所有節點的指針域都為非空的鏈表一定是非線性結構C 循環鏈表是循環隊列的鏈式存儲結構D 線性結構的存儲節點也可以有多個指針答案:D解析一個非空的數據結構如果滿足以下兩個條件:有且只有一個根節點;每一個節點最多有個前件,也最多有一個后件,則稱為線性結構,在數據結構中習慣稱為線性表。雙向鏈表節點具有兩個指針域,屬于線性結構,故A選項錯誤。循環鏈表所有節點的指針域都為非空,屬于線性結構,故B選項錯誤
2、。循環鏈表是鏈表,循環隊列屬于隊列,隊列只能在隊尾入隊,在排頭退隊,鏈表可以在任何位置插入、刪除,故C選項錯誤。雙向鏈表節點具有多個指針域,故D選項正確。2. 使用白盒測試方法時,設計測試用例應根據( )。A 程序的內部邏輯B 程序的復雜結構C 程序的功能D 使用說明書答案:A解析白盒測試又稱為結構測試或邏輯驅動測試,它允許測試人員利用程序內部的邏輯結構及有關信息來設計或選擇測試用例,對程序所有的邏輯路徑進行測試,故A選項正確。3. 在醫院,每個醫生只屬于某一個診療科,醫生同一天可為多位患者看病,而一名患者可在多個科室治療,則實體醫生和患者之間的聯系是( )。A 多對多B 多對一C 一對多D
3、一對一答案:A解析一般來說,實體集之間必須通過聯系來建立連接關系,分為三類:一對一聯系(1:1)、一對多聯系(1:m)、多對多聯系(m:n)。醫生可為多位患者看病,患者也可以找多位醫生看病,實體醫生與患者聯系是多對多,故A選項正確。4. 設序列長度為n,在最壞情況下,時間復雜度為O(log2n)的算法是( )。A 二分法查找B 順序查找C 分塊查找D 哈希查找答案:A解析對長度為n的線性表排序,最壞情況下時間復雜度,二分法查找為O(log2n);順序查找法為O(n);分塊查找時間復雜度與分塊規則有關;哈希查找時間復雜度為O(1),因其通過計算HashCode來定位元素位置,所以只需一次即可。故
4、正確答案為A選項。5. 設數據集合為D1,3,5,7,9,D上的關系為R,下列數據結構B=(D,R)中為非線性結構的是( )。A R (5,1),(7,9),(1,7),(9,3)B R (9,7),(1,3),(7,1),(3,5)C R (1,9),(9,7),(7,5),(5,3)D R (1,3),(3,5),(5,9)答案:D解析一個非空的數據結構如果滿足以下兩個條件:有且只有一個根節點;每一個節點最多有一個前件,也最多有一個后件,則稱為線性結構,在數據結構中習慣稱為線性表。A選項中,5為根節點,線性表為51793。B選項中,9為根節點,線性表為97135。C選項中,1為根節點,線性
5、表為19753。D選項中,節點1與7都是根節點,屬于非線性結構,故D選項正確。6. 深度為7的二叉樹共有127個節點,則下列說法中錯誤的是( )。A 該二叉樹有一個度為1的節點B 該二叉樹是滿二叉樹C 該二叉樹是完全二叉樹D 該二叉樹有64個葉子節點答案:A解析在樹結構中,一個節點所擁有的后件個數稱為該節點的度,所有節點中最大的度稱為樹的度。完全二叉樹指除最后一層外,每一層上的節點數均達到最大值,在最后一層上只缺少有邊的若干節點。滿二叉樹指除最后一層外,每一層上的所有節點都有兩個子節點的二叉樹。深度為7的二叉樹,前6層共有節點個數為26-163,則第7層有127-6364個節點,即第7層節點數
6、達到最大值,故此二叉樹為滿二叉樹,也是完全二叉樹,該二叉樹沒有度為1的節點,有64個葉子節點。故正確答案為A選項。7. 二叉樹的中序序列為BDCA,后序序列為DCBA,則前序序列為( )。A DCBAB BDCAC ABCDD BADC答案:C解析二叉樹遍歷可以分為3種:前序遍歷(訪問根節點在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根節點在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根節點在訪問左子樹和訪問右子樹之后)。本題中中序序列為BDCA,后序序列為DCBA,可知A為根節點,BDC為左側節點,C是B右子節點,D是C右子節點,故前序序列為ABCD,C選項正確。8. 下面能作為軟件需
7、求分析工具的是( )。A PAD圖B 程序流程圖C 甘特圖D 數據流程圖(DFD圖)答案:D解析軟件需求分析方法包括結構化分析方法和面向對象的分析方法兩大類,前者常用工具為數據流圖(DFD)、數據字典(DD)、判定表、判定樹等。故D選項正確。選項B是軟件功能實現時設計圖。9. 下面不屬于對象主要特征的是( )。A 唯一性B 多態性C 可復用性D 封裝性答案:C解析對象的基本特點如下表所示。可知C選項正確。10. A (c,c,11,4)B (e,e,6,1)C (a,a,2,4)D (a,a,2,4)和(e,e,6,1)答案:A解析從關系中找出滿足給定條件的元組的操作稱為選擇,“”為
8、交運算,它由屬于前者且屬于后者的元組組成。題目為選出屬于屬性B,同時屬性C大于4,并且屬性D大于3的元組,結果為(c,c,11,4),應保留全部屬性。故A選項正確。11. C語言整數不包括( )。A 帶小數點的整數B 正整數C 負整數D 無符號整數答案:A解析C語言整數包括正整數、負整數、無符號整數、不含帶小數點的整數,故答案為A選項。12. 設a,b,c是整型變量,且已正確賦初值,以下選項中錯誤的賦值語句是( )。A a1(bc2);B a(b3)*cC abc10D a2(b9)=1答案:D解析D選項中,“()”具有最高優先級,b先賦值9,再根據賦值運算符號白右向左進行賦值,再給b賦值為1
9、,再計算2b,賦值運算符左邊必須是一個變量,但數值2是常量,語法錯誤,故答案為D選項。13. 以下選項中,合法的實數是( )。A 15E2B E11C 210ED 19E14答案:A解析E表示“10的冪次”,E的右側必須是整數,排除B、C、D選項、答案為A選項。14. 關于程序設計基本概念,以下敘述錯誤的是( )。A 計算機可以直接執行由任意高級語言編寫的程序B 高級語言都有與之對應的編譯程序或解釋程序C 用任何一種計算機高級語言都可以把算法轉換為程序D 結構化算法可以解決任何復雜的問題答案:A解析計算機只能識別機器語言,不能直接識別由高級語言編寫的程序,故答案為A選項。15. 以下不能用于實
10、型數據的運算符是( )。A B C *D +答案:A解析“”符號兩邊必須是整數,因此答案為A選項。16. C語言中,最基本的數據類型包括( )。A 整型、實型、邏輯型B 整型、字符型、數組C 整型、實型、字符型D 整型、實型、結構體答案:C解析C語言中,最基本的數據類型包括整型、實型、字符型,答案為C選項。17. 若有定義:int0,b0,c0,d0;,有C語言表達式(a+b+)?c+:d+,以下關于其執行順序的敘述正確是( )。A 先執行a+,表達式a+的值為0,短路,得a+,執行它B 先執行a+,表達式a+的值為0;再執行b+,表達式b+的值為0,由此可確定(a+&&b+)
11、值為0,因此執行d+C 先執行a+,表達式a+的值為1;再執行b+,表達式b+的值為1,由此可確定(a+b+)值為1,由此可確定(a+&&b+)值為1,因此執行c+D 先執行b+,表達式b+的值為1;再執行a+,表達式a+的值為1,由此可確定(a+b+)值為1,因此執行c+答案:A解析表達式1?表達式2:表達式3,若表達式1為真,則執行表達式2,否則執行表達式3。邏輯與運算符遵循“短路求值”策略,即只有在僅靠左操作數的值無法確定該邏輯表達式的結果時,才會求解右操作數,表達式(a+b+)中,左操作數a+的值為0,已經可以確定整個邏輯表達式的結果為0,因此右操作數b+不再求解,直接
12、執行表達式3,即d+,答案為A選項。18. 有以下程序:程序運行后的輸出結果是( )。A 123B ABCC abcD 012答案:A解析當滿足ch<'E',輸出ch-'A',即字符在ASCII碼相減進行輸出,d表示輸出十進制整數。循環開始,chB,print(“d”,ch-'A')1,以此類推,答案為A選項。19. 以下關于指針的敘述,錯誤的是( )。A 兩個基類型相同的指針變量不能指向同一個對象B 可以通過對指針變量自增、自減來移動指針C 只有兩個類型相同的指針才能進行減運算D 一個指針變量可以通過不同的方式獲得一個確定的地址值答案:A
13、解析只要兩個指針變量基類型相同,可以指向同一個對象,故答案為A選項。20. 對于函數聲明:void fun(float array,int *ptr);以下敘述正確的是( )。A 調用函數時,array數組的元素和Ptr都是按值傳送B 函數聲明有語法錯誤,參數array缺少數組大小定義C 調用函數時,array數組中將存儲從實參中復制來的元素值D 函數參數array,ptr都是指針變量答案:D解析void fun(float array,int *ptr)定義了2個形參:array和*ptr,其中函數形參中int array其實相當于int *array,答案為D選項。21. 有以下程序:程序
14、運行后的輸出結果是( )A 1,0,2,0,0,9B 1,2,4,9,6,0C 2,9,0,0,1,4D 1,2,0,1,4,1答案:A解析本題定義一個4行2列數組,其中賦值6個數,其余自動為0,根據for循環,第一次輸出第一列前三行數,分別是1,0,2;第二次輸出第二列前三行數,分別是0,0,9,因此答案為A選項。22. 要求定義一個具有6個元素的int型一維數組,以下選項中錯誤的是( )。A int N6,aN;B int a2*3 0;C #define N 3int aN=N;D int a 1,2,3,4,5,6;答案:A解析數組名后面括號內,必須是整型常量,不可以是變量,A選項定義
15、錯誤,答案為A選項。23. 有以下程序:執行時若輸入以下字符串:Peach flower is Pink回車則輸出結果是( )。A Peachflower is pinkB Peachfloweris PinkC PeachflowerispinkD Peach flower is pink.答案:A解析由于用“s”格式輸出字符串時,是以空格作為間隔符,因此,輸入給b0“Peach”,b1=“flower”,而while語句給c賦值時,getchar()能識別空格符,b2“is Pink”,答案為A選項。24. 有以下程序:程序運行后的輸出結果是( )。A agmrwB ekpuyC djot
16、xD flqvz答案:B解析在for循環中,執行完while語句后,j值為每行字符串的長度,此時aij-1為字符串數組每個元素的最后一個字符,aij-2為倒數第二個字符。因此wiaij2,比如i0;j6,則w0a04e,循環依次賦值,最后輸出y,答案為B選項。25. 有以下程序:程序運行后的輸出結果是( )。A 9,7,4,7B 8,6,9,6C 8,6,3,6D 10,8,5,8答案:A解析由于name是一個長度為9的一維數組,故在內存中占用9字節長度,而其中字符串“c#line”只有7個字符,strlen()函數返回的是該字符串的長度,不包含結束符,str是一個指針變量,占用4字節長度,但
17、是由于name首地址賦給了str指針變量,在調用strlen()函數時,返回的是指針對應地址單元的字符串的長度7,因此答案為A選項。26. 有以下程序:程序運行時,從鍵盤輸入2<回車>,輸出結果是( )。A #y#k#p#fB #wi#nd#C xj#oeD #2222#答案:A解析首先定義了個指針P指向數組的首地址,在while語句中,執行功能是如果當前指針指向地址單元內字符不等于空字符0,則輸'#'和指針對應地址元素的值在ASCII碼加2后變換的字符常量,因此,答案為A選項。27. 若有定義:char*ps“aa”,“bb”,“cc”,“dd“;,則以下敘述正確
18、的是( )。A ps0是字符串”aa”B *ps0是字符串“aa”的首地址C ps0是字符串”aa”的首地址D *ps0是字符串“aa”答案:C解析定義一個字符串數組指針ps后,ps是指針變量,ps0指向的是數組首個元素的地址,即字符串“aa”的首地址,答案為C選項。28. 若有定義:char*ps“aa”,“bb”,“cc”,“dd”;,則以下敘述正確的是( )。A *ps0是字符'a'B *ps0是字符串“aa”C ps0是字符'a'D ps是字符串“aa”答案:A解析指針數組ps定義后,ps0代表數組首個元素的地址,即“aa”的地址,同時也是“aa”第一個
19、字符a的地址,所以*ps0代表字符a,答案為A選項。29. 以下合法的轉義字符是( )。A '0X41'B '0X41'C 'X41'D 'X41'答案:D解析“xhh”表示1到2位十六進制所代表的字符,故答案為D選項。30. 在源程序的開始處加上”#include<stdioh>”進行文件引用的原因,以下敘述正確的是( )。A stdioh文件中包含標準輸人輸出函數的函數說明,通過引用此文件以便能正確使用printf、scanf等函數B 將stdioh中標準輸入輸出函數鏈接到編譯生成的可執行文件中,以便能正確運行C
20、將stdioh中標準輸入輸出函數的源程序插入到引用處,以便進行編譯鏈接D 將stdioh中標準輸入輸出函數的二進制代碼插入到引用處,以便進行編譯鏈接答案:A解析“stdioh”文件中包含標準輸入輸出函數的函數說明,預處理指令#includestdioh是指程序可以在該文件中找到printf、scanf等函數,因此答案為A選項。31. 設有定義:int a100,1,2,3,4,5,6,7,8,9,*Pa,i;,若0i9,則對a數組元素的引用錯誤的是( )。A a10B *(ai)C PiD ap-a答案:A解析長度為n的數組其各個元素的下標應該是從0到n-1,因此,長度為10的數組a,第10個
21、元素為a9,而不是a10,故答案為A選項。32. 有以下程序:程序運行后的輸出結果是( )。A 6,1B 1,1C 7,1D 7,2答案:C解析表達式c(13>>1)11中,>>是右移符號,數字13換算成二進制后右移1位,再和1進行按位或運算,結果為7;表達式d(13>1)|1中,首先判斷13是否大于1,此時條件成立返回1后,再和1進行或運算,結果為1,因此答案為C選項。33. 有以下程序:程序運行后的輸出結果是( )。A B XXXC XXD X=答案:A解析主函數首先為結構體定義兩個變量s1、s2,分別使用字符串拷貝函數strcpy()為s1和s2的成員nam
22、e賦值,再將s2中的成員信息賦值給s1,因此輸出為“”,答案為A選項。34. 有以下程序:程序運行后的輸出結果是( )。A 1,2,1,2,0,B 1,5,0,4,0,C 1,5,5,4,0,D 0,4,0,4,0答案:D解析“”表示與運算,主函數首先定義一個數組array6,初始化前4個元素的值,其余默認值為0。在for循環中,為數組array中每一個元素換算成二進制數后和二進制整數“100”進行按位與運算,再將結果進行輸出,因此答案為D選項。35. 有以下程序:程序的運行結果是( )。A 5B 2C 6D 3答案:A解析malloc(size)函數作用是在內存的動態存儲區分配一個長度為si
23、ze的連續空間,函數的返回值是新分配的存儲區的首地址,將該地址賦值給P指針,然后取P指針的地址,調用fun函數。fun函數中對指向指針的指針s指向的內存單元賦值,其中x1表示二維數組x的第二行的行地址,x1+1表示二維數組x的第二行第二列的地址,所以fun函數的功能是將二維數組x的第二行第二列的值,即x11賦值給*s,*s為p,所以*s代表*P,x11與a11等價,因此答案為A選項。36. 有如下定義:以下對內嵌結構體成員的引用形式錯誤的是( )。A ps-birthyB sbirthyC psbirthyD (*ps)birthy答案:C解析使用結構體指針對結構體成員進行訪問時,形式為結構指
24、針名-結構成員名,或者(*結構指針名)結構成員名,題目中ps為結構體指針,因此判斷A選項引用形式錯誤,答案為c選項。37. 有以下程序:程序運行后的輸出結果是( )。A 6B 21C 123456D 654321答案:A解析本題首先定義文件指針變量fp和一個數組a,再打開一個文件“datadat”,隨后先給文件寫入數據a0,由于rewind函數是將文件指針從當前位置重新指向文件開始位置,所以for循環依次將數組a中的數據寫入文件開始位置,退出循環后,文件中的數據順序為:654321,重新使指針指向文件開始位置,將此時fp指向的數據(即文件中第一個數據6)寫入變量k中,關閉文件,輸出k值,故答案
25、為A選項。38. 以下程序段中,與其他3個功能不同的程序段是( )。A s0;i1;for(;)s+=i;i+;if(i<=10)break;B s0;i1;for(;i<=10;)s+=i;i+;C s0;for(i=1;i<=10;i+)s+=i;D for(s=0,i=1;i<=10;s+=i,i+);答案:A解析B、C、D選項都表示對1到10進行累加后賦給s,而A選項中含break語句,循環體只執行一次,結束整個循環過程,因此答案為A選項。39. 設有定義:int a0,b1;,以下表達式中,會產生“短路”現象,致使變量b的值不變的是( )。A +a|+bB a
26、+|+bC +ab+D a+b+答案:D解析+放在變量前面時,表示將變量+1,再參與其他操作,a+b+時,由于a值是0,直接判定與運算結果為0,忽視b+的值,因此b值不發生改變,答案為D選項。40. 關于地址和指針,以下說法正確的是( )。A 通過強制類型轉換可以將一種類型的指針變量賦值給另一種類型的指針變量B 可以取一個常數的地址賦值給同類型的指針變量C 可以取一個表達式的地址賦值給同類型的指針變量D 可以取一個指針變量的地址賦值給基類型相同的指針變量答案:A解析常數的地址存儲在內存的常量區,常量區存儲的都是常量,值都是不可修改的,所以直接取常量的地址賦給指針變量沒有任何意義,c語言也不允許
27、這樣做,編譯會出錯,B選項錯誤;表達式的值存儲在臨時變量中,內存中存在專門用來存儲臨時變量的區域,對這塊地址進行操作也是沒有意義的,C語言不允許這樣做,編譯會出錯,C選項錯誤;可以取一個指針變量的地址,但是指針變量的地址屬于指針,只能賦值給指針類型的指針變量,D選項錯誤。故答案為A選項。二、程序填空題41. 給定程序中,函數fun的功能是:將形參指針所指結構體數組中的3個元素按num成員進行升序排列。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結構!試題程序:答案:(1)std(2)PERSON(3)std考點分析本題考查:數據類型的定義;數組元素的操作;函數參數的傳遞。要使用函數對整個數組進行操作時,應使用數組名作為函數的實參。當使用數組名作實參時,函數傳遞的實際上是數組的首地址,而并非數組本身,此時形參除了可以定義為指針變量外,還可以定義為數組,并且數組可以不指定大小,但無論用哪種形式,程序在編譯時都將其作為一個指針變量處理。解題思路填空1:定義形參變量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江國企招聘2025寧波寧海傳媒集團下屬公司招聘7人筆試參考題庫附帶答案詳解
- 菏澤2025年菏澤市市直事業單位引進87名高層次急需緊缺人才筆試歷年參考題庫附帶答案詳解
- 信陽師范大學《工程機械液壓傳動》2023-2024學年第二學期期末試卷
- 宿遷澤達職業技術學院《炎黃服飾文化產品設計》2023-2024學年第二學期期末試卷
- 安徽郵電職業技術學院《場館經營與管理》2023-2024學年第二學期期末試卷
- 河北資源環境職業技術學院《工商行政管理》2023-2024學年第二學期期末試卷
- 貴州體育職業學院《工科大學化學-物理化學(一)》2023-2024學年第二學期期末試卷
- 北京理工大學珠海學院《數字取證技術》2023-2024學年第二學期期末試卷
- 眉山藥科職業學院《沖壓工藝與模具設計》2023-2024學年第二學期期末試卷
- 湖北黃岡應急管理職業技術學院《預測與決策》2023-2024學年第二學期期末試卷
- 廠區保安培訓試題及答案
- 購銷庫爾勒香梨合同協議
- 2025年山東交通技師學院招聘筆試試題(附答案)
- 資質掛靠設計院合同協議
- 2025年海淀高三二模語文試題及答案
- 新聞記者職業資格2024年筆試考試題庫含答案
- 2025-2030中國食品中的X射線檢查系統行業市場發展趨勢與前景展望戰略研究報告
- 陜西省多校聯考2024-2025學年高一下學期4月期中地理試題(原卷版+解析版)
- 人工智能應用基礎 課件 第六章 大語言模型
- 施工流水作業段的劃分與組織畢業設計
- 跨文化團隊協作研究-第1篇-全面剖析
評論
0/150
提交評論