計算機二級《C語言》選擇題題庫與答案
(1)程序流程圖中帶有箭頭的線段表示的是( )。
A.圖元關系
B.數據流
C.控制流
D.調用關系
(2)結構化程序設計的基本原則不包括( )。
A.多態性
B.自頂向下
C.模塊化
D.逐步求精
(3)軟件設計中模塊劃分應遵循的準則是( )。
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D.高內聚高耦合
(4)在軟件開發中,需求分析階段產生的主要文檔是( )。
A.可行性分析報告
B.軟件需求規格說明書
C.概要設計說明書
D.集成測試計劃
(5)算法的有窮性是指( )。
A.算法程序的運行時問是有限的。
B.算法程序所處理的數據量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
(6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n一1)/2的排序方法是( )。A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序
(7)下列關于棧的敘述正確的是( )。
A.棧按“先進先出”組織數據,
B.棧按“先進后出”組織數據
C.只能在棧底插入數據
D.不能刪除數據
(8)在數據庫設計中,將E—R圖轉換成關系數據模型的過程屬于( )。
A.需求分析階段
B.概念設計階段
C.邏輯設計階段
D.物理設計階段
(9)有三個關系R、s和T如下:
由關系R和s通過運算得到關系T,則所使用的運算為( )。
A.并
B.自然連接
C.笛卡爾積
D.交
(10)設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學號,課號,成績),則表sc的關鍵字(鍵或碼)為( )。
A.課號,成績
B.學號,成績
C.學號,課號
D.學號,姓名,成績
(11)以下敘述中錯誤的是( )。
A.c語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令
B.c程序經過編譯、連接步驟之后才能形成一個真正可執行的二進制機器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
D.c語言源程序經編譯后生成后綴為.obj的目標程序
(12)以下選項中,合法的一組c語言數值常量是( )。
A.12.0Xa23 4.5e0
B.028.5e…3 0xf
C.177 4el.5 0abe
D.0x8A 10,000 3.e5
(13)以下選項中不合法的標識符是( )。
A.&a
B.FOR
C.pfint
D.00
(15)若有定義:double a=22;inti=0,k=18;,則不符合c語言規定的賦值語句是( )。
A.i=(a+k)<=(i+k);B.i=a%11;
C.a=a++,i++;D.i=!a;
(16)有以下程序:
在VC 6.0平臺上編譯運行,程序運行后的輸出結果是( )。
A.10,6
B.4,4
C.2,4
D.4。8
(17)有以下程序:
當執行程序時,按下列方式輸入數據(從第l列開始,代表回車,注意:回車也是一個字符]1234則輸出結果是( )。
A.12
B.12
C.1234
D.12343
(18)以下關于邏輯運算符兩側運算對象的敘述中正確的是( )。
A.可以是任意合法的表達式
B.只能是整數0或非0整數
C.可以是結構體類型的數據
D.只能是整數0或1
(19)有以下程序:
程序運行后的輸出結果是( )。
A.1,1,2,0
B.0,0,0,3
C.編譯有錯
D.0,1,2,0
(20)有以下程序:
程序運行后的輸出結果是( )。
A.a=2,b=2
B.a=2,b=1
C.a=1,b=l
D.a=1,b=0
程序段的輸出結果是( )。
(22)有以下程序段:
以下關于程序段執行情況的敘述,正確的是( )。
A.for循環語句固定執行8次
B.當產生的隨機數n為4時結束循環操作
C.當產生的隨機數n為1和2時不做任何操作
D.當產生的隨機數n為0時結束程序運行
(23)有以下程序:
程序運行后的輸出結果是( )。
A.8
B.2
C.4
D.1
(24)以下敘述中錯誤的是( )。
A.可以給指針變量賦一個整數作為地址值
B.函數可以返回地址值
C.改變函數形參的值,不會改變對應實參的值
D.當在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
(25)設已有定義:float x;,則以下對指針變量P進行定義且賦初值的語句中正確的是( )。
(26)以下數組定義中錯誤的是( )。
(27)有以下程序:
程序運行后的輸出結果是( )O
A.321678
B.876543
C.1098765
D.345678
(28)有以下程序:
程序運行后的輸出結果是( )。
A.一3,一l,1,3,
B.B.一12,一3,0,0,
C.C.0,1,2,3,
D.D.一3,一3,一3,一3,
(29)設有定義:char s[81];int i=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是( )。
(30)設有定義:char p E]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數據所占字節數的表達式是( )。
A.sizeof(p)
B.sizeof(char)
C.sizeof(*q)
D.sizeof(p[0])
參考答案與解析
(1)C
【解析】在數據流圖中,用標有名字的箭頭表示數據流。在程序流程圖中,用標有名字的箭頭表示控制流。所以選擇C。
(2)A
【解析】結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用got0語句,所以選擇A。
(3)B
【解析】軟件設計中模塊劃分應遵循的準則是高內聚低偶合、模塊大小規模適當、模塊的依賴關系適當等。模塊的劃分應遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據開發出的軟件系統可靠性強,易于理解和維護。模塊之間的耦合應盡可能的低,模塊的內聚度應盡可能。
(4)B
【解析】A錯誤,可行性分析階段產生可行性分析報告。c錯誤,概要設計說明書是總體設計階段產生的文檔。D錯誤,集成測試計劃是在概要設計階段編寫的文檔。B正確,需求規格說明書是后續工作如設計、編碼等需要的重要參考文檔。
(5)A
【解析】算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。有窮性是指算法程序的運行時間是有限的。
(6)D
【解析】除了堆排序算法的比較次數是O(nl092n),其他的都是n(n一1)/2。
(7)B
【解析】棧是按“先進后出”的原則組織數據的,數據的插入和刪除都在棧頂進行操作。
(8)C
【解析】E—R圖轉換成關系模型數據則是把圖形分析出來的聯系反映到數據庫中,即設計出表,所以屬于邏輯設計階段。
(9)D
【解析】自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉,所以8錯誤。笛卡爾積是用R集合中元素為第一元素,s集合中元素為第二元素構成的有序對,所以c錯誤。根據關系T可以很明顯地看出是從關系R與關系s中取得相同的關系組所以取得是交運算,選擇D。
(10)C
【解析】學號是學生表s的主鍵,課號是課程表c的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇C。
(11)A
【解析】C語言中的非執行語句不會被編譯,不會生成二進制的機器指令,所以A錯誤。由C語言構成的指令序列稱c源程序,C源程序經過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個后綴為.EXE的可執行文件。
(12)A
【解析】C語言中八進制整型常量的開頭是數字0,十六進制整型常量的數字開頭是Ox。C語言中的實型常量有兩種表示形式:小數形式,小數形式表示的實型常量必須要有小數點;指數形式,以“e”或“E',后跟一個整數來表示以l0為底數的冪數,且規定字母e或E之前必須要有數字,且e或E后面的指數必須為整數。B選項中028錯誤,八透割中沒有數字8。c選項中4el.5中e后面的指數不是整數:D選項中3.e5小數點后面缺少數字。
(13)A
【解析】C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為標識符。因為C語言中區分大小寫,所以B選項中的。FOR。可以作為標識符來用。A選項中含有非法字符&,所以選擇A。
(14)A
【解析】B選項中函數pow(x,C)錯誤應該直接使用exp(x)函數。c選項中函數ah(n^x+e“x)錯誤,應該使用fabs()返回浮點數的絕對值。D選項中pow(x,n)參數順序錯誤。
(15)B
【解析】取模運算符“%”,二元運算符,具有左結合性,參與運算的量均為整型。選項8中的a變量是doable實型,所以8不符合規定。
(16)D
【解析】C語言中利用sizeof()函數判斷數據類型長度,在VC 6.0平臺中,整型int占有4個字節,doable型數據占有8個字節。
(17)D
【解析】按照從鍵盤輸入的數據可以_判斷字符l給了變量a,字符2給了變量b,字符即回車給了變量c,字符3給了變量d。所以打印輸出的結果為D選項。
(18)A
【解析】C語言的邏輯運算符比較特別,它的操作數沒有明確的數據類型,可以是任意合法的表達式,所以選擇A。
(19)C
【解析】本題中ff(a=1)b=1;與else d=3;之間多了語句c=2;所以會出現else語句的位置錯誤的編譯失敗提示。
(20)B
【解析】C88e常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執行switch語句時,根據switch的表達式,找到與之匹配的Case語句,就從此case子句執行下去,不在進行判斷,直到碰到break或函數結束為止。所以執行內層switch(y)時只執行了a++,此時a的值為1。然后執行外層case 2語句的a十+;b++;a為2,b為1。所以結果為B。
(21)C
【解析】由于內層循環for(k=1;k<3;k++)后面直接跟了空語句“;”所以在循環內部什么操作也不做,跳出外層循環后執行打印語句,所以打印了一個“t”,選擇c。
(22)D
【解析】Case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執行switch語句時,根據switch的表達式,找到與之匹配的ease語句,就從此cafle子旬執行下去,不再進行判斷,直到碰到break或函數結束為止。簡單的說break是結束整個循環體,而continue是結束單次循環。B選項中當產生的隨機數n為4時要執行打印操作。c選項中當產生的隨機數為l和2時分別執行cage3與case4后面語句的內容。由于存在break語句所以for循環不是固定執行8次,執行次數與產生的隨機數n有關系。
(23)A
【解析】第一次調用Ill=f(f(f(1))),第二次為m
=f(f(2)),第三次為m=f(4),即返回值為8。
(24)A
【解析】不能將一個整數直接賦給指針變量作為地址,所以A是錯誤的。函數的返回值可以是地址,即指針。函數調用中形參值的變化不會傳遞給實參。
(25)B
【解析】指針是用來存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時應將某個變量地址即8Ⅸ賦給指針變量,所以選擇8。
(26)D
【解析】D選項中x[2][3]定義的是一個兩行三列的二維數組,而在給數組元素賦值時卻賦成了三行,所以錯誤。
(27)A
【解析】本題中的函數fun()的功能是將數組k中前5個元素倒序,所以返回后數組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。
(28)A
【解析】本題中由fun函數可知,b[O]=a[o][0]一a[0][3]=1—4=一3,b[1]=a[1][1]一[1][2]=6—7=一1,b[2]=a[Z][2]一[2][1]=11一10=1,b[3]=8[3][3]一[3][1]=16—13=3。所以主函數中打印Y數組元素的值為A選項。
(29)C
【解析】字符串的輸入不能使用scanf(”%s”,s);而應該使用9ets(s)。
(30)A
【解析】根據題目中的定義可以知道sizeof(p),計算的是數組P中所有元素所占用的字節數,而不是ch”型數據所占字節數。
【計算機二級《C語言》選擇題題庫與答案】相關文章:
計算機二級《C語言》選擇題題庫及答案11-16
2016計算機二級C語言題庫及答案04-22
2017計算機二級C語言上機題庫及答案08-07
2016年計算機二級《C語言》選擇題題庫05-20
2016年計算機二級c語言題庫及答案08-12
計算機二級c語言題庫2016精選06-23