點(diǎn)擊查看:2015年計(jì)算機(jī)二級考試《C語言》提高練習(xí)題匯總
1[填空題]下列給定程序中,函數(shù)fun的功能是:求ss所指字符串?dāng)?shù)組中長度最短的字符串所在的行下標(biāo),作為函數(shù)值返回,并把其串長放在形參n所指的變量中。ss所指字符串?dāng)?shù)組中共有M個字符串,且串長小于N。
請?jiān)诔绦虻南庐嬀處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:
【參考答案】
(1)M (2)< (3)k
【考點(diǎn)分析】
本題考查:for循環(huán)語句的循環(huán)條件;if語句條件表達(dá)式;return語句完成函數(shù)值的返回。
【解題思路】
填空l:題目指出88所指字符串?dāng)?shù)組中共有M個字符串,所以for循環(huán)語句的循環(huán)條件是i
填空2:要求求長度最短的字符串,*n中存放的是已知字符串中長度最短的字符串的長度,將當(dāng)前字符串長度與+n比較,若小于*n,則將該長度值賦給*n,因此if語句的條件表達(dá)式為len<*n。
填空3:將最短字符串的行下標(biāo)作為函數(shù)值返回,變量k存儲行下標(biāo)的值。
2[單選題] 若有定義語句:int m[][3]={1,2,3,4,5,6,7};,則與該語句等價(jià)的是
A.int m[][3j={{1,2,3},{4,5,6},{i 7}};
B.int m[][3]={{1,2},{3,4},{5,6,7}};
C.int m[][3]={{1,2,3},{4,5},{6,7}};
D.int nl[][3]={{1},{2,3,4},{5,6,7}};
參考答案:A
參考解析:二維數(shù)組的初始化有兩種方式,一種是分行初始化,方式為:數(shù)據(jù)類型數(shù)組名[行下標(biāo)表達(dá)式][列下標(biāo)表達(dá)式]={{第0行初值},{第1行初值表},…{最后l行初值表}};,如果初值表只對部分元素賦初值,沒有被賦初值的元素將被自動賦值為0。另一種是按二維數(shù)組在內(nèi)存中的排列順序給各元素賦初值,這種方式就是不分行將所有數(shù)據(jù)依次列在一個花括號里,方式為:數(shù)據(jù)類型數(shù)組名[行下標(biāo)表達(dá)式][列下標(biāo)表達(dá)式]={初值表};,這種方式的賦值就是將初值表的數(shù)據(jù)依次賦予數(shù)組的每個元素,其中賦值是按照數(shù)組元素在內(nèi)存中的位置進(jìn)行的。題目中的初始化語句是第二種方法,如果用第一種方法應(yīng)該是int m[][3]={{1,2,3},{4,5,6{,{7{};,這里應(yīng)該保證除了最后一行,每一行都滿列有3個元素,A選項(xiàng)正確。
3[單選題] 若有以下說明,則( )不是對strcpy庫函數(shù)正確的調(diào)用。
A.strcpy(str2,str1)B.
B.strcpy(str3,str1)
C.strcpy(str1,str2)
D.strcpy(str5,str1)
參考答案:C
參考解析:strcpy(s1,s2)函數(shù)的功能是將字符串s2復(fù)制到字符串s1中。要保證sl存儲區(qū)能容納下s2字符串。
4[單選題]下列關(guān)于棧的描述中錯誤的是( )。
A.棧是先進(jìn)后出的線性表
B.棧只能順序存儲
C.棧具有記憶作用
D.對棧的插入刪除操作中,不需要改變棧底指針
參考答案:B
參考解析:棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都在棧頂進(jìn)行,因此具有記憶作用。?梢圆捎庙樞虼鎯Γ部梢圆捎面?zhǔn)酱鎯Α?/P>
5[單選題]下列敘述中正確的是( )。
A.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的
B.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
C.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
D.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性
參考答案:B
參考解析:線性鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結(jié)構(gòu)。
6[單選題] 以下程序段完全正確的是( )。
A.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);
參考答案:C
參考解析:A選項(xiàng)中錯在沒有對指針進(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)正確。
相關(guān)推薦:
2015計(jì)算機(jī)二級《C語言程序設(shè)計(jì)》無紙化操作題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |