2015計算機二級《C語言程序設計》無紙化操作題三份(2)
1下列給定程序中,函數fun的功能是:求ss所指字符串數組中長度最短的字符串所在的行下標,作為函數值返回,并把其串長放在形參n所指的變量中。ss所指字符串數組中共有M個字符串,且串長小于N。
請在程序的下畫線處填入正確的內容并將下畫線刪除,使程序得出正確的結果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)M (2)< (3)k
【考點分析】
本題考查:for循環語句的循環條件;if語句條件表達式;return語句完成函數值的返回。
【解題思路】
填空l:題目指出88所指字符串數組中共有M個字符串,所以for循環語句的循環條件是i
填空2:要求求長度最短的字符串,*n中存放的是已知字符串中長度最短的字符串的長度,將當前字符串長度與+n比較,若小于*n,則將該長度值賦給*n,因此if語句的條件表達式為len<*n。
填空3:將最短字符串的行下標作為函數值返回,變量k存儲行下標的值。
二、程序改錯題
2下列給定程序中函數fun的功能是:將tt所指字符串中的小寫字母全部改為對應的大寫字母,其他字符不變。
例如,若輸入“Ab,cD”,則輸出“AB,CD”。
請改正程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)if((tt[i]>=’a’)&&(tt[i]<=’Z’))
(2)tt[i]一=32;
【考點分析】
本題考查:if語句條件表達式;小寫字母轉換為大寫字母的方法。
【解題思路】
(1)分析本題可知,要判斷字符是否為小寫字母,即判斷其是否在‘a’~‘z’之間,所以這里需要進行連續的比較,用&&。
(2)從ASCIl碼表中可以看出,小寫字母的ASCⅡ碼值比對應大寫字母的ASCIl值大32。將字符串中的小寫字母改為大寫字母的方法是:從字符串第—個字符開始,根據ASCIl碼值判斷該字母是不是小寫字母,若是,則ASCⅡ碼值減32。
三、程序設計題
3編寫函數fun,其功能是:實現兩個字符串的連接(不要使用庫函數streat),即把p2所指的字符串連接到pl所指的字符串的后面。
例如,分別輸入下面兩個字符串:
“FirstString--”
“SecondString”
程序輸出:
“FirstString--SeeondString”
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【參考答案】
【考點分析】
本題考查:不使用字符串函數實現字符串連接操作。通過for循環語句來完成,最后需加上字符串結束標識‘\0’。
【解題思路】.
本題用兩個循環完成操作,第1個循環的作用是求出第l個字符串的長度,即將i指到第1個字符串的末尾;第2個循環的作用是將第2個字符串的字符連到第l個字符串的末尾。最后在第1個字符串的結尾加上字符串結束標識‘\0’。