问题
填空题
以下程序运行后的输出结果是______。 #include<string.h> void fun(char*s,int p,int k) { int i; for(i=P;i<k-1;i++)s[i]=s[i+2]; } main() { char s[]="abcdefg"; fun(s,3,strlen(s));puts(s); }
答案
参考答案:abcfg
解析: s字符串“abcdefg”的长度是7,“fun(s,3,strlen(s));”使得函数fun的形参P值为3,k值为7,“for(i=p;i<k-1;i++)s[i]=s[i+2];”等价于“for(i=3;i<6;i++)s[i]=s[i+2];”,循环3次,s[3]=s[5],s[4]=s[6],s[5]=s[7],由于s[5]=’e’,s[6]=’f’,s[7]=’\0’(字符串结束符),循环结束时,s字符串由"abcdefg"变为"abcfg"。