2017年計算機(jī)二級C語言考前模擬試題及答案5

字號:


     
    (1)以下敘述中錯誤的是(  )。
    A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
    B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
    C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
    D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
    (2)以下選項中,合法的一組c語言數(shù)值常量是(  )。
    A.12.0Xa23 4.5e0
    B.028.5e…3 0xf
    C.177 4el.5 0abe
    D.0x8A 10,000 3.e5
    (3)以下選項中不合法的標(biāo)識符是(  )。
    A.&a
    B.FOR
    C.pfint
    D.00
    (4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是(  )。
    A.可行性分析報告
    B.軟件需求規(guī)格說明書
    C.概要設(shè)計說明書
    D.集成測試計劃
    (5)若有定義:double a=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是(  )。
    A.i=(a+k)<=(i+k);B.i=a%11;
    C.a=a++,i++;D.i=!a;
    (6)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    在VC 6.0平臺上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是(  )。
    A.10,6
    B.4,4
    C.2,4
    D.4。8
    (7)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,代表回車,注意:回車也是一個字符]1234則輸出結(jié)果是(  )。
    A.12
    B.12
    C.1234
    D.12343
    (8)以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是(  )。
    A.可以是任意合法的表達(dá)式
    B.只能是整數(shù)0或非0整數(shù)
    C.可以是結(jié)構(gòu)體類型的數(shù)據(jù)
    D.只能是整數(shù)0或1
    (9)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    程序運(yùn)行后的輸出結(jié)果是(  )。
    A.1,1,2,0
    B.0,0,0,3
    C.編譯有錯
    D.0,1,2,0
    (10)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    2016年計算機(jī)二級C語言考前30天必做題(3)
    程序運(yùn)行后的輸出結(jié)果是(  )。
    A.a=2,b=2
    B.a=2,b=1
    C.a=1,b=l
    D.a=1,b=0
    (11)以下敘述中錯誤的是(  )。
    A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
    B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
    C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
    D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
    (12)有以下程序段:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    以下關(guān)于程序段執(zhí)行情況的敘述,正確的是(  )。
    A.for循環(huán)語句固定執(zhí)行8次
    B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作
    C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作
    D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運(yùn)行
    (13)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    程序運(yùn)行后的輸出結(jié)果是(  )。
    A.8
    B.2
    C.4
    D.1
    (14)以下敘述中錯誤的是(  )。
    A.可以給指針變量賦一個整數(shù)作為地址值
    B.函數(shù)可以返回地址值
    C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
    D.當(dāng)在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
    (15)設(shè)已有定義:float x;,則以下對指針變量P進(jìn)行定義且賦初值的語句中正確的是(  )。
    2016年計算機(jī)二級C語言考前30天必做題(3)
    (16)以下數(shù)組定義中錯誤的是(  )。
    2016年計算機(jī)二級C語言考前30天必做題(3)
    (17)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    程序運(yùn)行后的輸出結(jié)果是(  )O
    A.321678
    B.876543
    C.1098765
    D.345678
    (18)有以下程序:
    2016年計算機(jī)二級C語言考前30天必做題(3)
    程序運(yùn)行后的輸出結(jié)果是(  )。
    A.一3,一l,1,3,
    B.B.一12,一3,0,0,
    C.C.0,1,2,3,
    D.D.一3,一3,一3,一3,
    (19)設(shè)有定義:char s[81];int i=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是(  )。
    2016年計算機(jī)二級C語言考前30天必做題(3)
    (20)設(shè)有定義:char p E]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是(  )。
    A.sizeof(p)
    B.sizeof(char)
    C.sizeof(*q)
    D.sizeof(p[0])
     
     
    (1)A【解析】C語言中的非執(zhí)行語句不會被編譯,不會生成二進(jìn)制的機(jī)器指令,所以A錯誤。由C語言構(gòu)成的指令序列稱c源程序,C源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。
    (2)A【解析】C語言中八進(jìn)制整型常量的開頭是數(shù)字0,十六進(jìn)制整型常量的數(shù)字開頭是Ox。C語言中的實型常量
    有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實型常量必須要有小數(shù)點;指數(shù)形式,以“e”或“E',后跟一個整數(shù)來表示以l0為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中028錯誤,八透割中沒有數(shù)字8。c選項中4el.5中e后面的指數(shù)不是整數(shù):D選項中3.e5小數(shù)點后面缺少數(shù)字。
    (3)A【解析】C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因為C語言中區(qū)分大小寫,所以B選項中的。FOR??梢宰鳛闃?biāo)識符來用。A選項中含有非法字符&,所以選擇A。
    (4)B【解析】A錯誤,可行性分析階段產(chǎn)生可行性分析報告。c錯誤,概要設(shè)計說明書是總體設(shè)計階段產(chǎn)生的文檔。D錯誤,集成測試計劃是在概要設(shè)計階段編寫的文檔。B正確,需求規(guī)格說明書是后續(xù)工作如設(shè)計、編碼等需要的重要參考文檔。
    (5)B【解析】取模運(yùn)算符“%”,二元運(yùn)算符,具有左結(jié)合性,參與運(yùn)算的量均為整型。選項8中的a變量是doable實型,所以8不符合規(guī)定。
    (6)D【解析】C語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長度,在VC 6.0平臺中,整型int占有4個字節(jié),doable型數(shù)據(jù)占有8個字節(jié)。
    (7)D【解析】按照從鍵盤輸入的數(shù)據(jù)可以_判斷字符l給了變量a,字符2給了變量b,字符即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D選項。
    (8)A【解析】C語言的邏輯運(yùn)算符比較特別,它的操作數(shù)沒有明確的數(shù)據(jù)類型,可以是任意合法的表達(dá)式,所以選擇A。
    (9)C【解析】本題中ff(a=1)b=1;與else d=3;之間多了語句c=2;所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。
    (10)B【解析】C88e常量表達(dá)式只是起語句標(biāo)號作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達(dá)式,找到與之匹配的Case語句,就從此case子句執(zhí)行下去,不在進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層switch(y)時只執(zhí)行了a++,此時a的值為1。然后執(zhí)行外層case 2語句的a十+;b++;a為2,b為1。所以結(jié)果為B。
    (11)A【解析】C語言中的非執(zhí)行語句不會被編譯,不會生成二進(jìn)制的機(jī)器指令,所以A錯誤。由C語言構(gòu)成的指令序列稱c源程序,C源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。
    (12)D【解析】Case常量表達(dá)式只是起語句標(biāo)號作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達(dá)式,找到與之匹配的ease語句,就從此cafle子旬執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。簡單的說break是結(jié)束整個循環(huán)體,而continue是結(jié)束單次循環(huán)。B選項中當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時要執(zhí)行打印操作。c選項中當(dāng)產(chǎn)生的隨機(jī)數(shù)為l和2時分別執(zhí)行cage3與case4后面語句的內(nèi)容。由于存在break語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機(jī)數(shù)n有關(guān)系。
    (13)A【解析】第一次調(diào)用Ill=f(f(f(1))),第二次為m
    =f(f(2)),第三次為m=f(4),即返回值為8。
    (14)A【勰析l不能將一個整數(shù)直接賦給指針變量作為地址,所以A是錯誤的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。
    (15)B【解析】指針是用來存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時應(yīng)將某個變量地址即8Ⅸ賦給指針變量,所以選擇8。
    (16)D【解析】D選項中x[2][3]定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了三行,所以錯誤。
    (17)A【解析】本題中的函數(shù)fun()的功能是將數(shù)組k中前5個元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。
    (18)A【解析】本題中由fun函數(shù)可知,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。所以主函數(shù)中打印Y數(shù)組元素的值為A選項。
    (19)C【解析】字符串的輸入不能使用scanf(”%s”,s);而應(yīng)該使用9ets(s)。
    (20)A【解析】根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。
    一、選擇題
    (21)B【解析】棧是先進(jìn)后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
    (22)D【解析】循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結(jié)構(gòu)的,所以A錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態(tài)變化情況,所以B與C錯誤。
    (23)C【解析】當(dāng)有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較l092n次,而順序查找需要比較n次。
    (24)A【解析】鏈?zhǔn)酱鎯Y(jié)構(gòu)既可以針對線性結(jié)構(gòu)也可以針對非線性結(jié)構(gòu),所以B與C錯誤。鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以D錯誤。
    (25)D【解析】數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
    (26)B【解析】在需求分析階段可以使用的工具有數(shù)據(jù)
    流圖(DFD圖),數(shù)據(jù)字典(DD),判定樹與判定表,所以選擇B。
    (27)A【解析】對象有如下一些基本特點:標(biāo)識性、分類性、多態(tài)性、封裝性、模塊獨立性好。所以選擇A。
    (28)B【解析】因為一間宿舍可以住多個學(xué)生即多個學(xué)生住在一個宿舍中,但一個學(xué)生只能住一間宿舍,所以實體宿舍和學(xué)生之間是一對多的關(guān)系。
    (29)C【解析】數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個階段結(jié)構(gòu)簡單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,所以選擇C。
    (30)D【解析】自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進(jìn)行的是自然連接操作。
    (31)B【解析】在一個C語言程序中可以進(jìn)行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B錯誤。
    (32)A【解析】A選項中l(wèi)15L表示ll5是長整型數(shù)據(jù),合法。B選項是八進(jìn)制常量的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B錯誤。c選項中e后面應(yīng)該是整數(shù)不能是小數(shù)l.5,所以c錯誤。D選項中八進(jìn)制常量應(yīng)該是數(shù)字…0開始,而不是字母…O開始。
    (33)D【解析】C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D選項中的連接符不合法。
    (34)A【解析】8與D選項中取模運(yùn)算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B、D錯誤。c選項中不能將X+Y的值賦給表達(dá)式Y(jié)*5,所以c錯誤。
    (35)A【解析】A選項中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2的值,即x=x+2即4,整個逗號表達(dá)式為第二個表達(dá)式的值4,所以選擇A。B選項中首先計算逗號表達(dá)式中第一表達(dá)式x++,此時x為3,在執(zhí)行第二個表達(dá)式2·X=2*3=6,所以逗號表達(dá)式為第二個表達(dá)式的值6。C選項的賦值表達(dá)式可以表示為x=x *(1+x)=2}(1+2)=6。D選項中的表達(dá)式可以表示為x=X}(x+1)=2·3=60
    (36)C【解析】z=X++,Y++,++y;因為賦值運(yùn)算符的優(yōu)先級高于逗號運(yùn)算符的優(yōu)先級,所以可以將上式表示成(Z=x++),(Y++),(++y)。然后從左向右先計算表達(dá)式Z=X++,因為x++先使用后自增,所以z的值為1,X的值為2。再計算逗號表達(dá)式第二個表達(dá)式Y(jié)++,此時Y的值為2,最后計算第三個表達(dá)式++y,Y的值為3。
    (37)A【解析】本題目中字符變量cl是字符‘A’的ASCIl碼加上4,即69所對應(yīng)的字符‘E’。字符變量c2是字符‘A’的ASCIl碼加上3,即68所對應(yīng)的字符‘D’。但是打印輸出時,cl以%C的格式輸出,所以是E,c2以%d的格式輸出,所以是68。
    (38)A【解析】條件表達(dá)式:x=表達(dá)式17表達(dá)式2:表送式3的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)芪2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求辭表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式1::x—y)等價的是(x—Y<0I|x—Y>O)。
    (39)D【解析】在if else語句中else總是與離它最近的f配對。本題目中x為l所以!X為0,所以執(zhí)行else if語句中的內(nèi)容,判斷(x==O)是否成立,因為x為1所以條件不成立,聽以else if內(nèi)部的if…else語句不再執(zhí)行,所以Y的值還是初蛤值0。
    (40)A【解析】B選項中switch((int)x);語句中不應(yīng)該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達(dá)式的類型必須與switch后面表達(dá)式的類型一致,所以D錯誤。