问题 填空题

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

解析:[评析]函数fun的作用是将s所指的字符串中从第p+3到第k+1个字符向前移动两个位置。本题程序是将数组s中从第6个元素开始的值分别向前移动两个位置。在执行fun函数时,p的值是3,k的值是7,所以,具体执行“for(i=p;i<k-1;i++) s[i]=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。

填空题
单项选择题