二、程序填空題(共18分)、
下列給定程序中,函數(shù)flm的功能是:將s所指字符串中的所有數(shù)字字符移到所有非數(shù)字字符之后,并保持?jǐn)?shù)字字符串和非數(shù)字字符串原有的次序。
例如,s所指的字符串為“def35adh3kjsdt7”,執(zhí)行后結(jié)果為“defadhajsdt3537”。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.c中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

三、程序修改題(共18分)
下列給定程序中函數(shù)fun的功能是:逐個(gè)比較P.q所指兩個(gè)字符串對(duì)應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個(gè)新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!


四、程序設(shè)計(jì)題(共24分)
規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號(hào)之外,將串中其他*號(hào)全部刪除。在編寫函數(shù)時(shí).不得使用C語(yǔ)言提供的字符串函數(shù).

二、程序填空題
【參考答案】
(1)j++或j+=1或++j或j=j+1
(2)s[i]=t1[i](3)j
【考點(diǎn)分析】
本題考查:指針型變量;數(shù)組變量賦值;for循環(huán)語(yǔ)句。
【解題思路】
填空1:根據(jù)函致fun中的內(nèi)容可知,數(shù)組t1存儲(chǔ)了s中的非數(shù)字字符,數(shù)組口存儲(chǔ)了s中的數(shù)字字符,為了存儲(chǔ)下一個(gè)數(shù)字字符,下標(biāo)j要進(jìn)行加1操作。
填空2:將S串中的數(shù)字與非數(shù)字字符分開后,要先將非數(shù)字字符放入字符串s中,因此填入s[i]=t1[i]。
填空3:最后將敦字字符加到s串之后,并且i要小于數(shù)字的個(gè)數(shù)j。
三、程序修改題
【參考答案】
(1)int k=0;(2)whffe(+p11+q)
【考點(diǎn)分析】
本題考查:變量初始化,需根據(jù)題意確定變量含義,然后對(duì)其進(jìn)行初始化操作;whi1e循環(huán)語(yǔ)句。
【解題思路】
(1)變量k存放數(shù)組c的下標(biāo),因此應(yīng)初始化為0。
(2)whi1e循環(huán)語(yǔ)句的循環(huán)條件是判斷兩個(gè)字符串是否到達(dá)結(jié)尾。
四、程序設(shè)計(jì)題
【參考答案】

程序設(shè)計(jì)題解析:
【考點(diǎn)分析】
本題考查:指針型變最定義;wh丑e循環(huán)語(yǔ)句;語(yǔ)句條件 表達(dá)式;字符串結(jié)束標(biāo)識(shí)‘\0’。
【解題思路】
函數(shù)fun的功能:除了字符串前導(dǎo)的*號(hào)之外,將串中其他+號(hào)全部刪除。解答本題,(1)定義一個(gè)臨時(shí)指針P,初始指向原串首地址;(2)利用循環(huán)語(yǔ)句把字符串前導(dǎo)*號(hào)拷貝到原串;(3)繼續(xù)移動(dòng)指針,把串中和串尾的非*號(hào)字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符‘、O’。
【解題寶典】
要?jiǎng)h除字符串中的指定字符,我們通常采用保留非指定字符的方法??梢詫⒎侵付ㄗ址A粼谠?,即將需要保留的字符從原串的起始位置重新賦值;也可以保留到新串,即新建一個(gè)字符串,存放要保留的字符。