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

admin2009-02-10  19

问题 以下程序运行后的输出结果是【 】。
#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

解析 函数fun的作用是将s所指的字符串中从第p+3到第k+1个字符向前移动两个位置。本题程序是将数组s中从第6个元素开始的值分别向前移动两个位置。在执行fun函数时,p的值是3,k的值是7,所以,具体执行“for(i=p;i<k-1;i++) s=s[i+2];”语句的过程如下:
   i=3:判断i<k-1成立,执行s[3]=s[5],此时,s[3]=f;
   i=4:判断i<k-1成立,执行s[4]=s[6],此时,s[4]=g:
   i=5:判断i<k-1成立,执行s[5]=s[7],此时,s[5]=’\0’;
   i=6:判断i<k-1不成立,返回主函数输出s的值,即为abcfg。
转载请注明原文地址:https://kaotiyun.com/show/vHXp777K
0

最新回复(0)