问答题 试题二(共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.
【正确答案】s+1,len-2
【答案解析】