问题 填空题

以下程序运行后的输出结果是______。
#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"。

单项选择题 A1型题
判断题