2017年計算機二級C語言考前模擬試題及答案8

字號:


    2016年計算機二級C語言考前30天必做題(4)
    程序段的輸出結(jié)果是(  )。
    (22)有以下程序段:
    2016年計算機二級C語言考前30天必做題(4)
    以下關(guān)于程序段執(zhí)行情況的敘述,正確的是(  )。
    A.for循環(huán)語句固定執(zhí)行8次
    B.當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
    C.當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
    D.當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
    (23)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(  )。
    A.8
    B.2
    C.4
    D.1
    (24)以下敘述中錯誤的是(  )。
    A.可以給指針變量賦一個整數(shù)作為地址值
    B.函數(shù)可以返回地址值
    C.改變函數(shù)形參的值,不會改變對應實參的值
    D.當在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
    (25)設(shè)已有定義:float x;,則以下對指針變量P進行定義且賦初值的語句中正確的是(  )。
    2016年計算機二級C語言考前30天必做題(4)
    (26)以下數(shù)組定義中錯誤的是(  )。
    2016年計算機二級C語言考前30天必做題(4)
    (27)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(  )O
    A.321678
    B.876543
    C.1098765
    D.345678
    (28)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(  )。
    A.一3,一l,1,3,
    B.B.一12,一3,0,0,
    C.C.0,1,2,3,
    D.D.一3,一3,一3,一3,
    (29)設(shè)有定義:char s[81];int i=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是(  )。
    2016年計算機二級C語言考前30天必做題(4)
    (30)設(shè)有定義:char p E]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是(  )。
    A.sizeof(p)
    B.sizeof(char)
    C.sizeof(*q)
    D.sizeof(p[0])
    (31)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序執(zhí)行后的輸出結(jié)果是(   )。
    A.321,cba
    B.abc,l23
    C.123,abc
    D.lbe,a23
    (32)有以下函數(shù):
    2016年計算機二級C語言考前30天必做題(4)
    函數(shù)的功能是(   )。
    A)將Y所指字符串賦給x所指存儲空間
    B.查找x和y所指字符串中是否有
    C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)
    D.統(tǒng)計x和Y所指字符串中相同的字符個數(shù)
    (33)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(   )。
    A)Lo
    B.30
    C.0
    D.64
    (34)在一個C源程序文件中所定義的全局變量,其作用域為(   )。
    A.由具體定義位置和extem說明來決定范圍
    B.所在程序的全部范圍
    C.所在函數(shù)的全部范圍
    D.所在文件的全部范圍
    (35)以下敘述中錯誤的是(   )。
    A.可以通過typedef增加新的類型
    B.可以用typedef將已存在的類型用一個新的名字來代表
    C.用typedef定義新的類型名后,原有類型名仍有效
    D.用typedef可以為各種類型起別名,但不能為變量起別名
    (36)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(   )。
    A.10
    B.11
    C.20
    D.21
    (37)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(   )。
    A.7.5
    B.31.5
    C.程序有錯無輸出結(jié)果
    D.14.0
    (38)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(   )。
    A.3
    B.4
    C.5
    D.6
    (39)有以下程序:
    2016年計算機二級C語言考前30天必做題(4)
    程序運行后的輸出結(jié)果是(   )。
    A.1.1.3
    B.2,2,3
    C.1,2,3
    D.3,3,3
    (40)以下敘述中正確的是(   )。;
    A.當對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導致數(shù)據(jù)丟失
    B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
    C.在一個程序中當對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)
    D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù).
     
     
    (21)C【解析】由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語句“;”所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個“t”,選擇c。
    (22)D【解析】Case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的ease語句,就從此cafle子旬執(zhí)行下去,不再進行判斷,直到碰到break或函數(shù)結(jié)束為止。簡單的說break是結(jié)束整個循環(huán)體,而continue是結(jié)束單次循環(huán)。B選項中當產(chǎn)生的隨機數(shù)n為4時要執(zhí)行打印操作。c選項中當產(chǎn)生的隨機數(shù)為l和2時分別執(zhí)行cage3與case4后面語句的內(nèi)容。由于存在break語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機數(shù)n有關(guān)系。
    (23)A【解析】第一次調(diào)用Ill=f(f(f(1))),第二次為m
    =f(f(2)),第三次為m=f(4),即返回值為8。
    (24)A【勰析l不能將一個整數(shù)直接賦給指針變量作為地址,所以A是錯誤的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。
    (25)B【解析】指針是用來存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時應將某個變量地址即8Ⅸ賦給指針變量,所以選擇8。
    (26)D【解析】D選項中x[2][3]定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了三行,所以錯誤。
    (27)A【解析】本題中的函數(shù)fun()的功能是將數(shù)組k中前5個元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。
    (28)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選項。
    (29)C【解析】字符串的輸入不能使用scanf(”%s”,s);而應該使用9ets(s)。
    (30)A【解析】根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。
    (31)D【解析】字符串是一個特殊的數(shù)組,所以按照數(shù)組的規(guī)則,sl應該指向的是數(shù)組的首地址,即“abc”的第一個字符的地址。s2指向的是“123”的第一個字符的地址。調(diào)用swap函數(shù)之后交換的是兩個字符串的第一個字符‘a(chǎn)’和‘1’的內(nèi)容,所以打印輸出為D)。
    (32)C【解析】本題中由循環(huán)條件可知遇到‘\0’或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)。
    (33)D【解析】本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。所以第一次循環(huán)s的值為2,第二次循環(huán)中,返回的x的值為4,所以s的值為8,第三次循環(huán),返回的x的值為8,所以S的值為64.
    (34)A【解析】全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)。
    (35)A【解析】關(guān)鍵字typedef的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,并不是增加新的類型,所以A錯誤。
    (36)D【解析】聲明data是結(jié)構(gòu)S數(shù)組。初始化data『0].a(chǎn)=10;data[0].b=100;data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中P=data[1];即P.a(chǎn)=data[1].a(chǎn);P.b=data[1].b;執(zhí)行語句prinff(”%d\n”,++(P.a(chǎn)));打印輸出時p.a(chǎn)先增l再打印。P.a(chǎn)=data[1].a(chǎn)=20,先增1等于21。
    (37)C【解析】宏定義不是C語句,末尾不需要有分號。所以語句printf(”%4.1f\n”,S(8+b));展開后為parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序會出現(xiàn)語法錯誤。
    (38)B【解析】&按位與,如果兩個相應的二進制位都為l,則該位的結(jié)果值為1,否則為0。l按位或,兩個相應的二1進制位中只要有一個為l,該位的結(jié)果值為l。2的二進制為1 00000010,4的二進制為00000100,所以做或運算結(jié)果為1 00000110,該數(shù)與5即00000101做與操作結(jié)果為00000100,1即4。
    (39)D【解析】maUoc函數(shù)動態(tài)分配一個整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int{)強制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請的內(nèi)存空間。所以只有最后一個賦值語句+C=3的值保留在了該空間內(nèi),因為a、b、C三個指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。
    (40)A【解析】B選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C選項中在一個程序中當對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第l個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D選項中,C語言中的文件可以進行隨機讀寫。