- 相關推薦
2017最新計算機二級《C語言》選擇題及答案
多做試題有利于提高我們的答題速度,幫助同學們鞏固所學知識點,以下是百分網小編搜索整理的一份最新計算機二級《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])
(31)有以下程序:
程序運行后的輸出結果是( )。
A.10,One*Dream!
B.9,One*Dream!
C.9,One*World
D.10,One*World
(32)有以下程序:
程序運行后的輸出結果是( )。
A.0
B.3
C.7
D.8
(33)有以下程序:
程序執行后的輸出結果是( )。
A.5,11
B.5,5
C.11,11
D.11,5
(34)在c語言中,只有在使用時才占用內存單元的變量,其存儲類型是( )。
A.aut0和static
B.extern和register
C.aut0和register
D.static和register
(35)下面結構體的定義語句中,錯誤的是( )。
A.struct ord{int x;int Y;int z;}struct ord a;
B.struct ord{int x;im Y;im z;};struct ord a;
C.struct ord{int x;int Y;int Z;}a;
D.struct{int x;int Y;int z;}a;
(36)有以下程序:
程序運行后的輸出結果是( )。
A.2,4
B.1,2
C.1,4
D.2.3
(37)以下敘述中正確的是( )。
A.在C語言中,預處理命令行都以“#”開頭
B.預處理命令行必須位于c源程序的起始位置
C.#include必須放在C程序的開頭
D.C語言的預處理不能實現宏定義和條件編譯的功能
(38)有以下程序:
程序運行后的輸出結果是( )。
A.O
B.10
C.20
D.出錯
(39)有以下程序:
程序運行后的輸出結果是( )。
A.16
B.1
C.32
D.O
(40)讀取二進制文件的函數調用形式為:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A.一個內存塊的字節數
B.一個整型變量,代表待讀取的數據的字節數
C.一個文件指針,指向待讀取的文件
D.一個內存塊的首地址,代表讀人數據存放的地址
參考答案與解析
(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?梢宰鳛闃俗R符來用。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【勰析l不能將一個整數直接賦給指針變量作為地址,所以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”型數據所占字節數。
(31)A【解析】P是指向二維字符數組第二行One+Dream!的數組指針,所以長度是l0,打印輸出的也是該字符串。
(32)B【解析】本題中遇到“\”字符循環結束,所以只統計“\”之前的數字字符,所以為3。
(33)A【解析1聲明靜態局部變量:函數調用結束后,其占用的存儲單元不釋放,在下次該函數調用時,該變量保留上一次函數調用結束時的值。本題子函數tim中的變量i和m均為靜態局部變量。所以第一次調用fun函數,返回m的值為5,第二次再調用fun函數時,i的值為3,nl的值已經是5了,所以執行i+=m+1,i的值變為9,nl=i+x+Y=9+1+l=11。
(34)C【解析】aut0:函數中的局部變量,動態地分配存儲空間,數據存儲在動態存儲區中,在調用該函數時系統會給它們分配存儲空間,在函數調用結束時就自動釋放這些存儲空問。register:為了提高效率,C語言允許將局部變量的值放在cPU中的寄存器中,這種變量叫“寄存器變量”,只有局部自動變量和形式參數可以作為寄存器變量。extem:#1’部變量(即全局變量)是在函數的外部定義的,它的作用域為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了。static:靜態局部變量屬于靜態存儲類別,在靜態存儲區內分配存儲單元。在程序整個運行期間都不釋放。
(35)A【解析】A選項stnlet onl{int x;int y;int 2;struet ora a;錯誤,不能在定義結構體的同時,又用結構體類型名定義變量。應該寫成B選項或者D選項的格式。
(36)B【解析l結構體變量可以作為函數的參數和返回值。作為函數的實參時,可以實現函數的傳值調用。當使用結構體變量作為函數的形參時,實參也應該是結構體變量名以實現傳值調用,實參將拷貝副本給形參,在被調用函數中改變形參值對于調用函數中的實參沒有影響。所以選擇B。
(37)A【解析】預處理命令是以“#”號開頭的命令,它們不是C語言的可執行命令,這些命令應該在函數之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預處理能夠實現宏定義和條件編譯等功能,所以D錯誤。
(38)C【解析】nlaIloc(sizeof(int))的作用是開辟一個長度為sizeof(int)存儲空間,并通過強制類型轉換(int。)將此存儲空間的地址賦給了一個整型的指針變量P。然后執行語句·P=n,使得·p的值為10,并通過return返回此值,即a的值為l0。然后在主函數中輸出a+ftm(10)=10+10=20。
(39)B【解析】無符號整型變量a的值為8,二進制表示為00001000,右移3位后為00000001,即十進制的l,所以輸出1。
(40)D【解析】fread(void}buffer,size—t size,size—tcount,FILE}stream);功能是從一個文件流中讀數據,讀取count個元素。每個元素size字節,如果調用成功返回count。buffer:用于接收數據的內存地址,大小至少是size * count字節;size:單個元素的大小,單位是字節;count:元素的個數,每個元素是size字節;Stream:輸人流。
【最新計算機二級《C語言》選擇題及答案】相關文章:
計算機二級《C語言》選擇題題庫及答案11-16
計算機二級考試C語言試題與答案(選擇題)12-03
2016最新二級C語言選擇題03-18
全國計算機二級考試C語言選擇題練習及答案03-24
計算機二級C語言模擬試題及答案12-08
計算機二級《C語言》試題及答案201611-21
2017計算機二級C語言備考習題及答案03-18