填空題
給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后新字符串的首地址作為函數(shù)值返回。
例如,s所指字符串為:asd123fgh543df,處理后新字符串為:asdfghdf123543。
請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
#include
#include
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i { if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { t[j]=__1__; j++;} else { p[k]=s[i]; k++; } } for(i=0; i<__2__; i++) t[j+i]=p[i]; t[j+k]= __3__; return t; } main() { char s[80]; printf("Please input: "); scanf("%s",s); printf("\nThe result is: %s\n",fun(s)); } 解題思路: 第一處:函數(shù)中申請了兩個內(nèi)存空間,其p是存放字母字符串,t是存放非字母字符串,根 據(jù)條件可知,p依次存放字母字符串,其位置由j來控制,所以應(yīng)填:s[i]。 第二處:利用for循環(huán)再把t中的內(nèi)容依次追加到p中,其中t的長度為k,所以應(yīng)填:k。 第三處:字符串處理好后必須添加字符串結(jié)束符,所以應(yīng)填:'\0'。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |