2017年計(jì)算機(jī)二級C語言考前練習(xí)試題及答案5

字號:


    (21)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    (22)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.02356
    B.0235
    C.235
    D.2356
    以下關(guān)于retllm語句的敘述中正確的是( )。
    A.一個(gè)自定義函數(shù)中必須有一條return語句
    B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句
    C.定義成void類型的函數(shù)中可以有帶返回值的return語句
    D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
    (24)已定義以下函數(shù):
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    fun函數(shù)的返回值是( )。
    一個(gè)整數(shù)
    B.不確定的值
    C.形參P中存放的值
    D.形參P的地址值(25)以下程序段完全正確的是( )。
    int * p;scanf(”%d”,&p);
    B.int*p;scanf(”%d”,P);
    C.int k,* P:&k;scanf(’’%d”,P);
    D.int k,*p;*P=&k;scanf(”%d”,P);
    (26)設(shè)有定義:
    double a[10],*s=a;
    以下能夠代表數(shù)組元素a[3]的是( )。
    A.($s)[3]
    B.}(s+3)
    C.*s[3]
    D.}s+3
    27、有以下程序
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.6,2,3,4,5,
    B.2,2,3,4,5,
    C.1,2,3,4,5,
    D.2,3,4,5,6,
    (28)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.4
    B.34
    C.31
    D.32
    (29)以下選項(xiàng)中正確的語句組是( )。
    A.char*s;8={1.BOOK!”}i
    B.char*s;8=”BOOK!”;
    C.char S[10];S=”BOOK!”;
    D.char S[];S=”BOOK!”;
    (30)若有定義語句:
    char}sl=‘’0K”,:It s2=”ok”;
    以下選項(xiàng)中,能夠輸出“OK”的語句是( )。
    A.if(strcmp(sl,s2)!=0)puts(s2);
    B.if(strcmp(sl,s2)!=0)puts(s1);
    C.if(strcmp(sl,s2)==1)puts(s1);
    D.if(strcmp(sl,s2)==0)puts(s1);
    (31)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.11
    B.9
    C.6
    D.7
    (32)有以下程序(說明:字母A的ASCIl碼值是65):
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.BT
    B.YE
    C.YT
    D.BY
    (33)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.120
    B.11
    C.6
    D.21
    (34)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。、
    A.A B E F
    B.C D E F
    C.A B C D
    D.C D A B
    (35)以下關(guān)于typedef的敘述錯(cuò)誤的是( )。
    A.用typedef可以增加新類型
    B.typedef只是將已存在的類型用一個(gè)新的名字來代替
    C.用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名
    D.用typedef為類型說明一個(gè)新名,通??梢栽黾映绦虻目勺x性
    (36)程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第一個(gè)結(jié)點(diǎn)。
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    若有以下程序段:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    該程序段實(shí)現(xiàn)的功能是( )。
    A.刪除尾結(jié)點(diǎn)
    B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)
    C.刪除首結(jié)點(diǎn)
    D.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)
    (37)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.33
    B.197
    C.143
    D.28
    (38)若有以下程序段:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.16
    B.8
    C.4
    D.2
    (39)以下敘述中錯(cuò)誤的是( )。
    A.gets函數(shù)用于從終端讀人字符串
    B.getehar函數(shù)用于從磁盤文件讀人字符
    C.fputs函數(shù)用于把字符串輸出到文件
    D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
    (40)有以下程序:
    2016年計(jì)算機(jī)二級C語言考前20天必做題(5)
    以上程序執(zhí)行后abc.dat文件的內(nèi)容是( )。
    A.China
    B.Chinang
    C.ChinaBeijing
    D.BeijingChina
     
     
     
    (21)B【解析】第一次執(zhí)行外循環(huán),i的值為3,第一次執(zhí)行內(nèi)循環(huán)j的值為1,j<=2條件成立,打印i+j的值,即4;第二次執(zhí)行內(nèi)循環(huán)J的值為2,j<=2條件成立,打印i+j的值,即5;再判斷條件不成立,打印回車換行符,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán),i的值為2,內(nèi)循環(huán)的執(zhí)行同第一次一樣,所以打印3和4,打印回車換行,結(jié)束內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為1,同理內(nèi)循環(huán)中打印2和3,打印回車換行符,結(jié)束內(nèi)循環(huán)。
    (22)C【解析】k的值為5,逐個(gè)對caBe語句進(jìn)行匹配,均不匹配,執(zhí)行defau1t下的語句n=0;k一一。再執(zhí)行case2:ca804:后面的語句n+=2;k一一;。執(zhí)行break語句跳出switch判斷,打印n的值,即2。經(jīng)過第一次循環(huán)后,k的值為3,然后進(jìn)行k>0&&11<5條件判斷為真。第二次執(zhí)行循環(huán)體,執(zhí)行case3:后面的語句n+=1;k一一;。再執(zhí)行break語句跳出循環(huán),此時(shí)打印n的值3,此時(shí)k的值為2。第三次執(zhí)行循環(huán)體k的值為2,滿足條件,執(zhí)行case2:case4:后面的語句n+=2;k一一;。執(zhí)行break語句跳出循環(huán)體。打印n的值5。此時(shí)n不滿足條件k>0&&n<5,所以結(jié)束循環(huán)。整個(gè)程序的打印結(jié)果為235。
    (23)B【解析】在函數(shù)中允許有多個(gè)Iett1r11語句,但每次調(diào)用只能有一個(gè)return語句被執(zhí)行,因此只能返回一個(gè)函數(shù)值。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,c選項(xiàng)描述錯(cuò)誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,A、D選項(xiàng)描述錯(cuò)誤。因此B選項(xiàng)正確。
    (24)A【解析】返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項(xiàng)正確。
    (25)C【解析】A選項(xiàng)中錯(cuò)在沒有對指針進(jìn)行初始化,是無效指針,并且在scanf(”%d”,&p)中無需再進(jìn)行取地址操作;B選項(xiàng)中沒有對指針進(jìn)行初始化,是無效指針;D選項(xiàng)中語句+P=&k;的左端t pt是指針?biāo)竷?nèi)存空間的值,&k是地址,應(yīng)為P=&k。因此C選項(xiàng)正確。
    (26)B【解析】語句·s=a;表示指針變量s指向一維數(shù)
    組a的首地址。a[3]表示引用數(shù)組a的第4個(gè)元素,+(s+i)表示引用指針8所指數(shù)組a的第i+1個(gè)元素,選項(xiàng)A、C、D的表示方法錯(cuò)誤,只有B選項(xiàng)正確。
    (27)A【解析】本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加1運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。
    (28)C【解析】本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實(shí)際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中的那個(gè)元素。因此C選項(xiàng)正確。
    (29)B【解析】A選項(xiàng)去掉大括號就正確了;c選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值。因此B選項(xiàng)正確。
    (30)B【解析】strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCI1碼值大小),-以第一個(gè)不相同的字符的大小作為比較結(jié)果。因?yàn)?。O。<10.,所以strcmp(s1,s2)為負(fù)值,只有B選項(xiàng)正確。
    (31)C【解析】strcpy:字符串拷貝函數(shù);str1en:求字符串長度函數(shù)(注意:不包含字符串結(jié)束標(biāo)識符‘、0’);strcat:字符串連接函數(shù)。執(zhí)行完語句strcat(P,r);后,P數(shù)組中存儲的元素為a,b,c,d,a,b,C,d,8;執(zhí)行語句strcpy(P+str1en(q),q);得到的結(jié)果是將q所指向的字符串拷貝至P+str1en(q)開始的存儲位置,因?yàn)閟tr1en的值為3,即從P+3開始存儲q中的元素。所以執(zhí)行完strcpy(P+str|en(q),q)語句后,字符數(shù)組P[20]的存儲元素為a,b,c,a,b,o;所以str1en(P)的結(jié)果為6。因此C選項(xiàng)正確。
    (32)B【解析】本題中執(zhí)行fun(a)時(shí),會取字符串a(chǎn)的第一個(gè)字母B,因?yàn)樽帜窧的ASCI1碼值為66,所以不會輸出字母8,函數(shù)只會輸出ASCI1碼值為奇數(shù)的字母,字母Y的ASCI1碼值為89,字母T的ASCI1碼值為84,字母E的ASCII碼值為69。因此B選項(xiàng)正確。
    (33)D【解析】fun函數(shù)中的變量X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時(shí)仍可以保留上次調(diào)用時(shí)的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時(shí)有效,從第二次調(diào)用開始,x的定義相當(dāng)于不存在,直接使用上次X的值。fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上。5次調(diào)用后,x的值為6,8的值為1+2+3+4+5+6=21。因此D選項(xiàng)正確。
    (34)B【解析】本題考察的是變量的作甩范圍。如果在同一個(gè)源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即不起作用:奉題中,在fun1()和main()函數(shù)內(nèi)訪問的是全局變量a和b,在fun2()函數(shù)中訪問的是形參變量a和b。所以,main()函數(shù)中的prinff()函數(shù)輸出的是在fun1()函數(shù)中被改變的全局變量a和b的值c、D,而fun2()函數(shù)中輸出的是傳遞給它的實(shí)參值E、F。因此B選項(xiàng)正確。
    (35)A【解析】typedef并不是增加了新類型,面是用一個(gè)新名字替代已存在的類型,不能為變量說明一個(gè)新名,使用typedef可以增強(qiáng)程序的可移植性。所以A選項(xiàng)錯(cuò)誤:
    (36)D【解析】本題考查鏈表的操作,本題中首先是s指向了它的下個(gè)結(jié)點(diǎn),題目中說明了s總是指向鏈表的第一個(gè)結(jié)點(diǎn),然后whi1e循環(huán)找到鏈表的最后一個(gè)元素,然后最后一個(gè)元素指向了之前鏈表的頭結(jié)點(diǎn),之前頭結(jié)點(diǎn)指向了空結(jié)點(diǎn),所以本題實(shí)現(xiàn)的功能是使首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。選項(xiàng)D正確。(37)C【解析】本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運(yùn)行S(k+j)為4*(k+j)*k+j+1=143,選項(xiàng)C正確。
    (38)C【解析】本題考查位運(yùn)算,屬于基礎(chǔ)知識,題目中將整型變量8,二進(jìn)制表達(dá)為00(301000,右移一位為00000100,即4,選項(xiàng)c正確。
    (39)B【解析】本題考查字符處理函數(shù)和文件操作函數(shù)。屬于基礎(chǔ)知識,其中B選項(xiàng)9etchar函數(shù)是用于從終端讀人一個(gè)字符。
    (40)B【解析】本題考查文件操作函數(shù),fwrite和rewind函數(shù),題目中先是將s2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入s1字符串,那么s1字符串就將前5個(gè)字符覆蓋,所以最終結(jié)果為Chinan9,選項(xiàng)B正確。