下列程序的运行结果为( )。 #include<stdio.h> voidabc(char*str) {int a,b,i,j; for(i=j=0;str[i]!=’\0’;i++) if(str[i]!=’a’) str[j++]=str[j];

admin2010-12-10  20

问题 下列程序的运行结果为(    )。
#include<stdio.h>
voidabc(char*str)
{int a,b,i,j;
for(i=j=0;str!=’\0’;i++)
if(str!=’a’)
str[j++]=str[j];
str[j]=’\0’;
}
void main()
{char Str[]="abcdef’;
abc(str);
printf("str[]=%s",str);
}   

选项 A、str[]=bcdef     
B、str[]=abcdef
C、str[]=a     
D、str[]=ab

答案A

解析  本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。
转载请注明原文地址:https://kaotiyun.com/show/f6Pp777K
0

最新回复(0)