以下程序运行后的输出结果是( )。 #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];

admin2011-06-13  20

问题 以下程序运行后的输出结果是(       )。
   #include<string.h>
   void fun(char*s,int p,int k)
   {    int i;
   for(i=P;i<k-1;i++)s=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=s[i+2];”等价于“for(i=3;i<6;i++)s=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"。
转载请注明原文地址:https://kaotiyun.com/show/lkPp777K
0

最新回复(0)