以下C程序段的输出结果是(30)。    #include <stdio. h>    void abc(char *str){   int a, b;        for(a=b=0;str[a]!=’\O’;a++)if(str[a]!=’c’)  

admin2013-02-02  21

问题 以下C程序段的输出结果是(30)。    #include <stdio. h>    void abc(char *str){   int a, b;        for(a=b=0;str[a]!=’\O’;a++)if(str[a]!=’c’)    str[b++]=str[a];        str=’\O’;    }    void main(){   char str[]="abcdef";        abc(str);        printf("str[]=%s",str);    }

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

答案C

解析 本试题核心在于子函数的for循环。For循环将整个字符串中的字符处理一遍,每次处理时,函数的基本工作是将除字母c之外的字符重新赋值,然后a++,b++,继续处理下一个字符。对于字母c不赋值,且只有a++而b不变。可见for循环的目的只是将字母c剔除。
转载请注明原文地址:https://jikaoti.com/ti/ZxL7FFFM
0

最新回复(0)