问答题
试题二(共15分)
阅读以下说明和C函数,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。
【说明1】
函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。
【C函数】
void deldigit(char*s)
{
char*t=(char*)malloc((1)):/*申请串空间*/
int i,k=0;
if(!t) return;
for(i=0:i<strlen(s);i++)
if(!(*(s+i)>=‘0’&&*(s+i)<=‘9’)){
t[k++]=(2);
}
(3)=‘\0’ /*设置串结束标志*/
strcpy(s,t);
free(t);
}
【说明2】
函数reverse(char*s,int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为“abcd”,则逆置后其内容变为“deba”。
【C函数】
void reverse(char*s, int len)
{
char ch;
if((4))
{
ch=*s;
*s=*(s+len-1);
*(s+len-1)=ch;
reverse((5));
}
}
问答题
1.
【正确答案】 strlen(s)+1 其中,strlen(s)不可缺少,1 可用大于1 的任何一个整数代替
【答案解析】
问答题
2.
【正确答案】s[i] ,或*(s+i),或其等价表示
【答案解析】
问答题
3.
【正确答案】t[k] ,或*(t+k),或其等价表示
【答案解析】
问答题
4.
【正确答案】len>1,或* len>=1,或其等价表示
【答案解析】
问答题
5.