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